Cellular automata are algorithmic models that use computation to iterate on very simple rules, in so doing these very simple rules can create complex emergent phenomena through the interaction between agents as they evolve over time. A cellular automaton consists of a regular grid of cells, each in one of a finite number of states, such as on and off. For each cell, a set of cells called its neighborhood is defined relative to the specified cell. Rules governing a given cell’s behaviour are a function of the state of its neighbour cell states. For example, a rule might be that a cell is on if two of its neighbours are also on, or a cell is off it three of its neighbours are off etc.