CellMorphs V1.1

Contents

  1. Installation

  4. Genome
2. Introduction 5. Gallery
3. Automata 6. Contact

1. Installation

  1. Install the latest java version.
  2. Download CellMorphs.
  3. Unzip the the zip-file and run CellMorphs.jar (instead of double-clicking, you may have to right click -> open with -> Java (TM) SE binary).

2. Introduction

CellMorphs is a program for evolving cellular automata (CA). CA are complex dynamical systems that exhibit overall behavior that cannot be traced back to the underlying rules, that is, 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 CA of CellMorphs are based on Conway's Game of Life and the idea of evolution by aesthetic selection is derived from Richard Dawkins' Biomorphs. It starts with a classic game of life CA and five slightly mutated versions of it, all of which you see moving on the screen. Since you're smarter than the computer, you do the hard job of selection, while the computer generates new mutations. Here's how the program looks like:

On the left side you see the parent cellmorph and five mutations (children) of it. Select one of them 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. 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):

cosmic donut
golden hourglass
mandala
praying monkey
CellMorph donut
CellMorph hourglass
CellMorph mandala
CellMorph 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".

3. Cellular Automata

In general, cellular automata (CA) 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 CA is called homogeneous.

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

Shells
Natural shells on the left, simulated ones on the right. Meinhardt, H. (1995). The Algorithmic Beauty of Sea Shells. Springer Verlag. (p. 179, 180)

The CA in CellMorphs have the following properties:

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

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

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.

 

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.

4. Genome

The rules and properties of the cellular automata (CA) are stored in a genome with 20 genes. This amounts to roughly 4.6*10^124 possible genetic combinations to define CAs 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 CAs 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: CA starts with init field, 1: CA start is random

0

-

-

1

2

2. Init field

Contains the init field of the CA

-

-

-

-

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

5. Gallery

Belt
A belt is rolled out. Its borders are kind of glowy due to an alpha channel effect. When it hits the walls, the gaps get filled. This only works if the seed is exactly in the middle.

 

Water
Noise, transparency and the evolved set of rules simulate a moving water surface. It looks like there are two levels of depth: the moving water surface in dark blue and the static ground in light blue and turquoise.

 

Duplicating Gliders
Two gliders are duplicating when hitting each other on the walls and in the middle. They build self-similar structures in time comparable to the structure on the right which was created by a one-dimensional cellular automaton.

 

Big Glider
Here we see a big two-periodic glider taking 6 steps to fully develop and take off.

 

Praying Monkey
The praying monkey emerges after 22 steps and remains stable thereafter. For a detailed analysis of its ontogenetic process see the introduction section.

 

Persian Carpet
Following similar dynamics like the belt, a persian carpet is rolled out. Changing the size of the cellmorph results in different patterns.

 

Horizontal and Vertical
In an explosive way, a structure with vertical and horizontal lines contained in green borders emerges. Changing the size of the cellmorph leads to different shapes.

 

Mountains and Rivers
At first, mountains arise from a green plain. Then we get the impression of flying over a landscape with a river. The illusion of movement emerges due to the particular shape of the evolved neighborhood (on the right). Cells act according to the state of their bottom, left and right neighbors. The shape of the river is influenced by background noise, causing it to flow left, right or straight.

 

Inca Lady
The inca lady was sent in by Markus Hausammann. We therefore finally see conclusive scientific proof for the claim that Incas had green faces :).

 

6. Contact

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* This section has been partly adopted from the unpublished script of the seminar on artificial life by Max Lungarella at the University of Zurich 2007.