A cellular automaton is a discrete computational model consisting of a regular grid of cells, each holding one of a finite set of states, that evolve over discrete time steps according to a fixed local update rule applied uniformly across the grid. The next state of a cell depends only on its current state and the states of a defined neighbourhood, yet iterated application of simple local rules can produce complex, emergent global behaviour. Cellular automata are used to study self-organisation and computational universality, and serve as lightweight simulation substrates for physical, biological and social systems.