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.