My Blog

New py5 Release: 0.10.6a0

Today I announce the release of py5 version 0.10.6a0.

Important Bug Fix

Unfortunately the previous py5 release had a stupid bug that would not let you import py5 without a working network connection. I am embarrassed to say that I didn't catch this before the release. I do apologize for that. I found it while on the train coming back from PyCon because the network connection was spotty. It was a disappointing mistake but I am glad it impacted me before anyone else (or at least before anyone else reported it).

This network connection issue, #647, is now fixed. On the train ride back I also put in a fix for #613.

In addition, I upgraded the core.jar file to the now latest stable Processing release, 4.4.4.

That's it for this release. Obviously I need to do a better job of testing before releases so this doesn't happen again.

New py5 Release: 0.10.5a0

Today I'm happy to finally announce the release of py5 version 0.10.5a0.

Important Updates

This release has two small but important changes.

The first is that the JPype dependency has changed to >=1.5.2. Previously it was pinned to 1.5.0. Months ago, pinning it to 1.5.0 resolved issues we were having with 1.5.1 but also meant we didn't benefit from improvements made in 1.5.2. And since 1.5.0 also had some (smaller) issues, we were stuck on a version that was not ideal. In retrospect I see that my choice to pin it to 1.5.0 was not the best decision. I apologize for that, and won't make that mistake again.

The second change is that py5 now uses core.jar from the official Processing 4.4.1 release. The previous five releases used my own fork of Processing. This was a temporary but necessary measure because py5 depended on some code changes that took some time to make it into an official Processing release. Moving forward, all versions of py5 will use the latest official Processing core.jar file.

New Features

Read more…

py5 at The Whitney

I'm thrilled to share that py5 is now at The Whitney Museum of American Art. This is one of the most well known museums in the United States and it is an honor and a privilege to show work here.

I collaborated with Marina Zurkow to create two animated works. The first, The River is a Circle, was created as a part of the Hyundai Terrace Commission.

/images/posts/py5/py5-at-the-whitney/the-river-is-a-circle.jpg

The other work, The Earth Eaters, is one of two works in Parting Worlds.

/images/posts/py5/py5-at-the-whitney/the-earth-eaters.jpg

The second work in Parting Worlds is Wink, a piece that Marina made with Adobe Flash many years ago.

Both The River is a Circle and The Earth Eaters use Processing and py5. They are Processing Sketches with some Python code, using py5 as a bridge to connect the two languages through py5's Processing Mode. Interestingly, both works have identical Java code. The differences are in Python and in rather large Yaml configuration files. And the actual image assets, of course. To create these works I wrote a shared reusable framework with modular components that enable me to construct both works in the same way that someone might make different things with the same set of lego pieces. The Yaml configuration file is extensive, providing a blueprint for how the image assets will animate and move around the screen.

In addition, there is a lot of ancillary Python code that is not a part of the final works but is necessary for the construction of them. A useful analogy is to compare this to a building's construction: the scaffolding, cranes, lifts, etc, are not a part of the final product but are necessary to build a large structure. The Earth Eaters, for example, employs over 100K image files and has a configuration file that is 86K lines long. It is not possible for me to manage all of this manually. Instead, there are custom Python tools that do much of the work for me. Some of the programming techniques used had a lot in common with py5generator, the code library that creates py5. Documenting that is a job for another day.

New py5 Release: 0.10.4a2

I'm happy to announce the release of py5 version 0.10.4a2. This the fourth and final release of 2024.

Platform Issues: macOS and Windows

The main purpose of this release is to address a long-standing issue on macOS. The macOS issue was opened by me in issue #5 and has been a thorn in my side ever since. Recently a member of our py5 community, wissme, reported that my hack to alleviate the symptoms of the issue wasn't working on Apple Silicon computers. This prompted me to revisit the situation, and happily I was able to gain new insights into how to properly address py5's platform specific challenges. This resulted in a new approach to window focusing that not only fixes the macOS issue, but also improves code quality on macOS and Windows.

