cellular automata toy
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 <a href="http://www.donhopkins.com/">don hopkins</a> was visiting in december, he recommended the book <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0262200600/">Cellular Automata Machines: A New Environment for Modeling</a> 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 <a href="ftp://ftp.forth.org/pub/Forth/FAQ/general">Forth</a>, 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 <a href="http://www2.ccnmtl.columbia.edu/cat/index.xml">current version</a> 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.