A cellular automaton (CA) is a discrete model of computation consisting of a finite-dimensional grid of stateful cells, a finite set of states, and a fixed function that relates the state of a cell at time $t$ to the state of a cell's neighborhood at time $(t-1)$.