Why goodgraphics.js exists

goodgraphics.js is an open-source library for scripting SVGs that serves as the primary tool for creating digital artwork.
Short Answer
The motivation stems from desiring a tool that evolves alongside artistic growth. As the practice develops, so does the tool's capabilities. This mirrors Marshall McLuhan's observation: "We Shape Our Tools, and Thereafter Our Tools Shape Us."
Long Answer
Drawing from Tobias Revell's lecture "Computers Making Pictures," a critical insight emerges: "the standardization of software through defaults, presets and templates limits our ability to image new things with them" and grants those controlling such tools significant influence over visual culture.
The creative coding landscape offers powerful options—p5.js, d3.js, three.js—yet they all present the same constraint: lack of ownership. Building on someone else's abstractions means accepting their worldview embedded within the tool itself. The lecture illustrates this through animation history, noting research gaps in rendering non-wavy hair textures. While this artwork pursues different questions, the principle applies: maintaining creative autonomy over design decisions.
Key advantages of tool ownership:
- Full domain over capabilities and limitations
- Freedom from compatibility concerns during software updates
- Flexibility to output beyond browsers (posters, PNGs, zines, GIFs)
- Integration possibilities like "click to tweet" features
- Creative autonomy without forcing incompatible tools
Ultimately, maintaining a personally-owned computational space provides autonomy to experiment without external constraints.