CroftSoft / Library / Software


David Wallace Croft

2006 May 30 Tue

2022 Dec 24 Sat
Update! A new Rust-based version of CroftSoft Evolve is now available. This webpage documents the older Java-based version. As Java applets are no longer supported in web browsers, the new version uses Rust and WebAssembly.


Evolve is distributed as part of the Croft Collection. To install, click on the image above or this link: collection.jnlp.


The green dots are food. The blue, purple, and red dots are critters.

The critters eat the food. When a critter eats enough food, it reproduces.

Its child is almost exactly like it except that its genetic movement pattern is just slightly different. Each critter has an "X" gene and a "Y" gene which determine the direction that the critter will move at each time step.

The "Garden of Eden" is an area where the food is continuously replenished. Critters that wander in there tend to spawn descendants which evolve into "twirlies" (blue). Twirlies like to run in circles so that they can keep coming back to the food in the Garden of Eden.

Critters outside of the Garden of Eden tend to evolve into "cruisers" (red). Cruisers tend to more or less move in straight lines sucking up food and clearing a path behind them. Since food is not automatically replenished in areas outside the Garden of Eden, twirlies tend to circle in areas where they have eaten all the food and soon starve and disappear.

Try manipulating the food distribution so that you can see the race as a whole evolve from cruisers to twirlies and back again.


Clicking anywhere on the black background creates a new critter at that spot, up to the maximum allowable number.

Changing the "Growth Rate" changes how fast the food grows back as scattered randomly about the field.

Clicking on the "Eden" checkbox toggles the automatic replenishment of the food in the Garden of Eden. The food does not automatically go away when the checkbox is toggled off; it just isn't replaced if eaten.

Clicking on the "Blight" button simply removes all of the food. Note that it will slowly grow back.

Future Improvements

Optional user-controlled parameters and some other ideas that may be made available in the future include

  • Size of Garden of Eden
  • Area of world
  • Wrap-around or instant-death borders
  • Maximum critters
  • Carnivorous predators that eat the critters
  • Learning using neural nets instead of genetics
  • Limited vision for the critters of the immediate vicinity
  • Other ideas


I wrote this program based on a similar program described in a Scientific American magazine (an issue from 1990 or earlier). The first version I wrote was in Turbo Pascal sometime in 1989 or 1990 for a biology class. The second version was in QBasic between 1993 and 1995 which served to keep me entertained while I awaited results in neurobiology lab. I wrote this version, the third version, in 1996 as a Java applet. I revised it sometime between 2002 and 2004 so that it could be deployed as part of the CroftSoft Collection. In 2006, I fixed a bug in the code and the webpage documentation.

CroftSoft Web

Creative Commons License
© 2006 CroftSoft Inc.
You may copy this webpage under the terms of the
Creative Commons Attribution License.