Why goodgraphics.js exists

On mixing my own paint

goodgraphics.js is a library for scripting SVGs. It’s the main tool that I use to create all of my art and its opensource so anyone can use it and contribute to it. I’ve gotten asked why I created this a few times so here we go:

Short Answer

I wanted something that I could develop along side my artistic practice. It feels like I’m mixing my own paints. As I grow and start to develop my practice, the tool also grows in capabilities. In the words of Marshall McLuhan:

We Shape Our Tools, and Thereafter Our Tools Shape Us

Long Answer

In Computers Making Pictures, Tobias Revell observes the following:

the standardization of software through defaults, presets and templates limits our ability to image new things with them and that those who develop and commercialize a mass of these tools are granted a defacto control over realism as presented

(This occurs around the 29th minute mark and the entire lecture is well worth watching if you want to consider how the decisions of a few might shape our ability to think about reality.)

This is relevant because when you look at the landscape of creative coding tools there is an abundance of popular tools such as: p5.js, d3.js and three.js. (Note: Only looking at the JavaScript space) All of these are amazing and have capabilities that goodgraphics.js might never have. But they all also have the same problem: I don’t own them.

Not owning a tool means building based on someone else’s abstractions and logic. In the lecture above, this idea is discussed through the lens of Computer Animation and how the foundation laid by white male researchers has ramifications in the movies and art we enjoy. For example, the lack of research into how to properly render hair that isn’t wavy and non-textured aka black hair. (Aside: here’s a video of how a game solved this: How Insomniac Games created Miles Morales’ dope fade). Now, my art isn’t tackling social questions at that level but the same sentiment applies. I want to define and own my logic and make my own decisions instead of relying on how someone else sees the world.

By building this tool I am able to have full domain over what it can and can’t do. I am able to free myself from pre-defined use-cases and assumptions and imagine greenfield integrations and ways of working. As I grow in my artistic practice, the tool also grows in capabilities and in turn shapes my artistic practice. In the words of Marshall McLuhan:

We Shape Our Tools, and Thereafter Our Tools Shape Us

Ownership frees me from having to worry about upgrading a software package and half of my artwork no longer working. Ownership means that I am not tied to only working with Web Browsers, like most of these tools assume, and can transform my Graphics into Posters, PNGs, Books, Zines, GIFs, etc.

Ownership allows me to create new software experiences around my art without having to force a tool to do a job it wasn’t created for. Features like click to tweet or the Generative home page of goodgraphics.xyz wouldn’t be possible and I know in the future I’ll daydream even more uses for this tool.

I mean at the end of the day, it feels nice to have a little space in the computational world that is mine to own and do want I want with. I’m sure that in the future, if others start to use the tool, it will start to become ours. But, for now, it’s mine. And that’s enough.


Romello Goodman, Master of Arts lol

Here’s a list of programs I’m looking at:

Honestly, I just want to practice and learn about Graphic Design full time. And outside of making it my full time job, going back to school is the only avenue for that. But either way I said it so now it’s out of my head.

A couple of good tweets


P.S. - Have a good day!