Open Source Toolkit for Evolving Virtual Creatures


Previous Work



JungleBoogie is a research tool for exploring brain-body evolution. The system is based on the work of Karl Sims' block creatures and Gregory Hornby's evolving L-System creature. I hope that JungleBoogie will function as a brain-body evolution toolkit, removing a great deal of tedious overhead and encourage people to investigate more advanced evolution involving interaction and intelligence.

Nature has generated many versatile, robust control systems with corresponding physical bodies, e.g. the brain and body of an ant. JungleBoogie mimics nature’s evolutionary design process and creates virtual animals in a simulated physical environment. Eventually the evolved control systems could be transferred to real robotic bodies.



Evolved creature pushing target

Swinging toward target

Hand Coded four-wheeler morphology. Visualization of Neural Net Activity

Evolved neural net seeking movable target

Hand-coded hexapod morphology with evolved neural net.



Movie of various creatures





JungleBoogie generates and optimizes the brain and body of virtual creatures. Evolution occurs in a virtual 3D world that simulates the physics of motion. The creature bodies consist of block segments with connecting joints. In each creature, a neural network functions as a brain. Network outputs drive actuators that move joints. Virtual light sensors feed into network inputs. A user-specified evaluation function defines the fitness of an individual, and fitness determines the probability of reproduction. JungleBoogie evaluates creature fitness based on given criteria such as ability to push an object or follow a light source.

The genotype or "DNA" of each creature is an evolvable parametric Lindenmayer-system
grammar. Starting with a predefined start variable, the grammar expands deterministically into instructions that specify how to build the creature’s body and brain. JungleBoogie uses this indirect encoding because it leads to fractal-like repetitions in the phenotype that are common in nature. A genetic algorithm performs mutation and crossover on the grammar by changing symbols or swapping sections of grammar rules between different creatures.

JungleBoogie runs in the breve environment, a user-friendly programming environment that provides dynamic physics simulation, OpenGL display, and GUI interfacing. JungleBoogie’s object oriented code is extensible: new evolutionary strategies can be tested, and different evaluation functions can be added. I plan to make JungleBoogie an open source project.



Previous Work

JungleBoogie is based on the work of Karl Sims and Gregory Hornby. Sims created evolving creatures with sensors that could actively follow a goal object. Hornby described parametric Lindenmayer-system encoding as a way to generate more “natural” structures. The goal of my work is to integrate the ideas of Sims, Hornby, and others into a single system that allows experimental evaluation of various evolutionary mechanisms. I want to make evolving brain-body research accessible to people without great programming overhead.




Creatures were evolved with the following behaviors:
Locomotion: creature moves in a single direction.
Pushing behavior: creature pushes a block.
Object following: creature follows a randomly moving light source.


Future questions

How would Genetic Programming code compare to a neural net as a controller?
Can co-evolution create more complex behavior than individual evolution?

Paper about JungleBoogie presented at GECCO 2004 undergraduate workshop.


Why the name JungleBoogie?

The jungle is an environment with strong competition among organisms: simulating a jungle-like coevolutionary environment is a future goal for JungleBoogie. Boogie refers to the repetitive motions or organisms.



Second prize at the 2004 Georgia Tech College of Computing Undergraduate Research Symposium



Special thanks to Dr. Tucker Balch of the Georgia Institute of technology for advising me during the project and providing computing equipment.



Copyright 2004 Richard J. P. Giuly