Cellular automata

Cellular Automata

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...


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/.

Assignment #5

Generate a musical phrase controlling at least three parameters of the notes being generated through the use of one or two dimensional cellular automata. To make things more interesting you have to use the Common Music "interpl" function and envelopes to translate between the controlling output of the cellular automata and the controlled parameters (ie: whatever output of the automata you choose, like population, life of cells, status of cells, row or column number, will become the input or "x" axis of the envelope. The output or "y" axis of the envelope will be used to control whatever parameter you have selected). In this way it is possible to easily establish a non-linear mapping between the "output" of the cellular automata and the controlled parameters in your phrase.

This assignment is due by February 14 2002.

©2000-2002 Fernando Lopez-Lezcano. All Rights Reserved.