I've just come to and joined a party that has been going on for about two or three decades, depending on how you measure it. Genetic Algorithms are an attempt by computer scientists and AI researchers to mimic the way that evolution works. The idea being that certain kinds of problems are very hard (read: nearly impossible) to solve in a purely absolute manner (the "Traveling Salesman," for instance) but by mutating and recombining the best candidates from each generation of solutions, a very good solution can emerge quickly without excessive pain in programming or computer horsepower. This much I vaguely knew at a theoretical level. These ideas had come out of research into cellular automata, which is something that I first encountered in 1986 or so in the form of Conway's Life.
What I didn't do was actually play with any GA programs until very recently. What I have since realized, is that there is an amazing difference between reading about certain ideas, and actually experiencing them. That shouldn't be surprising, but given that I try to read about a lot of techy stuff and keep up with it, I often rely on other people's writing rather than first-person observation and interaction. Unfortunately "getting it" and having those "aha" or "wow" moments usually requires the first-person experience.
One way that I have experienced novel bits of tech instead of just reading about them is to go to Dorkbot-SF meetings. Dorkbot is an international organization of geeks which bills itself as "people doing strange things with electricity". The SF chapter has a lot of SRL crossover seeing as Karen Marcelo started it. At the most recent meeting, Rudy Rucker and Scott Draves (AKA Spot) spoke. Rudy managed to make Stephan Wolfram's a New Kind of Science seem both a little more interesting and at the same time take some of the wind out of Wolfram's sails - but that is a another story.
Scott showed off his Spotworks DVD and some of the software used to create it. To call Electric Sheep just a screensaver is an oversimplification. This software uses distributed computing to create and render animated particle effects sequences which are developed over time using genetic algorithms controlled by all the users. Now you've just read my description, but you really have to go look, or even better actually install Electric Sheep to see what this is all about.
Scott started a blog recently, and he happened to post about Kandid. It's another piece of software which I have spent far too much time with and it is related to Electric Sheep. It has a 14 different types of image generation techniques including the Flame plugin that Scott wrote, and like Electric Sheep it uses GA to develop new parameters to feed into the image generators. Also like Electric Sheep, the GA fitness function is the human controlling the software, although in this case it is one human at a time and the images are static, not animated. It's written in Java, which is good and bad - it runs on many platforms, but it isn't as fast or as native looking as it could be. And on a Mac at least, the installation procedure is a bit weird.
Despite all of that, interacting with it is an easy way for me to kill hours of time and create images that I wouldn't create on my own, yet they still come out of my creative input. I suppose that I also loved playing with Spirographs as a kid, so who knows...
What I do get out of the process is a newfound awareness that the design and creativity process can be thought of as an evolutionary one. There are times where you need to throw in random tweaks, and other times where you need to carefully evaluate and combine the best of different trains of thought. I wish that more problems where easy to parameterize and turn into something that can be uniquely described with a "gene". I use 3D CAD software on a daily basis and I would love it if there were ways to evolve new forms for industrial design. I'm searching around for examples of work on this front, but I'm not finding much of interest.
Comments