When I started this project I wanted to learn JAX, but I also wanted to test a hypothesis around how computer code can be structured to allow something that I call "Function Synthesis" - where code can be rapidly composed/assembled by simply collecting together a group of functions and then allowing the software to piece together the individual functions to achieve a goal. Photon is not yet at the stage where all of this happens by magic, but the code is structured to allow for much more automation later.
This notebook is an example of how I put a collection of renderer functions together to produce the sample images above. It explains how Photon mimics some of the creative process that I use for conventional painting.