This is an implementation of Cellular Automata (aka CA or CAM).

Written by onTy Toom for .NET framework 4.5 in C#.
Latest release is 0.11.01

This project was inspired by these other projects:
  1. Cellular Automata Machines - designing the World (https://camachines.codeplex.com)
  2. Super Animation-Reduction Cellular Automata Simulator, or SARCASim (http://www.collidoscope.com/ca)
  3. Golly, a Game of Life simulator (http://sourceforge.net/projects/golly)

Field Init

The field can be initialized using the following patterns:
  1. Random (you need to specify upper and lower boundaries for the random number generator)
  2. Diamond
  3. Circle
  4. Vertical Bars
  5. Horizontal Bars
  6. Empty (all background color)

Drawing with the mouse

You can change the state of the automata by using the "drawing" tools.
Use color 0 (aka background color) to "erase" automata.


A Transformation of the Field is what gets the Field from time (t) to (t+1).

Several transformation algorithms have been implemented, including:
  1. Conway's Life (acts buggy when field contains anything besides 0's and 1's)
  2. North, East, and Center Minimum
  3. North, East, and Center Maximum
  4. North, East, and Center Median
  5. A simple algorithm which just swaps 0's and 2's, and leaves other cell states unchanged

In addition, custom transformations can be written using a simple language (see below)

Custom Transformations

You can also specify your own transformation rules via a specialized language. It is not yet very strictly defined, but some samples look like this:

Some custom functions:

Sample 1

 min(   (1,2) (0,0)  ) 

Sample 2

 min(   (1,2) (0,0) max( (-1,-1) (-1,0) )   ) 

Sample 3

  max( (-1,-1) (-1,0) )
  mid( (1,1) (2,2)  ) 

Please note that due to current parser limitations, placing of white space is significant. For example
min( (1,0) (0,1) ) is accepted, while
min((1,0) (0,1)) is not accepted.

Last edited Feb 18, 2014 at 12:36 PM by onty, version 28