A cellular automaton is a collection of "colored" cells on a grid of specified shape that evolves through a number of discrete time steps according to a set of rules based on the states of neighboring cells. The rules are then applied iteratively for as many time steps as desired. von Neumann was one of the first people to consider such a model, and incorporated a cellular model into his "universal constructor." Cellular automata were studied in the early 1950s as a possible model for biological systems (Wolfram 2002, p. 48). Comprehensive studies of cellular automata have been performed by S. Wolfram starting in the 1980s, and Wolfram's fundamental research in the field culminated in the publication of his book A New Kind of Science (Wolfram 2002) in which Wolfram presents a gigantic collection of results concerning automata, among which are a number of groundbreaking new discoveries.
Cellular automata come in a variety of shapes and varieties. One of the most fundamental properties of a cellular automaton is the type of grid on which it is computed. The simplest such "grid" is a one-dimensional line. In two dimensions, square, triangular, and hexagonal grids may be considered. Cellular automata may also be constructed on Cartesian grids in arbitrary numbers of dimensions, with the -dimensional integer lattice being the most common choice. Cellular automata on a -dimensional integer lattice are implemented in the Wolfram Language as CellularAutomaton[rule, init, steps].
The number of colors (or distinct states) a cellular automaton may assume must also be specified. This number is typically an integer, with (binary) being the simplest choice. For a binary automaton, color 0 is commonly called "white," and color 1 is commonly called "black". However, cellular automata having a continuous range of possible values may also be considered.
In addition to the grid on which a cellular automaton lives and the colors its cells may assume, the neighborhood over which cells affect one another must also be specified. The simplest choice is "nearest neighbors," in which only cells directly adjacent to a given cell may be affected at each time step. Two common neighborhoods in the case of a two-dimensional cellular automaton on a square grid are the so-called Moore neighborhood (a square neighborhood) and the von Neumann neighborhood (a diamond-shaped neighborhood).
The simplest type of cellular automaton is a binary, nearest-neighbor, one-dimensional automaton. Such automata were called "elementary cellular automata" by S. Wolfram, who has extensively studied their amazing properties (Wolfram 1983; 2002, p. 57). There are 256 such automata, each of which can be indexed by a unique binary number whose decimal representation is known as the "rule" for the particular automaton. An illustration of rule 30 is shown above together with the evolution it produces after 15 steps starting from a single black cell.
A slightly more complicated class of cellular automata are the nearest-neighbor, -color, one-dimensional totalistic cellular automata. In such automata, it is the average of adjacent cells that determine the evolution, and the simplest nontrivial examples have colors. For these automata, the set of rules describing the behavior can be encoded as a -digit -ary number known as a "code." The rules and 300 steps of the ternary () code 912 automaton are illustrated above.
In two dimensions, the best-known cellular automaton is Conway's game of life, discovered by J. H. Conway in 1970 and popularized in Martin Gardner's Scientific American columns. The game of life is a binary () totalistic cellular automaton with a Moore neighborhood of range . Although the computation of successive game of life generations was originally done by hand, the computer revolution soon arrived and allowed more extensive patterns to be studied and propagated. An animation of the game of life construction known as a puffer train is illustrated above.
WireWorld is another common two-dimensional cellular automaton.
The theory of cellular automata is immensely rich, with simple rules and structures being capable of producing a great variety of unexpected behaviors. For example, there exist universal cellular automata that are capable of simulating the behavior of any other cellular automaton or Turing machine. It has even been proved by Gacs (2001) that there exist fault-tolerant universal cellular automata, whose ability to simulate other cellular automata is not hindered by random perturbations provided that such perturbations are sufficiently sparse.