Morphogenetic System

More detailed information in Roggen, Floreano and Mattiussi 2003.


The morphogenetic system is a genetic coding designed specifically to evolve cellular structures. It will be one of the mechanisms used in the POEtic circuit. However, it is very general, and it can also be used for other cellular systems.
The development of the morphogenetic system is motivated by the fact that direct codings are not very flexible in cases where new cells are added to the system (no bits are available to give a function to that cell), or when the system reorganizes, because the number of elements in the system must be known in advance and cannot change throughout the life of the system. Also direct codings may pose some problems of scalability.
The morphogenetic system assigns a functionality to each cell of the circuit from a set of predefined functionalities (something akin to skin, muscle, neuron cells, etc. in living organisms). The process works in two phases: first a signalling phase then an expression phase. The signalling phase relies on the ability of the cellular circuit to exchange signals among adjacent cells to implement a diffusion process. The second phase, expression, finds the functionality to be expressed in each cell by matching the signal intensities in each cell with a corresponding functionality stored in an expression table. The genetic code contains the position of diffusing cells (diffusers) and the content of the expression table, which are both evolved using a genetic algorithm.


The morphogenetic system relies on a set of predefined functionalities which is called a family of functions. The family of functions must offer a rich enough repertoire of functionalities to realize the desired circuit. Within the POEtic project the family of function which is used is composed of a variety of spiking neurons with different characteristics. However, the family could also be composed of logic function, filter elements, or any other functionality which may be required by the application.
The three arrays on the left are snapshots of the signalling phase with one type of signal and two diffusers (gray cells) at the start of the signalling phase (left array), after two time steps (middle) and when the signalling is complete (right). The number inside the cells indicates the intensity of the signal in hexadecimal. The expression table used in the expression phase is shown on the right. In this example the signal D matches the second entry of the table with signal F (smallest Hamming distance), thus expressing function F1.

Signalling phase

The cellular circuit allows for signals to be exchanged between adjacent cells. A signal is a simple numerical value (the signal intensity) that the cell owns, and that adjacent cells are able to read. Special cells, called diffusers, own a signal of maximum intensity. The signal intensity in the neighbouring cells then decreases linearly with the distance to the diffuser. In the current implementation four type of signals (each represented by a 4-bit number) are used. They are diffused independently, without interaction among them.

Expression phase

The expression phase assigns a function to each cell by matching the signal intensities inside that cell with the entries of an expression table stored in the genetic code. Each entry of the table contains the intensities of the four signals and the function to express in case of match. A cell is said to match an entry of the expression table when the hamming distance between the signals in the expression table and the signals in the cell is minimum.

Genetic encoding and evolution

The genetic code contains two parts. The first part is the expression table and the second is the location of the diffusers (see figure below). The expression table contains 16 bits for each entry (4 signals coded on 4 bits each). Each entry corresponds to a predefined function (remember, the functions are not evolved). The location of the diffuser is stored as a pair of X,Y coordinates, plus two bits indicating the type of the diffuser.
A standard genetic algorithm is used to evolve the morphogenetic coding. More information and practical applications of the morphogenetic coding can be found in the above mentionned article.
The genetic code contains two parts. The first is the expression table, here with n entries. Each entry is 16 bits long. The second part contains the location of the diffusers and their type. The number of bits for the X and Y coordinates depends on the size of the network. The type of the diffuser is encoded on 2 bits.

Example: random patterns

The MorphGen program generate random patterns, either with a direct coding (left panel), or with the morphogenetic system (right panel).
To get an idea of the type of patterns which are generated by the morphogenetic system you can download the MorphGen program (win32).
Each time you click on one of the panel you generate a random pattern. Clicking on the left panel generates random patterns with a direct coding (one or more bits assigned to each pixel). Clicking on the right panel generates a random pattern with the morphogenetic system.
The following parameters can be changed:
Published: 7.05.03/dr      Last update: 7.05.03/dr