MathEngine Evolved Creatures

Tim Taylor, Colm Massey
© MathEngine PLC, 1999, 2000

None of the creatures on this page was designed by human.
They were all evolved from populations of randomly generated designs.

[Tim Taylor's home page] [Demo index] [Havok evolved creatures]

[Swimmers] [Crawlers] [Project Information]


Swimmers

Breast Stroke
breaststroke.jpg (1463 bytes)
1373KB
Corkscrew 1
corkscrew1.jpg (1882 bytes)
2064KB
Corkscrew 2
corkscrew2.jpg (1385 bytes)
911KB
Dolphin-Snake
dolphinsnake.jpg (1328 bytes)
753KB
Flipper
flipper.jpg (1526 bytes)
1048KB
Flipper-Snake
flippersnake.jpg (1218 bytes)
882KB
Hammerhead
hammerhead.jpg (1412 bytes)
2755KB
Long Nosed Snake
longnosedsnake.jpg (1656 bytes)
942KB
Tadpole
tadpole.jpg (1554 bytes)
1343KB
Two Legs
twolegs.jpg (1353 bytes)
964KB
Worm
worm.jpg (1759 bytes)
1304KB


Crawlers

Archer
archer.jpg (2072 bytes)
680KB
Arrowhead
arrowhead.jpg (1954 bytes)
3313KB
Crab
crab.jpg (2383 bytes)
708KB
Crab-Dog
crabdog.jpg (2255 bytes)
1888KB
Spider
spider.jpg (2338 bytes)
2398KB


Project Information

These creatures demonstrate typical results of an evolutionary system written by Tim Taylor and Colm Massey of the Intelligent Control Group at MathEngine in 1999. The system was basically a reimplementation of that written by Karl Sims in 1994. The innovations over Sims' work were more technical than scientific: we used MathEngine's commercially available physics engine (available free for academic use), rather than code designed specifically for the application, to provide a realistic physical environment for the creatures to live in; and, more significantly, we performed our experiments on low-end PCs (mostly 400MHz Celerons) rather than the Connection Machine parallel computer used by Sims.

A technical description of the system's design can be found in Sims' papers, but the general idea is as follows:

Each creature is built up from a genetic description which is written as a nested directed graph. The genetic information describes both the creature's morphology and its control architecture. This representation provides modularity to the mapping from genotype to phenotype, and naturally leads to features such as duplication and recursion of body parts. One difference between our work and Sims' is that we used cylinders with hemispherical ends ('sphyls'), rather than cuboids, as the basic body parts, because it is much easier to do collision detection on sphyls.

A run was started by randomly generating a population of genotypes. Each genotype in turn was translated into a physical creature, and then evaluated in a physically simulated environment for its performance at a given task. We used two basic environments, sea and land, as demonstrated by the example creatures presented above. The sea environment included a simplistic model of fluid drag, while the land environment included gravity, a ground plane, and frictional forces for ground contacts. We used a number of different criteria for scoring the success of each creature in its environment, but they all basically rewarded creatures for movement.

The first, randomly generated population of creatures typically performed poorly at the designated task, although a few would, by chance, have some degree of success. Each creature was scored according to its performance, and when all creatures had been evaluated the population was ranked according to score. The best individuals were kept to form the basis of a new generation. This new population was filled up by adding mutated forms of these best genotypes and genetic crosses of pairs of genotypes.

By repeating this process, efficient creatures evolved surprisingly quickly. We typically used populations of 300 individuals and ran the experiments for 50-100 generations. A single run of this size would take between 4-8 hours on a single PC.

One of the nice properties of systems such as this is that each run generally produces a very different result due to the stochastic nature of the evolutionary process. We only selected for high-level behaviours such as the ability to move forwards, but within the vast space of different creature designs describable with the genetic system used, there are countless forms which can competently perform such behaviours. The evolutionary process is therefore a tool for exploring interesting regions of this vast space of creature designs; it is a creative machine for generating suitable and interesting forms and behaviours, not limited by the preconceptions of a human designer's imagination.


[return to top of page] [return to Tim Taylor's home page]

Document last updated: Tim Taylor, Wednesday, 14 August 2013