I’m creating artwork for my pen plotter to learn more about computer graphics. When I was starting out, I built command line tools that generated SVG files. As the pieces became more complex and the requirements came into focus, I found this approach too cumbersome. The cost of switching over to a terminal session to tweak a parameter and re-draw my artwork made the experience feel heavy and stifled experimentation.
In early 2021, I found Ben Kovach’s Tips for Generative Infrastructure and Tooling. While Ben uses Haskell and uses more randomness in his art, his ideas struck a chord. I synthesized these into a few principles for an expressive environment for computer art:
- Literate: the code should be clear about how the image is generated
- Expressive: artwork shouldn’t require large amounts of code
- Controls: make parameters easy to update
- Immediate: changes to the code and parameters should be drawn immediately
- Historical: keep every iteration of a piece and note how it was generated