This is a minor release with a handful of bug fixes and small enhancements. Most of the bug fixes are small improvements to the documentation or error messages. Thanks again to Alexandre Villares for raising the majority of the now fixed bugs.
New methods for saving and loading data. The new methods are
This is a minor release with a handful of bug fixes. Some of the bugs were serious issues affecting Thonny users, such as # 117 found by Alexandre Villares. Many thanks to him for uncovering these problems. The other changes were small improvements to the functionality or reference documentation.
Since some of the issues were serious problems affecting Thonny users, I didn't want to make anyone wait to get the improved version.
This is a minor release with many bug fixes and several new features.
The big announcement is that py5 is now receiving direct support from the Processing Foundation to fund the creation of beginner tutorials. This is a part of the Processing Foundation's GSoC 2022 program. Our talented contributor, Zelle Marcovicci, is doing an amazing job writing tutorials. I am so deeply grateful for all of this.
We can now affirmatively state that py5 works on Apple Silicon (macOS-aarch64) machines. Hooray!
This release uses the latest Processing 4.0b9 jar files.
This release has a handful of new features, almost all of which are the product of conversations with members of the py5 community.
This is a major release with some significant changes! I am very excited for the progress that has been made since the last release.
There are new Py5KeyboardEvent and Py5MouseEvent classes. These can be passed to user defined event functions such as
key_pressed(). Below is a simple example.
The previous release had some unexpected and urgent OSX problems. This release fixes them, and in addition, expands the py5 functionality available on OSX. This is the first py5 release that can run py5 Sketches with the generic Python interpreter and not through a Jupyter notebook.
The fix involved applying some things I learned from studying jpype's source code and previously applied to the run_sketch command line utility used by the Thonny plugin.
I've been searching for a way to get py5 to work with the generic Python interpreter for a long time. When I sat down to address this latest bug, everything came together in the right way and it just worked. I'm thrilled.
There are still a few more outstanding OSX related issues for me to solve, and that's before considering the Apple Silicon can of worms. All of these things will be addressed over the next few releases. There is a clear path between this release and cross-platform feature parity.
Maybe this next release works on Apple Silicon (macOS-aarch64) machines? Please test and provide feedback.
More OSX improvements!
Another big release, 2 months after the previous release.
Here are the new features in this release:
Update Processing jars to version 4.0b6. This means py5 now supports the new features in that release, including the new commands for controlling the Sketch window such as
Improvements to py5 to enable packaging with pyinstaller. In the near future I will add documentation to the py5 website explaining how to do this. If you can't wait that long, have a look at this gist for a working example. That example has room for improvement, and will be improved before the documentation is finalized.
The typehints have been updated to conform to PEP 585. Also, the numpy typing package
nptypinghas been removed in favor of using the numpy typehint features introduced in versions 1.20 and 1.21. This version of py5 now requires
numpy>=1.21, but that shouldn't be a problem for anyone because that version has been out for almost a year now and most likely you have version 1.22 installed already.
run_sketchcommand line tool now accepts command line arguments that will get passed to Processing. Among other things, this will allow the Thonny plugin to set the window position. (#60).
As previously stated, this release now requires Java 17.
I'd like someone with an Apple Silicon (macOS-aarch64) machine to test py5 and tell me if it works. I'm specifically curious about the P2D and P3D renderers. I don't think it will work but I want to know what happens. I don't have access to such a machine to do the test myself.
Unit tests! Not having them is costing me too much time.
OSX improvements! I have new ideas and believe it is time to revisit the OSX limitations.
A another big release with two new features!
But before getting into that, an important announcement. This is the last version of py5 that will run on Java 11. The next version of py5, probably (hopefully) available in February, will require Java 17. This is changing because Processing 4 now requires Java 17. I am delaying py5's upgrade to Java 17 to give others a chance to adapt their code. This version will work just fine with Java 17, but does not require it.
And back to the release. What's new:
Reworked noise functionality. The Python noise library is no longer used to generate noise; the library has been removed as dependency. Instead, py5 uses the OpenSimplex noise algorithm and Processing's noise algorithm. The OpenSimplex algorithm is provided by KdotJPG's OpenSimplex2S implementation. Both support noise generation with numpy arrays as parameters. Read the documentation to learn more.
New Py5Vector class. This new feature was a lot of work and incorporates the design ideas of many people in the py5 community. Read the documentation to learn what you can do with this class.
Here's an animated GIF I created with py5 and the new Py5Vector class. The example code is available as a gist.
Move required Java version from 11 to 17.
Many improvements to type hints. The Python nptyping library will be removed and numpy (version >=1.20) will be used instead.
Over the past few months, one of the most requested py5 features has been a dedicated vector class. Since there is a lot of interest, I wanted to build a draft version of a vector class that I am now making available for discussion with the growing py5 community.
The vector class code associated with this blog post is available on gist, but since this is an evolving process, the most current version will always be in the github repo. I've also created a discussion on github for feedback; please direct your comments and questions there. Feel free to comment or question anything you like. Update: the new Py5Vector class is complete and has been released. Visit the documentation website to learn how to use the Py5Vector class.
This year I used my new Axidraw to create my holiday cards. I'm very happy with the result: