i've been working on simulation stuff lately at work and cellular automata play a fairly important role. my job has also involved trying out and evaluating a lot of different technologies and libraries related to python, simulations, and scientific computing in general. so as a side project to the main simulation work, i started developing a little toy program for playing with cellular automata. the idea is to keep it fairly simple so i can try out new libraries in it without much trouble.
when don hopkins was visiting in december, he recommended the book Cellular Automata Machines: A New Environment for Modeling to me for learning about CAs. it's a fantastic book but all of its examples are based on an MIT CAM-6 expansion card from the 80's that was a special piece of hardware designed to perfom CA operations. the card was controlled via Forth, which is a somewhat obtuse stack-based language. very cool, but with a very steep learning curve and quite unlike most programming languages any non-programmers are likely to have ever encountered.
so my goal for the cellular automata toy was to a certain extent to emulate the CAM-6 system but using python as the language to specify the rules in rather than Forth.
the current version i think turned out fairly well. it's relatively fast (on linux at least; windows seems to make it 3 or 4 times slower), very powerful, and pretty easy to use once you've got it figured out.
if you're interested in Cellular Automata but don't feel like coding up a whole framework yourself, maybe you'll find it useful. basically, i learned Forth so you don't have to.