I can still remember the day when I first discovered artificial life. It was the summer of 1994 and I was perusing the shelves at the university bookstore in my home town of Chapel Hill, North Carolina. It has since become my life's pursuit. The following is a list of the more intensive alife projects I have undertaken. Some of the programs listed below can be downloaded and used for personal use.

Cellular Automata

Strange Universe


Cellular Automata on a trianglular grid rather than the conventional square grid. The rule set can be modified and several "zoos" of interesting rule sets with a collection of interesting organisms are included. Some people have speculated that triangular CAs are too simple for complex patterns to emerge, include gliders. Well, I found a glider, and it's a remarkably graceful pattern.

Evolutionary Simulations

LSystem Creatures

2005 - 2006

Evolution of two dimensional morphology and neural control structures for organisms constructed of circular cells. The organisms exist in a liquid-type medium and must evolve both physical form (which uses jets for propulsion) and the neural structure to control that form so as to attain food and reproduce successfully. See also Stickers and Creature Evolver, which are related to this work.



Evolution of two dimensional morphology and neural control structures for organisms constructed of sticks. The organisms exist in a liquid-type medium and must evolve both physical form (which uses joints for swimming) and the neural structure to control that form so as to attain food and reproduce successfully. See also LSystem Creatures and Creature Evolver, which are related to this work.

Ant Colony


A simulation of a real ant colony in which the ability to find food, pick it up, and return it to the nest must be evolved from scratch. The possibility for laying down and following trails is also available.

Copy Cat


A nice little demonstration of the evolution of mimicry. Colorful graphs and histograms aid the lively animated display to show how mimicry can occur.



My first alife program. A basic demonstration of how natural selection shapes the distribution of genes in a population of evolving organisms. Numerous graphs are available for viewing gene statistics.

Robotic Simulations

Quadruped Evolver


Cross-listed under Genetic Algorithms. Description provided in that section.

3D Multiple Robot Simulator


A 3D environment using Quesa (a wrapper around Quickdraw 3D). This simulator is equipped for multiple robots in a walled environment (a maze) with small blocks that can be pushed around with accurate physical geometry. A clean API allows easy implementation of robot controller algorithms for the purpose of conducting collective (coordinated group) behavioral experiments.

Toxic Oreo


This is not Macintosh software. This is the Khepera program I wrote which won the first international online Artificial Life Creator's Contest implemented on the Cyberbotics Webots robot simulator. The simulator runs khepera programs so the code can be used in an actual khepera robot as well.

Evolvable Robot


A 2D simulation of a vaguely Khepera-like robot that uses distance sensors (like infra-red sensors) to evolve a neural net that can simultaneously avoid walls and successfully explore a maze-like environment.

Genetic Algorithms

Quadruped Evolver


This was a semester project for Dr. David Ackley's graduate seminar on artificial life at the University of New Mexico. My original goal was to use adversarial coevolution to increase the efficacy of the evolution of neural network locomotion controllers for a simulated quadruped robot. The coevolution idea didn't pan out too well, but I made a number of other interesting observations and wrote a decent final paper which is available on the project's webpage.

Creature Evolver


Evolution of physical morphology and underlying motion-control neurology for creatures constructed of multiple rectangular blocks. An accurate physics engine underlies the 3D simulation such that evolution produces creatures that appear natural. See also LSystem Creatures and Stickers, which are related to this work.

'mazing Mouse


A simulation of a mouse searching for cheese in a maze. A couple of routines can be run. One is a genetic algorithm in which numerous mice run at once and the first one to reach the cheese is the successor genome to the next generation.

Pattern Evolver


This genetic algorithm evolves smooth gray tiling patterns of any shade desirable, composed of only black and white pixels. I wrote a paper about this program that was published in The Handbook of Genetic Algorithms by CRC Press in 1999. The paper is available on the project's webpage.

Emergent Behavior

Fish School


Yet another flocking program. This one uses OpenGL to render a beautiful 3D school of fish. The OpenGL view can be rendered hemispherically (what would be considered normal), or with a fisheye dome projection which can be projected on a hemispherical dome (like a planetarium screen). This simulation demonstrates winner-take-all behavior selection in which agents attempt to satisfy the most pressing drive at any given moment. One thing that makes this simulation interesting is the presence of a few predators which lazily swim around and occasionally make hunting dashes through the school of prey. The resulting evasive behavior of the prey is extremely life-like and beautiful to watch.

Flock With Obstacles


Yet another flocking program. This sucker is a java applet though, so it will run right in your browser window.

Gnat Cloud


Another flocking program. All modesty aside, I believe this program brings together a better combination of traits that a good flocking simulation should have than any other flocking sim. publically available, including accuracy of neighbor tracking, a high population, a three dimensional world that is appears truly 3D, several behavior controlling variables, and of course speed (when taking in account the high populations it can handle).

Mega Flies


A flocking program. This one is different from all the others in that is allows up to 9000 individuals to flock while most flocking programs are limited to a much smaller number. Elegant patterns emerge when large numbers of individuals flock; these patterns are not visible when watching only a few hundred individuals.

Walking Stick


A three dimensional simulation of a hexapod robot using subsumption architecture that can walk over rough terrain.