Skip to the content.

Check out the CellMorphs 3D Metaverse Gallery on Cyber.

3D Cyber Gallery

What are CellMorphs

CellMorphs are generative digital works of art, based on evolved cellular automata. Cellular automata are complex dynamical systems that exhibit overall behavior that cannot be traced back to the underlying rules. In other words, they show emergent or self-organized behavior. Complex systems typically consist of many similar, interacting, simple parts. ‘Simple’ means that the behavior of parts is easily understood, while the overall behavior of the system as a whole has no simple explanation.

The cellular automata of CellMorphs are based on Conway’s Game of Life and the idea of evolution by aesthetic selection is derived from Richard Dawkins’ Biomorphs.

CellMorphs Software

Create your own CellMorphs with the open source cross-platform CellMorphs software:

  1. Download CellMorphs.
  2. On Mac OS, you may need to install the java runtime environment (Windows and Linux have it preinstalled).
  3. Unzip the the zip-file and run CellMorphs.jar.

Once you open the CellMorphs Software, it shows a parent CellMorph based on classic Game of Life rules on the top left. Also, you will see 5 children, which are mutated versions of the parent. Since you’re smarter than the computer, you do the hard job of selection, while the computer generates new mutations. Here’s how the user interface looks like:

GUI

Select one of the six CellMorphs by clicking on it to display its genetic information on the right side in the info panel. The red border indicates your selection. Click on the selected CellMorph again to make it the parent of five new children.

In the bottom right you see the control panel. Just experiment with the sliders and buttons to find out what you can do. You can e.g. replay the current CellMorphs with the Reinitialize button, change the speed, or open a CellMorph in a bigger separate window. Also, you can go back to earlier generations. The cellular automata section below will help you understand the genetic information and the different rendering modes.

The results of experimenting with CellMorphs will be surprising and possibilities are virtually endless! If you evolve something interesting, please save the CellMorph to a .cm file and e-mail it to me. Here are some examples I’ve evolved (also check out some animated examples in the gallery below):

Cosmic Donut Golden Hourglass
Mandala Praying Monkey

Note that the ontogenetic development of a CellMorph can be very interesting. Let’s see how the monkey emerges over time (check out “praying monkey.ca” in the examples folder):

0 1 2 3 4 5
6 7 8 9 10 11
12 13 14 15 16 17
18 19 20 21 22 23

At the beginning, neither the shape nor the colors resemble a monkey. At step 2, there’s a color switch in the object as well as in the background. Steps 3 to 5 kind of resemble an alarm clock, which is indeed the monkey’s ancestor, because I had evolved the alarm clock first (see clock.ca in the examples folder). Note the analogy to embryology: Human and other embryos share morphogenetic stages with their ancestors (see prenatal development). Then we see some more development until at step 22, the full-grown praying monkey emerges and remains stable. In game of life terminology, small patterns that last a long time before stabilizing are called “methuselahs”.

Cellular Automata

In general, cellular automata are mathematical models in which space and time are discrete: time proceeds in steps and space is represented as a lattice or array of cells. The cells have a set of properties (variables) that may change over time. The values of the variables of a specific cell at a given time are called the state of the cell.

Each cell has a set of local rules. Given the state of the cell and the states of the cells in its neighborhood these rules determine the state of the cell at the next time step. It is important to note that the states of all cells are updated simultaneously (synchronously) based on the (actual or current) values of the variables in their neighborhood according to the local rules. If all cells have the same set of rules the cellular automaton is called homogeneous.

Cellular automata have been employed to study pattern formation in nature, e.g. evolution of spiral galaxies or sea shell pattern formation.

Natural Shells Simulated Shells

Meinhardt, H. (1995). The Algorithmic Beauty of Sea Shells. Springer Verlag. (p. 179, 180)

The cellular automata in CellMorphs have the following properties:

In order to better observe the dynamics of a cellular automaton, repeat the ontogenetic process using the reinitialize button and try different rendering modes:

As already stated, the cellular automata in CellMorphs are based on Conway’s Game of Life which is defined by the following rules:

Game of Life

If you like, check out my 2D and 3D game of life simulators in the gol_2d and gol_3d directories (windows only). Here are some game of life examples (all animations created with my simulators):

Random initialization

Note the stable and the dynamic patterns. There's also a glider hitting a block on the left.


Spaceships

Three moving spaceships of different size.


Washer

Note the periodic patterns the washer creates.

Game of Life 3D

Technodrome

A 2x2x2 block is rapidly growing and morphing into a cuboid.


Duplicator

Cubes with an odd number of neighbors live, the others die. That's all! Any pattern can be duplicated given this simple rule.

Genome

The CellMorphs rules and properties of the cellular automata are stored in a genome with 20 genes. This amounts to roughly 4.6*10^124 possible genetic combinations to define cellular automata which can be displayed in roughly 2*10^10 different ways. That’s just enough to keep you busy for a while I guess. Note that the vast majority of these cellular automata will be very boring. This is where the evolutionary approach of CellMorphs kicks in and helps you find your way towards the interesting combinations. Again, this bears analogy to the way nature works: Evolution by cumulative selection is an effective way to search the endless design space of genetically possible combinations (most of which are nonviable, or boring, so to speak). Here’s the gene table:

# Gene Description Init value Min value Max value Mutation step Alleles
1 Init field mode 0: Starts with init field
1: Start is random
0 - - 1 2
2 Init field Contains the init field - - - - 2^49
3 Random init density Density of random initialisation (percent) 20 0 100 10 11
4 Noise 0: noise off
1: noise on
0 0 1 1 2
5 Noise amount Probability of cell flip per step: value/10000 1 0 100 2 50
6 Cell size Size of cells in pixels 4 1 20 1 20
7 Radius of neighborhood Radius of neighborhood in cells 1 1 20 1 20
8 Shape of neighborhood Pattern of consideres neighbors around cell - - - - 2^400
9 Isolation Game of Life rule: Cells die if they have <= x neighbors 1 0 1000 1 1001
10 Overcrowding Game of Life rule: Cells die if they have >= x neighbors 4 0 1000 1 1001
11 Birth minimum Game of Life rule: Cells become alive if they have >= x neighbors 3 0 1000 1 1001
12 Birth maximum Game of Life rule: Cells become alive if they have <= x neighbors 3 0 1000 1 1001
13 Red peak Maximum sensitivity of red color channel (living neighbors / size of neighborhood * 255) 230 0 255 15 18
14 Green peak Maximum sensitivity of green color channel (living neighbors / size of neighborhood * 255) 150 0 255 15 18
15 Blue peak Maximum sensitivity of blue color channel (living neighbors / size of neighborhood * 255) 70 0 255 15 18
16 Red breadth Linear sensitivty spectrum of red color channel 60 1 1000 15 66
17 Green breadth Linear sensitivty spectrum of green color channel 60 1 1000 15 66
18 Blue breadth Linear sensitivty spectrum of blue color channel 60 1 1000 15 66
19 Transparency 0: no
1: yes
0 0 1 1 2
20 Transparency value Amount of transparenyc (0 = opaque, 255 = invisible) 128 0 255 40 6

Gallery

 

 

 

 

 

 

 

 

Contact