**Cellular automaton**

Successive generations of cells in a grid are displayed.

From one generation to the next, cells die or cells are born according the number of their neighbours (from 0 to 8):

A cell with fewer than 2 neighbours dies (from 'loneliness').

A cell is born in an empty square if it has exactly 3 neighbours.

A cell with more than 3 neighbours dies (from 'crowding').

These are the original rules used by the English matematician J.H. Conway in his 'Game of Life' as these values give a behaviour well balanced between survival and extinction. Generally the rules may be stated as follows:

A cell with fewer than L neighbours dies (L for 'loneliness').

A cell is born in an empty square if it has exactly B neighbours (B for 'birth').

A cell with more than C neighbours dies (C for 'crowding').

where all values of L, B and C satisfying 1 ≤ L ≤ B ≤ C ≤ 7 are possible.

Try using different values on start generations of your own choice made by clicking (or unclicking) the grid (B has first priority in the connected spinboxes).

The delay between computation of each generation may be varied in steps of 100 ms. All values can also be changed during execution.

Examples: __glider__ (L,B,C = 2,3,3), __symmetric__ (L,B,C = 1,3,3), __random__ (L,B,C = 2,3,3)

Cyclic or static patterns (or die out) may arise after some generations.

Cellular automata are a topic in mathematics and have some interesting implications.