I recently passed the five year anniversary of when I started making generative art. This was also approximately when I decided to get “serious” about making art. It’s hard to take an exact count, but I think I’ve made 600+ generative works at this point. I think I’ve done okay for myself.

I wanted to take a little time to reflect on some of the big things I’ve learned during that time. I hope that by sharing these, it may help another artist.

Art Problems vs Programming Problems

When you're getting started, you probably think the programming parts of this work art tricky. True, it takes a while to get a good environment set up, to refresh your math skills in a few areas, and to learn how to use your libraries. These problems are solvable with a traditional "software dev" approach. You do some reading, copy some code from the internet, and add print statements to your code for debugging.

Now the hard part comes: you have to make something new. Not just copying a tutorial, but pulling it out of the ether. What the hell could you make that would be interesting? You fumble around until you get lucky. You take a half-baked idea, and mash at it until it's passable work. Congrats, you made something!

The next day comes. You sit down to make new work. Shit. You're back at the blank canvas. It's almost as if you had never made art before. In desperation, you throw something on the screen with the hope that it will be interesting, despite your feeling that it probably won't. You brute force your way to a completed work. After ten hours of work, what you've made looks okay, but not great.

You repeat this maddening cycle.

Making art never seems to get easy, somehow. The goalposts recede into the foggy distance, elusive. Sure, the work you produce gets better. But the mental energy it takes to produce it doesn't go down. If anything, it goes up. You realize that to make good art, you're going to have to work with emotions, put your trust in the most crazy part of yourself, study everything around you, make peace with mostly being a failure, and repeat these steps for basically forever.

Writing code seems so trivial by comparison. It works, or it doesn't. Once you learn how loops work, you're more or less good to go on that front for all time. There are solid, mostly static tools that you can understand, analyze rationally, and depend on. It is important to know that understanding code in this way is like a painter understanding how pencils, pens, and paintbrushes work. It's needed for the work, but it ultimately doesn't help with the art problems all that much. You can't pretend that coding well will save your ass.

Making a Program with Good Variety

Before I made generative art, I did a lot of drawing and painting. As challenging as that is on its own (see above), the generative approach introduces an entirely new and complex problem. How do you make one program output a variety of images, with some of them still being good? You're not working towards a singular goal anymore, you're trying to develop a whole system, a whole process for constructing good images.