As mentioned in “The benefit of programming mistakes” I am trying to simulate the growth of snow crystals using a modified cellular automaton. Cellular automatons are used in Conway’s game of life and as morphological filters in digital image processing. But with a simple cellular automaton I would only be able to grow thick round blobs. Thus, some intelligent agents come in to grow sprawling structures.
The cells are in a square grid. Here we use for each cell only the cells above, below, at left and at right as neighbors. A cell may be empty or filled. A filled cell may be active or inactive. An active cell may be a simple growth cell or a tip cell. In the images, the color of the pixels depend on the kind of cell and on the time it has changed. Each tip cell has a growth direction: up, down, left or right.
There are different growth processes. In a tip growth step a tip cell becomes inactive and one of its neighbors becomes a new tip cell, according to the growth direction of the tip cell and only if the cell is empty. This makes elongated structures. For a tip division step, each neighbor of a tip growth cell becomes a new tip growth cell with a new growth direction depending on its relative position. This gives complicated branching structures having some self-similarities. In a simple growth step all neighboring cells of a simple cell or an inactive tip cell become simple growth cells if they are empty. This is roughly the procedure I use. Some exception handling is used and a suitable random choice of the different growth steps. All images are then created automatically by the computer.
At first sight one might believe that these images have been created by a fanatic person, obsessed maybe by geometry. Closer inspection however shows signs of an algorithm.