Read more…

New py5 Release: 0.10.3a1

I'm happy to announce the release of py5 version 0.10.3a1. This is a big release with a new Live Coding feature. Also, some bug fixes.

New Feature: Live Coding

There's one big feature: Live Coding. The basic idea is to have a live coding environment where you can write and modify your py5 code and see the results in real time. This is a feature that I've wanted to add to py5 for a long time and I'm excited to finally have it in the library. It is designed to support rapid prototyping of ideas and experimentation. You'll be able to write code in an editor or Jupyter Notebook and see the results in a running Sketch immediately, without having to exit a running Sketch and then start a new one.

I'm not going to repeat all of the details here, but you can read more about it in the Live Coding documentation page.

Read more…

New py5 Release: 0.10.2a0

I'm pleased to announce the release of py5 0.10.2a0 and py5jupyter 0.2.1a0. Both are small releases with a few bug fixes and enhancements.

PyCon 2024

But before talking about the release, I want to share the py5 recordings from PyCon 2024. I delivered a presentation titled Creative Coding with py5, the Python version of Processing. Alexandre Villares led py5 tutorial Learning Python while making drawings and animations. Both were well attended and a lot of fun for both of us to organize and deliver. I'm grateful for the opportunity to meet so many people from the py5 community and the Python community! I hope to see you all again soon.

Please watch the videos and give both of them a thumbs up!

Read more…

Underfoot / Overhead

Recently I realized I should be doing more with my blog than posting about py5 releases. I can and should write more! Here's a post that's also a small step in that direction.

I have the privilege of working with Marina Zurkow to create digital art. She's an amazing artist with much experience and knowledge. I'm grateful for the opportunity to work with her. Over the past few years we have made several digital art pieces together. You can see documentation of the work in the Art section of this website.

Recently we put together a gallery show alongside Jasmine Murrell titled Underfoot / Overhead. The show is at Wasserman Projects in Detroit, Michigan, USA. It opened on April 20th and will be up until June 8th.

Read more…

New py5 Release: 0.10.1a1

I'm pleased to announce the release of py5 version 0.10.1a1. It is a small release with two new small features and several bug fixes.

These past few months I've been swamped between preparing for a gallery show opening this Friday and managing family healthcare issues. Each of those things by themselves is a lot of work and together they are overwhelming. Nevertheless, I persevered and was able to get this release ready for you.

Numpy Version

The main reason why this py5 release is happening now and not later is because numpy will soon have a major release that is not completely backwards compatible. Version 2.0 of numpy will be released soon and library maintainers have been advised to pin dependencies to numpy<2.0 and then test with numpy 2.0 when it is available. This is to ensure that py5 and every library py5 depends on is ready for the new version and does not cause users any problems.

Once the new numpy version is released and I verify py5 works well with it, I will do another release of py5 that removes the numpy<2.0 pin.

Read more…

New py5 Release: 0.10.0a0

I'm very happy to announce the release of py5 0.10.0a0. It is a major release with many new features and bug fixes.

This release was an enormous amount of work. In particular, over the past two months I had been testing and fixing the new features and writing pages and pages of critical documentation to explain the ways py5 integrates with other Python libraries. On top of that, I had a trip to Miami, family health problems, and the holidays to deal with. Plus, I caught COVID a week ago (and am still testing positive.) It's been a difficult time.

Nevertheless, I am pleased to have this release available for you to start exploring. I'm very excited to see what people do with these new features.

New Features

The major theme of this release is expanding and improving py5's Python ecosystem integrations. This release includes new features for working with matplotlib, Shapely, and Trimesh through the new convert_shape() method and the upgraded convert_image() method. It also includes a new color mode called CMAP that is built around matplotlib colormaps.

The documentation for these new features is extensive. There is now a new section in the documentation called Python Ecosystem Integrations that explains how py5 integrates with other Python libraries. This covers the new features in this release as well as existing features that perhaps some people didn't know about.

Read more…