Jason Downer

CopperCloudMusic

Sound Editor

Composer

About ten years ago I stumbled upon a graphics programming textbook; halfway through there were some very nice color plates, three of which showed images generated by procedural evolution, the work of Karl Sims then at Thinking Machines. They were wonderfully bizarre and alien.

 

Artificial Intelligence can take many forms, not just the Robby the Robot kind. This was the first time I had seen a piece of software feedback onto itself and make adjustments, not according to some rule hard-coded inside itself, but because a human on the outside was arbitrarily decided what images looked interesting and which ones didn't.

 

"Interesting" is an impossible thing to define computationally, by the way. The software has to examine what it is doing right and what it isn't, and then create new images.

 

A few years later I wrote a program to do the same thing for Windows 3.1 to create seamless wallpaper, and later added a bit here and there. I was originally going to shareware it after rewriting it for Win95 and Linux. Today there are lots of programs that do similar things, even Gimp has one, so that's that.

 

A user is presented with four or more images, clicks on the one that has the most appeal, and is then presented with more images. Only this time the new images are variations of the clicked image, and the type and amount of variation is determined by what set that first image apart from the others.

 

The general idea is to take an equation (though often much longer) like:

 

log(z * x + 0.4 * sin(2 * y - x))

 

where x and y are the vertical and horizontal coordinates of a pixel and z is the color plane (e.g. red=1,green=2,blue=3) and then to produce variations such as:

 

log(x * x + 1.2 * sin(5.3 * z - y))

exp(x * y + 2 * cos(5.3 * z - y))

log(z * z * z - 9.6 * tanh(5.3 * z - y))

 

until something worthwhile pops up. Crossbreeding genetic strains also produces good results, as does constraining probabilities of mutation for each type of term according to the statistics of a target population. It's easier than it sounds, actually.

I've done work with evolving iterated fractal systems, feedback neural networks, and differential equations, but the old Cartesian version still makes the best results.

 

Here's a few for you to enjoy. All these tile well for use as desktop wallpaper or wrapped textures.

 

Click on any image to see a larger version (4 to 5 times bigger.)

 

These images and a few extra are here.