Skip to main content

PMMA logo

PMMA (Python Multi-Media API)

PyPI - Wheel Python 3.8 Python 3.9 Python 3.10 Python 3.11 Windows Linux macOS GitHub commit activity GitHub commits since latest release

PMMA is a Python module targeted at helping you build applications in the Python programming language. It does this by providing its own tools covering areas like 2D graphics, noise generation, audio and video playback, event handling, text rendering and much more. The API has two fundamental goals; to make application development in Python easier, whilst also focusing on improving the performance and efficiency of the end result. The API is also being engineered with compatibility with other python modules, like Pygame, PIL and Numpy and is ideal for prototyping, application development, simulations, graphics intensive tasks and game development.

Contents

Development Progress

Progress on PMMA v5.0.0

We are currently working on the next major update to PMMA, version 5.x.x. This update features a complete API rework with a significant proportion being re-written in C++ for a significant performance and efficiency improvement. This major update will also introduce all the features lacking from previous iterations of PMMA, including text rendering, aggregated events for text input and improvements to the accuracy and variety of procedural noise generation. If you want to check out our current progress list, you can find it here: Progress on PMMA 5

Installation

You can install the latest version of PMMA from PyPi using the command: `pip install pmma' or you can head over to the website here: PMMA on PyPi to select a custom version to install.

Requirements

In order to install PMMA 5 and newer, you must ensure you meet the following criteria:

Category Requirement
Operating System Windows, ALT Linux 10+, RHEL 9+, Debian 11+, Fedora 34+, Mageia 8+, Photon OS 3.0 (with updates), Ubuntu 21.04+ Architecture: 64-bit (x64)

MacOS Architecture: arm-64
Python Version 3.8.x, 3.9.x, 3.10.x, 3.11.x
pip Version 20.3 or newer

Note: If your platform is not listed here then you can attempt to build your own version of PMMA using our build guide!

Additional Technical Requirements

Please note, these requirements are only needed by users installing PMMA onto Linux machines and in most cases the operating systems listed above should be compatible.

  • In order for PMMA to work as expected, you must be using either X-Lib, or Wayland. This means that Ubuntu 21.04 DESKTOP will work, but Ubuntu 21.04 SERVER is unlikely to.
  • Additionally, you will need glibc 2.28 or newer, this can be checked on linux using the command ldd --version (root not required). The result should be on the first line as shown in the image below:

Example output


For older versions of PMMA, there are no hardware requirements.

If you encounter any issues or problems then check out our troubleshooting page.

Credits

PMMA is made possible thanks to the following:

C/C++ projects (used in PMMA 5 and newer)

Python projects (used in PMMA 1 and newer)

NONE of the projects mentioned above are owned or maintained by PycraftDeveloper the maker of this repository, who would also like to say a big thank you to all the teams working on these projects!

You can check out our licenses and the licenses of all the C/C++ projects PMMA uses as standard here or on your installed version of PMMA (version 5 or later) under pmma/licenses.

Note: If you spot a problem in our licensing or distribution of third party dependencies please raise the problem as an issue here with the title-prefix: 'LICENSING: ' and we will respond to these problems as soon as possible. Thanks!

About

We have worked on numerous large applications using the Python programming language. Most notably Pycraft which is our flagship project, an OpenGL based game using Python. Every time we write these large projects, we often find ourselves writing the same utility programs - which are small programs that help to eliminate complexity in our larger program files. So we decided to combine all of these utility programs into this project, PMMA which is intended then to make writing these larger applications easier as we don't need to keep re-using the same utility programs. The benefits don't stop there though as we are also ensuring this API is as fast and efficient as possible.

Please note that PMMA is currently in a developmental state, meaning that the API is subject to change - we are hoping to remove this warning and improve backwards compatibility in PMMA 6.

Metadata

Release files for pmma 5.0.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pmma 5.0.16
File Size Uploaded
pmma-5.0.16.tar.gz 437.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pmma 5.0.16
File
pmma-5.0.16-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pmma-5.0.16-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
pmma-5.0.16-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pmma-5.0.16-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
pmma-5.0.16-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
pmma-5.0.16-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pmma-5.0.16-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
pmma-5.0.16-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
pmma-5.0.16-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details

Total release size: 130.3 MB

Release files / pmma-5.0.16.tar.gz

Download URL pmma-5.0.16.tar.gz
Size 437.2 kB
Tags Source
SHA-256 checksum
How to use checksums
582aa236970231a2bcadfd116d39b1585d64d43546e8bc037d2ccac8040245a9
BLAKE2b-256 checksum
How to use checksums
254155b359661c771b68c9f8a2203416e0abece3a822fc74f49bde588fff05f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp311-cp311-win_amd64.whl

Download URL pmma-5.0.16-cp311-cp311-win_amd64.whl
Size 11.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0780fee058f3f948f3a126defb936250a135e4d5fb49b3163dac8b162635146e
BLAKE2b-256 checksum
How to use checksums
478bf0d09d7b4d986b6de9ba636cb5242cbefbc176603efde3b78734535f92fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL pmma-5.0.16-cp311-cp311-manylinux_2_28_x86_64.whl
Size 14.4 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1416f24cf63b5beee3668f3c56e8a1308b6b72614264652ed991ff27f702d37f
BLAKE2b-256 checksum
How to use checksums
40189f4b36a392f88d719f8fd718697c1d9b488fe82dd54f7e7c2bc25cf5db39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp310-cp310-win_amd64.whl

Download URL pmma-5.0.16-cp310-cp310-win_amd64.whl
Size 11.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
447fb4492fdc95cae3ad4fa8a0b5f7c7a599a7d60fad43c256816a1d7423bb1c
BLAKE2b-256 checksum
How to use checksums
be89ff0f9daf34dc08149f7327d411e5fe8226410b7967ad1e43b918a23ed49d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL pmma-5.0.16-cp310-cp310-manylinux_2_34_x86_64.whl
Size 27.6 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
4407d4b53bc268dc736b13b01dd298af09195fe74ea5f5ac36526f3c3ab50f96
BLAKE2b-256 checksum
How to use checksums
2eb994a119ad53bbe9e102310ff244ded4ff3fbad8673e4029a896879cafbc4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / pmma-5.0.16-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL pmma-5.0.16-cp310-cp310-manylinux_2_28_x86_64.whl
Size 14.0 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
17ed2b6ed4836543be162539299022ac98293c9539805392126df3c454ad7113
BLAKE2b-256 checksum
How to use checksums
caa7d37baa2f956ac8a37fca255d97aa26cbe3879745e661cf74a0bf65a86786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp39-cp39-win_amd64.whl

Download URL pmma-5.0.16-cp39-cp39-win_amd64.whl
Size 11.4 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
b35714eed1ef1e2e45979200d944537c8ff930fba60a510f5e43043421c32de4
BLAKE2b-256 checksum
How to use checksums
93bf91c72efc809857add4e0c74073b14d9deb2a6f9d002063a315ee134df008
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL pmma-5.0.16-cp39-cp39-manylinux_2_28_x86_64.whl
Size 14.0 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
06ef0a4dbcefb660eae838840a298c8ec38899c299bdcde0dad2465095313206
BLAKE2b-256 checksum
How to use checksums
8c8bbab89e4b1903fd9c44f47165b29f2e2c3249b3850902a6b1e39c2134568f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp38-cp38-win_amd64.whl

Download URL pmma-5.0.16-cp38-cp38-win_amd64.whl
Size 11.5 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
fa5c147719cfe241b82a10c6cba0cf3a0abb5ad72656f7c0dcc9d5bcf0cbe1ba
BLAKE2b-256 checksum
How to use checksums
d0da6ff0dfd1576a0ae1a16bb05e7ab603243a65947c4fa3e058da04f369a420
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / pmma-5.0.16-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL pmma-5.0.16-cp38-cp38-manylinux_2_28_x86_64.whl
Size 14.2 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e26e08182ea01ffc66da376a37c4e61a50489105efda5bd472aebd5514ed345b
BLAKE2b-256 checksum
How to use checksums
2275030ddb17163afb278d3da994fe34210e7cac1fea00a8d61f7b6d823f260d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release history Release notifications | RSS feed

This release

5.0.16 This release

10 release files

5.0.15

9 release files

5.0.9

13 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.1

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page