Py5Canvas
Py5canvas is a library that allows to draw 2d graphics in Python with an interface that is designed for users that are familiar to Processing and P5js. The library is designed to work inside Jupyter notebooks and/or interactively as a “sketch” structured similarly to Processing. The main idea behind this system is to facilitate the development of creative and interactive applications with Python, while enabling access to the huge number of packages available in Python echosystem.
While similar projects exist (e.g. Py5 and Processing.py), I specifically wrote this libary to enable the integration of a Processing-like syntax inside Jupyter notebooks while also allowing fast prototyping of procedural animations and graphics with a live-reloading interface and support for parameters and a UI, with an approach similar to sandboxes like DrawBot. Py5canvas natively supports vector graphics export, which makes it
I use this library extensively for my own experiments and research, but also use it to teach creative coding to computational arts students at Goldsmiths, University of London. The animation above is generated with a Py5Canvas script and uses the https://clifford.readthedocs.io/en/latest/ Python library to animate a Klein bottle represented in 4D space and then project it to 2D space for visualization.