# System development – Cellular Automata

A cellular automaton is a collection of (coloured) cells arranged on a grid. The cells evolve on the grid through a number of time steps, according to a set of rules based on the states of the neighboring cells. The rules can be applied iteratively for as many steps as desired. Such a model was first considered in the 1950s by von Neumann, who used it to build his “universal constructor”. Further studies were conducted in the 1980s by S. Wolfram, whose extensive research culminated in the publication of the book “A new kind of science”, which provides an exhaustive collection of results concerning cellular automata.

The fundamental parameter concerning a cellular automaton is the grid on which it is computated. A CA can be computed on a 1D line, a 2D or a 3D grid which can both vary in terms of shapes. CAs can be computated on grids consisting of squares, triangles, hexagons, etc. Another parameter is the number k, representing the colours or states a cell can have. K=2 (binary CA) is the simplest choice, and also the one I have been using in my experiments. In the case of a binary automaton, the number 0 is usually assigned to the colour white and 1 to the colour black. In my experiments the number 0 refers to a cell being dead, and 1 refers to a cells state being alive. An alive cell generates a point in spaces, whereas a dead one generates a void. Governing the evolution of the CA is also the set of rules applied. For 2D cellular automata, the one I am using for my experiments, there is a total of 255 possible rules depending on the states of the neighboring cells of each cell. For my form finding experiments each iteration of a 2D CA has been memorized by the computer and stored in 3D spaces. The result was a collection of points generated by a CA controlled by its initial configuration ( or the initial state of each cell in the grid ), the evolving rule and the number of iterations.

The rules governing the evolution of a CA are vast and produce interesting results, varying from ordered CAs which die after few iterations to chaotic patterns. Upon experimenting with a few rules I have decided to research rule 30 in more detail, also known as the Game of Life rule. Rule 30 has been discovered by John Conway in the 1970s and popularized in Martin Gardner`s Scientific American columns. The game of Life is a binary (k=2) totalistic cellular automaton with a Moore neighbourhood of range r=1. The evolving rule states that a dead cell can come to life if surrounded by 3 alive neighbours, and an alive cell survives if surrounded by 2 or 3 alive neighbours. Such a simple rule can produce very interesting results when computated in 3D space.

For my experiments I have been using the Rabbit plugin by Morphocode, using their sample CA definition as a starting point.

## One thought on “System development – Cellular Automata”

1. Damjan says:

Hello Alex, is there a possibility to get the full Diploma Work? : )