CellularAutomaton[rnum, init, t] generates a list representing the evolution of cellular automaton rule rnum from initial condition init for t steps.
CellularAutomaton[rnum, init, t, , , ... ] keeps only the parts of the evolution list with the specified offsets.
Possible settings for rnum are:
CellularAutomaton[n, k, ... ] is equivalent to CellularAutomaton[n, k, k^2, k, 1, ... ].
Common forms for 2D cellular automata include:
Normally, all elements in init and the evolution list are integers between 0 and .
But when a general function is used, the elements of init and the evolution list do not have to be integers.
The second argument passed to fun is the step number, starting at 0.
Initial conditions are constructed from init as follows:
The first element of aspec is superimposed on the background at the first position in the positive direction in each coordinate relative to the origin. This means that bspec[[1, 1, ... ]] is aligned with aspec[[1, 1, ... ]].
Time offsets are specified as follows:
CellularAutomaton[rnum, init, t] generates an evolution list of length .
The initial condition is taken to have offset 0.
Space offsets are specified as follows:
In one dimension, the first element of aspec is taken by default to have space offset 0.
In any number of dimensions, aspec[[1, 1, 1, ... ]] is taken by default to have space offset 0, 0, 0, ... .
Each element of the evolution list produced by CellularAutomaton is always the same size.
With an initial condition specified by an aspec of width , the region that can be affected after steps by a cellular automaton with a rule of range has width .
If no bspec background is specified, space offsets of All and Automatic will include every cell in aspec.
A space offset of All includes all cells that can be affected by the initial condition.
A space offset of Automatic can be used to trim off background from the sides of a cellular automaton pattern.
In working out how wide a region to keep, Automatic only looks at results on steps specified by .
See Section 3.8.6.
Implementation Notes: see Section A.9.4.
See also: ListConvolve, Partition, BitXor.
New in Version 4.2.