Cellular Automaton Program

Posted by on Jun 13, 2011 at 9:20pm

A cellular automaton is a cell on a grid that changes states based on the states of itself and its neighboring cells. The next state is found by looking at the current state of the current cell and its neighbors and then applying rules to determine the next state of the cell. Once the next state of all the cells have been determined, all of the cells are updated to their next state. This process can then be repeated as many times as desired.

The most well known set of rules for cellular automata is Conway’s Game of Life. In Conway’s Game of Life, each cell can either be alive or dead. Each cell that is alive (in the alive state) will stay alive if two or three of its neighbors is alive, otherwise, the cell will die (go to the dead state). Each dead cell will remain in the dead state unless exactly two of its neighbors is alive.

Another example of a cellular automaton system is wire world. In wire world, each cell can be in one of four states: empty, conductor, electron head, electron tail. An empty cell will always remain an empty cell. A conductor will become an electron head if one or two of its neighbors is an electron head, and remain a conductor in all other cases. An electron head becomes an electron tail. Lastly, the electron tail becomes a conductor.

The cellular automaton program that I created uses both sets of rules. To use the program, the user simply clicks on the grid to change the state of cells. Once a pattern for the grid has been chosen, the user can go to the menu and click Control, Start. The program will then calculate next the states of the cells. Other options in the menu allow the user to choose between using the rules for Conway’s Game of Life and Wire World as well as to save and load patterns. I have included a few patterns below to demonstrate some of the more interesting features of cellular automata.

Download
Cellular Automaton

Screenshots

Additional Download (Files that can be loaded into the program)
XOR gate
OR gate
oscillators
glider
glider gun

Posted in Programming | Leave a comment
 


Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>