Five Reasons Generative Art Is the Ideal Hobby for a Software Developer

Generative art has consumed my free time for a few reasons. First, there’s few experiences that match creating and holding your own art. Second, my degree didn’t prepare me to make paintings, but I did build the skills for generative art. Finally, generative art focuses on writing code to make something you enjoy. Much better than the slog through software bound by requirements and process.

Before I dive into the topic, I’ll clarify what generative art is. Generative art is defined as the process of creating art with the use of an autonomous system. I’m limiting of this post to visual artwork created with a computer. Others before me have defined generative art, so I’ve included some links at the bottom if you’re interested.

1. Happy Little Accidents

I’ve never asked my project manager if I’m allowed to ship a bug because it looks cool, but I’m still trying to advance my career. Bugs are tallied and prioritized, counting the days until they’re evicted. I don’t have a todo list with a checkbox labeled “make mistakes” while making art, but bugs are a welcome houseguest in the process. I like envisioning my mistakes like Bob Ross sees “Happy Little Accidents” and less like a coworker writing a bug report. For example, I started building a cellular automata with Conway’s Game of Life, and I messed up the adjacency function, which led to some interesting results. The gif below showcases the weird patterns in this bug.

2. Painting With a Keyboard

Creative pursuits never interested me because I didn’t know how to be creative, and I sure didn’t know how to draw or paint. Discovering generative art opened up a world of creativity to me. I haven’t tried to paint with my keyboard, but my keyboard is all I need to make generative art.
Everyone owes it to themself to participate in a creative hobby, and generative art comes as free add-on item with your software skills. Don’t order a paint set or enroll in a drawing class, just use the tools you already have.

3. Code You Can Hold

I love settling in and solving a deep programming problem, but the experience and the results can often be frustrating or unexciting. Setting up a good API controller can be really satisfying once you’re done with it, but during the process, it’s nothing more than a few methods that chew up some data.

Contrast that with generative art, where you can experience interesting and immediate feedback at every step of the process. It might not be the most visually appealing to see a set of lines across the screen at the start of a project, but you can quickly see the results of what you did–or what you might be doing wrong.

With generative art, at the end of your project, you have a tangible thing that you’ve created. This is satisfying in and of itself, but it’s also easy and satisfying to share with others. You can show someone a piece of generative art you’ve made and expect them to appreciate it even if they’re non-technical. My friends certainly appreciate me having something to share that isn’t technical gobbley-gook.

If you’re particularly proud of what you made, you can even print your work. Turning your pixels into paper feels exceptional, and it can be a great gift.

4. Software But Not Software

One advantage of generative art over other software development hobbies is that it feels less like traditional software development. I suspect this is because most software developers don’t spend their time writing graphical code, or at least more abstract graphical code. Another advantage is that you can take time to explore weird or interesting math patterns or phenomena.

5. Choose Your Own Adventure

The end goal of generative art isn’t a concretely definable objective, but a more amorphous goal that starts with an idea. In my day job, I’ve struggled with goals that are poorly defined or exploratory. Engaging in expected uncertainty with generative art has helped me build confidence and develop approaches for dealing with similar situations at work.

When creating art pieces, generative or otherwise, it’s natural to embrace new ideas as they come to you. I think embracing these ideas is core to making interesting and/or engaging art.

In my experience, traditional, business-oriented software development is discounted as a non-creative discipline. However, approaching software as a creative discipline can prevent you from getting stuck or focusing too much on a problem. Just like there’s no one “right way” to paint a piece of art, there’s not necessarily one “right way” to solve a programming problem.


If I’ve sparked your interest and you produce or have produced any generative art, I’d love to see what you’ve made! Share your work with me at @wojonatior on Twitter.


Want to learn more about generative art?