ANN: cage 1.0 -- Cellular automata engine in Python
Erik Max Francis
max at alcyone.com
Sat Mar 30 02:47:58 CET 2002
Here's the latest PyOS installment:
CAGE is a fairy generic and complete cellular automaton simulation
engine in Python. It supports both 1D and 2D automata, a variety
of prepackaged rules, and the concept of "agents" which can move
about independently on the map for implementing agent behavior.
CAGE comes with numerous examples of fully-functional CA systems,
including Conway's Game of Life, Langton's self-reproducing
automaton, Langton's "vants," and 1D automata rule explorers. It
also comes with simple displayers (including a curses interface
for 2D automata). Also included is a unique implementation of a
finite state machine (ant.py).
Note that CAGE is implemented entirely in Python, and due to its
very generalized nature, is not designed for speed. It is
sufficient to update a 80x24 Conway's Game of Life grid at a few
times per second on a modern machine. CAGE is intended primarily
as an education toolkit, rather than an industrial-strength CA
Getting the software
The software is available in a tarball here:
The official URL for this Web site is
In very general terms, a cellular automaton has the following key
- time is measured in discrete steps, called time units;
- a network of cells, each of which with a well-defined state at
each time unit;
- at each time unit, each cell has a series of other cells which
constitutes its neighorhood;
- the state each of cell changes according to a state transition
function which depends on the state of that cell and the states
of the cells of its neighbors;
- in synchronous automata (the typical usage), all cell
transitions take place simultaneously.
In most cellular automata (and most textbook definitions), the
cellular network is arranged into a rigid lattice (*i.e.*, a line
or a grid), and for any given cell its neighborhood is constant
(that is, the same for all time steps). These assumptions,
however, are not present in CAGE.
Erik Max Francis / max at alcyone.com / http://www.alcyone.com/max/
__ San Jose, CA, US / 37 20 N 121 53 W / ICQ16063900 / &tSftDotIotE
/ \ Nationalism is an infantile sickness.
\__/ Albert Einstein
Alcyone Systems' Daily Planet / http://www.alcyone.com/planet.html
A new, virtual planet, every day.
More information about the Python-list