PycraftDev's Avatar

PycraftDev

@pycraftdev.bsky.social

I am the lead developer behind PMMA and Pycraft and here to improve application development in Python, with a bit of art and fun thrown in!

84 Followers  |  35 Following  |  1,981 Posts  |  Joined: 25.11.2023  |  2.3465

Latest posts by pycraftdev.bsky.social on Bluesky

Preview
GitHub - PycraftDeveloper/PMMA: PMMA is targeted at helping you build applications of any size in Python and C++ by covering areas such as rendering, audio/video playback and much more! PMMA is targeted at helping you build applications of any size in Python and C++ by covering areas such as rendering, audio/video playback and much more! - PycraftDeveloper/PMMA

... You can find PMMA on our GitHub profile here: github.com/PycraftDevel...

We release programming updates regularly so stay tuned!
#buildinpublic #programming #Python #developer #gamedev #softwaredevelopment #SoftwareEngineer #coding #CPP

Thanks for reading :D

04.11.2025 23:13 β€” πŸ‘ 11    πŸ” 5    πŸ’¬ 1    πŸ“Œ 0

...

We have also been making other improvements and fixes to the windowing system so it works even more reliably than before.

Multiple window support will be coming to PMMA 5.2, along with the re-introduction of video playback!...

04.11.2025 23:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... PMMA. This didn't include adding support for multiple windows, but it made the process a lot easier when we realised we could support them.

So, finally PMMA will be getting support for multiple windows, and having tested it, it's fantastic!

...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Remember earlier when I said we never built PMMA to work with multiple widows because it wasn't something we needed to consider.

Well now we do. But when we rewrote large portions of PMMA from Python into C++ in PMMA 5, we completely re-structured...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Other restrictions where lifted.

Of course, now with BGFX we no longer have anything limiting us to using a single window.

This is excellent because finally we can support making multiple windows through PMMA!

But it poses another problem.

...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... As our rendering backend which meant we couldn't have multiple windows because multiple windows would interfere with the OpenGL context.

So, whilst OpenGL wasn't initially a reason for our one window policy, it later turned into one when...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Windows, so we didn't account for it in our code.

When we transitioned in PMMA 5 from Pygame to GLFW we thought briefly our one window dream had been shattered because GLFW supported making multiple windows.

Great! Except we used OpenGL...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... PMMA was initially formed from.

However, Pygame enforces a single window rule, meaning we couldn't have our application using multiple displays.

This rule subtlety dictated how we built PMMA for years. We didn't need to worry about multiple...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Back when we first started working on PMMA, we used Pygame and Python for our windowing API.

This decision allowed us to focus on extending the API instead of worrying about the ground work, and integrated nicely into the pre-existing scripts that...

04.11.2025 23:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Sometimes we make choices that can lead to further complications later on.

This was the situation we found ourselves in with PMMA for a while, limiting applications to a single window. Well in today's PMMA progress update, that's about to change!

04.11.2025 23:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Thanks! We will be :)

We had a brief break whilst we worked on some very challenging features coming soon to the API, but when it comes to our plans for PMMA, the sky is the limit :)

02.11.2025 00:23 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Building in public is the best way to grow a project. Keep shipping updates!

02.11.2025 00:11 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - PycraftDeveloper/PMMA: PMMA is targeted at helping you build applications of any size in Python and C++ by covering areas such as rendering, audio/video playback and much more! PMMA is targeted at helping you build applications of any size in Python and C++ by covering areas such as rendering, audio/video playback and much more! - PycraftDeveloper/PMMA

... You can find PMMA on our GitHub profile here: github.com/PycraftDevel...

We release programming updates regularly so stay tuned!
#buildinpublic #programming #Python #developer #gamedev #softwaredevelopment #SoftwareEngineer #coding #CPP

Thanks for reading :D

02.11.2025 00:10 β€” πŸ‘ 7    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

... Sprite sheet generator. I don't want to spoil too much here yet as we are still exploring all avenues.

By the release of PMMA 5.1 we will have re-introduced text and image rendering, with video playback also coming soon after that!

02.11.2025 00:10 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Strategy, but we are looking into ways to optimise this mechanic, but something like what we did for text rendering is unlikely as there we construct a large image composed of smaller images, for this we would need some kind of automated...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... But will be adding it in very soon, PMMA just also got support for text rendering, which uses images of each glyph when rendering, although that uses a different rendering pipeline.

Currently image support for PMMA is the least accelerated rendering...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... However, we aren't done.

Whilst images are typically rectangular, we will support you using images on any 2D shape as an added bonus.

What's interesting here is that whilst we haven't directly supported image rendering for PMMA in some time...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Pipeline to make these changes, along with a huge amount of other tweaks.

So, now PMMA can support images and gradients as extensions to the 2D shapes API, with some degree of render pipeline acceleration (particularly for gradient shapes).

...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Us a lot more control over how we rendered everything for PMMA.

However, these plans where shelved when we realised further changes to the render pipeline where needed to support this feature.

Fortunately though, in PMMA 5 we updated the rendering...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... As efficient as possible.

Ideally we want to have all three of these fundamental components as a part of the same API.

With PMMA 4 and newer this became possible when we switched from Pygame to ModernGL for our rendering backend as it gave...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... For PMMA, but we didn't like the implementation here because you would have ended up with different APIs to draw colored rectangles, images and gradient shapes.

This isn't great when you are trying to simplify the interface and make the backend code...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

At a few points in PMMA's history image rendering was actually supported, or was very close to being supported.

However, we could never get the implementation right.

Back when we used to use Pygame as our graphics backend we did have image support...

02.11.2025 00:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Let's talk about images. Along with text they form some of the most fundamental components needed for any application.

In today's PMMA progress update we will be discussing image support and it's strange relationship to text rendering!

02.11.2025 00:10 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Thank you very much for the feedback! Don't worry, we have lots to talk about as we continue innovating with PMMA :)

25.10.2025 21:14 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Regular updates keep projects moving forward and maintain momentum

21.10.2025 03:40 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Building in public is the best way to get feedback and grow. Keep sharing your progress!

21.10.2025 00:29 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - PycraftDeveloper/PMMA: PMMA is targeted at helping you build applications of any size in Python and C++ by covering areas such as rendering, audio/video playback and much more! PMMA is targeted at helping you build applications of any size in Python and C++ by covering areas such as rendering, audio/video playback and much more! - PycraftDeveloper/PMMA

... You can find PMMA on our GitHub profile here: github.com/PycraftDevel...

We release programming updates regularly so stay tuned!
#buildinpublic #programming #Python #developer #gamedev #softwaredevelopment #SoftwareEngineer #coding #CPP

Thanks for reading :D

25.10.2025 21:06 β€” πŸ‘ 7    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

... Run on multiple CPU cores, it's just that PMMA will help with some of the heavy lifting.

Its also important to point out that this is by no means something unique to PMMA, other APIs do this too.

Ours is just more user friendly and (hopefully) faster!

25.10.2025 21:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... (and only getting faster!)... Because if the workload is there, PMMA can really make your full CPU feel the heat.

This isn't of course to say that the maker of these applications cannot or shouldn't need to use techniques to make their application...

25.10.2025 21:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

... Properly utilise multi-core CPUs.

So, instead of the developer of the application being reliant on making the program work across multiple CPU cores, lets make the API handle this for them.

This is why PMMA's render pipeline is so fast...

25.10.2025 21:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@pycraftdev is following 19 prominent accounts