Cellular automata are a type of computer program that can create complex, emergent behavior by applying simple rules to determine the state of cells on a grid over time. The typical cellular automaton works something like this: Create a 2D array of cells and assign a random state (e.g. alive/dead) to each cell in the array. Determine the next state of each cell based on its current state, the states of the cells around it, and a fixed set of rules.