Created by Jesse Craig
Having trouble? If the applet never starts it is most likely because you are using an old version of the Java Runtime Environment (JRE). This applet requires Java 5 or higher. You can upgrade for free at Java Soft. Go to Java Soft's download site and download the latest JRE.
If you see an error saying java.lang.UnsupportedClassVersionError then you are definitely using the old version.


In this game a population of Critters must evolve a strategy for finding food. Initially the Critters start with randomly generated computer programs for brains. Then, using techniques based on evolution, new brains are generated from these computer programs. Each new Critter born is given a new computer program that is either identical to one of its parents' brains, a combination of its parents' brains (crossover), or some random variation of its parents' brains (mutation). This is done using a technique called Genetic Programming.
Each Critter can move forward or backward, turn to the right or left, wait, and sleep. Each action consumes food, with Sleep consuming the least. Each time a Critter passes over a ripe plant it gains more food. The Critter that has eaten the most ripe plants is circled in red. This Critter is considered the best Critter in the current population.
Symbol Key
Normal Critter (facing east)
Young Critter (facing west)
Starving Critter (facing east)
Old Critter (facing north)
Plant with Ripe Food
Plant growing Food (not yet edible)

Explanation of Controls

Selections Pressure -- When selecting parents for breeding, do we want to chose at random (None) or always take the Critters that have found the most food so far (Extreme)?
Plant Growth Rate -- How quickly do plants become edible again after they have been eaten?
Birth Rate -- How often are new Critters born?
Crossover Rate -- How often are new Critters born that use a combination of their parents' brains?
Mutation Rate -- How often are new Critters born that use a random variation of their parents' brains? This variation will be based on either one, or both, of the parents.