Developmental modelling is concerned with modelling the processes of biological development: morphogenesis.
Since 1990 I have worked with a number of different models and developed software to simulate morphogenesis, primarily for the purposes of image generation. My earliest work was with L-systems. I wrote a program, lsys, that implemented timed, parametric, context-sensitive L-systems with 3D geometry interpretation. Additionally, I added the ability to evolve L-system grammars via aesthetic selection (or the Interactive Genetic Algorithm, IGA), which lead to the development of a program called evolve. The first version of the software was completed in 1991, ran on Silicon Graphics workstations, and was first described in this paper.
I used lsys and evolve to create a variety of organic and plant-like models. Typically the process consisted of starting with a hand-coded grammar and then evolving it using evolve. What I liked about evolving L-systems was that sometimes components would disappear from the produced string only to reappear many generations later. This is roughly equivalent to “junk DNA”, where elements of the grammar remained in the genotype but, due to mutations in the organisation of symbols in the grammar, were not expressed in the phenotype. Eventually a mutation would flip the developmental sequence back in, and the shape created by the rules would reappear, often somehow (literally) mutated or different. The sunflower example below illustrates this point:
The image on the left shows the original L-system model. After many generations of evolution, I ended up with the model shown on the right – a kind of “recursive sunflower”. Such a model would be extremely difficult to conceptualise and model “by hand”, illustrating the power of evolution to exceed the limits of your imagination. As the development used timed L-systems, I was able to model the growth and development of these evolved creatures and render them as animated sequences. The sequence below the two sunflower stills shows individual frames of the evolved sunflower growing.
I used the system to create the artwork, Turbulence: an interactive museum of unnatural history. The work, funded by the Australian Film Commission, took about three and a half years to make (from 1990-1993). A lot of time was spent waiting for the computer to render the animated sequences. Many were rendered on, what were at the time, large and expensive supercomputers.
Working in this way clearly demonstrated the phenomenon of emergence, where new forms, behaviours and structures emerge from the interaction of far simpler components. The L-system to create the model above is only about 200 bytes, yet it generates a model sequence 1,000,000 times larger!
The video below shows an excerpt from Turbulence. Watch for the growing sunflower towards the end.
In the early 2000s, the conceptual nature of the system changed to better accommodate two important properties of modelling development. Firstly, the concept of temporal development being continuous, and dependent on internal and external (environmental) component states, and secondly, the modular reuse of components in a hierarchy. L-systems, being discrete, string re-writing systems, don’t handle either of these features well.
I called my new model the Cellular Developmental Model (CDM). In a nutshell, the CDM defines an atomic unit of development, the cell, which is equivalent to a symbol in the alphabet of an L-system. Cells develop in a special data structure called a pool. A cell is a continuously defined entity consisting of the following components:
- A unique identifier or label
- A state vector
- A set of predicate-action rules, that control development
- An interpretation – a set of instructions for how the cell builds the physical (or other) component it represents.
A special type of cell is called a System Cell, which has the property that it can contain other developing cells and has its own pool. This allows the system to form a hierarchy of development.
The predicate-action rules of a cell control how it changes over time. The predicate part specifies a set of conditions or regions that will cause the corresponding action to be undertaken. Typically, these conditions involve the cell’s own state and the state of its neighbours. Actions may affect only a cells own state (which of course can indirectly affect the state of its neighbours). Typical actions include changing a state value according to some differential equation, or causing the cell to divide, produce other cell types, or die.
You can find more information on CDM in this paper. I continue to use the system, which does a good job at generating animated geometric models (the system has also been used to create generative music).