Cellular automata and Processing

I've just re-discovered my Processing application which implements the generalised Conway Game of Life. The interface allows you to set any rule - for each of the counts of alive neighbours, whether a dead cell lives or a live cell dies. You can also run Conway's rule or generate a random rule.

Here it is

and here is my Processing page

What it doesnt have is any way to register interesting rules the viewer may discover. I discovered a nice one today: l2d=134&d2l=157 which shows constantly varying interesting behaviour - perhaps for a screen saver. Also l2d=125&d2l=3568&id=0.1 which is a slow converger to nearly all white with a few blinkers.

So two jobs to do: One to allow finds to be registered and commented on, the other to take automata specification from the URL in a form like that above. Both seem very Web2.0 - the first enabling participation, the second a unique url for every resource.

Apart from being a exercise in writing Processing, I use it in a lecture on Processes and Emergence.

'Processing' is a poor brand name (try searching for it!) [like eXist in that regard] but a wonderful little language for animations. Developed by two design students form MIT, Ben Fry and Casey Reas, it is open-source software with a really nice little IDE, Java-based (it generates a Java applet) with some great examples of both animations and information display. A much better introduction to programming than full-on Java I think and a candidate for a first language, partly because it places emphasis on algorithms and change, not structure and stasis. Its also much simpler than Flash Actionscript as well as non-propriatory.

Here are some of my favourite Processing examples

Zipcodes by Ben Fry - locates a US Zipcode
Flight Patterns by Aaron Goblin - visualising the flights of planes in the US on a single day
Dreamlines by Leonardo Solaas - a Flickr/Processing mash-up