About
A cellular automaton is a grid of cells, each of which has a state (such as alive/dead).
To get the next "generation" of a cellular automaton,
the new state of each cell depends on the current states of the cells around it,
according to some set of rules.
This is a tool for experimenting with cellular automata,
allowing you to vary the dimensions and topology of the board,
as well as choose a ruleset.
You can also define a custom ruleset,
using a very simple formal language created for this webapp.
To update changes to the board or ruleset, press the "Update Changes" button.
The maximum board dimensions are 300 x 300.
With higher board sizes, the simulation might run slowly.
The relative slowness of the simulation is partly due to the way the tool encodes the rulesets:
rather than being functions in the source code,
they are represented as abstract syntax trees,
which allows them to be easily modified at the cost of taking longer to evaluate.
Custom Rulesets
To define a custom ruleset, select "Custom..." in the ruleset dropdown menu above.
This will open the text input areas, allowing you to define a custom rule in formal language.
You can also view the definitions of preexisting rules,
in order to get a sense for the syntax the formal language uses.
Click here for more information on how to define custom rules.