10,000 Choices

You know what computers are good at? Being creative.

That is, they’re amazing at working tirelessly and generating variations, given the proper constraints.

I’m in the process of creating some album art for a friend of mine, Mode7, for an upcoming EP release. I wanted to create something that was simultaneously intentional (i.e. I had ideas for an image) and generative (i.e. I’d let the computer make stuff up too). For the last couple weeks, I’ve been slowly building a Processing app that helps me generate compositions given a curated range of possible random values.

Last night, I asked my app to show me 10,000 variations on a theme. Here’s what it came up with:

10,000 Choices+ See it hi-res on Flickr.

And here’s a zoom of a 6×6 grid from that output:

And here are some random selects that I never would have come up with on my own:

These images are rendered in an OpenGL context, so the lighting is basic and even throughout. But this is only the first step in the process of creating the final image. The Processing app is a tool for creating compositions and color schemes. In the end, my selects are saved out as Sunflow scene files and rendered in Sunflow with global illumination at a super-high resolution. Here are a couple test renders to give you an idea of the end possibilities:

There are a couple things I want to note about this whole process.


What has happened in this process of creation is the emergence of a symbiotic relationship between me and the computer. I started with clear intention for the type of image I wanted to create. As I began programmatically building the structures of the elements I wanted to use in the composition, it wasn’t until I saw the way the computer rendered my forms that I would continue moving forward. These renders influenced my direction and provided a sort of course correction.

The same happens when I ask the computer to provide me with a series of choices. I become the curator and the computer becomes the creator. It seemingly influences me as much as I influence its output. This is especially true when you introduce Math.random() into the relationship. That singular function is the computer’s very powerful voice.

This whole process is like a dance or a dialogue. And I’m beginning to learn how powerful this can be in discovering possibilities for creative output that I wouldn’t have been able to achieve on my own.


When I tell the computer to give me 10,000 choices, the process of reviewing those choices makes me feel like I’m a scientist or an archaeologist exploring unseen worlds or newly revealed information. I’m seeing something wholly new. A world that had the possibility of existing, but only up until last night, never actually existed. And here I get to discover that new world.

There’s something so utterly enchanting and delightful about this. Flipping through these images brings me closer to some level of innocence and awe that I simply don’t encounter very often in my life. And now I’m hooked.

  • David

    Great work Mike.

  • Gabriel Mathews

    whoa. good work sir.

  • Gabriel Mathews

    whoa. good work sir.

  • http://mikecreighton.com Mike Creighton

    Thanks guys. I’m really excited about this one. Managed to pick 350 compositions from a newly generated batch of 3,500. I’ve got a box rendering them in Sunflow as we speak. Only 29 more hours left to render…

  • Lawrie

    I love the sense of mystery and discovery that come when you make / use tools like this. It also bring up the possibility of individual covers for each pressing of the record which would be pretty cool too.
    Another way I’d like to use something like this in a project, would be to mix it with a genetic algorithm – so the computer offers me, say 10 variations on a theme, I pick 4 which are then cross-bred, add some randomness and then present another 10 for me to pick from – and so on as necessary.I thought this was an interesting read on the subject too - http://luckytoilet.wordpress.com/2011/05/27/coding-a-tetris-ai-using-a-genetic-algorithm/

    PS – they look great! My favourite is the second to last.