CCRMA

Cellular automata


Cellular Automata

(before we start with the automata stuff, this is the small example that we built at the beginning of the class).

First of all some references on cellular automata:

Some topics:

  • the basic building block: a cell (remembers its own state)
  • a lattice of cells
  • rules: define the next state of the cells (generations)
  • neighbourhood: defines the scope of the rules

Unidimensional automata

Here's the example I developed over last class. It implements a one-dimensional automata. Each cell of the automata is a small state machine with just two states. The transition between states is determined by the state of its two adjoining neighbors...

fabric.lisp

A detailed tutorial on that example.

Another example, by Matt Wright, in which each cell is interpreted as a rhythmic position within a "bar".


Bidimensional automata

xlife is installed in all machines, just type "man xlife" for the instructions on how to run it and "xlife" to run the program itself. Most probably the most interesting part is loading up interesting patterns that other folks have discovered. There are tons of those in /usr/lib/xlife/ (check out the PATTERNS readme in that directory).

Example lisp code by Scott Wilson that creates two dimensional cellular automata. And an addition by me that can read ".l" files with patterns for xlife. You can find patterns in /usr/lib/xlife/.


©2000-2003 Fernando Lopez-Lezcano. All Rights Reserved.
nando@ccrma.stanford.edu