sca, short for “stochastic cellular automata” is a project I’m working on for simulations using “cell”-based agents. The goal is to create representations of complex emergent behavior using both a limited number of agents and a limited number of small, clear rules describing their responses.

Often, agent-based simulations are assumed to contain agents with complex internal state (memory, for example) which move throughout and interact with a “world.” The cellular automata approach has neither of these things; it’s best at modeling worlds themselves, where changes occurs slowly and effects are local.

One goal of this project was to express this philosophy through a model description language, also called “sca.” Because the language “compiler” as well as the rest of the program was written in Common Lisp, the <DSL is very easy to understand—it consists of a fully declarative grammar—and the complete Lisp language is available if needed.

View the complete project at GitHub. There are download instructions, a quickstart guide for getting this running on your computer, and a more-complete discussion of the history and usage of SCA’s.