CroftSoft
/ Library
/ Software
Evolve
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.
Installation
Evolve is distributed as part of the
Croft Collection.
To install, click on the image above or this link:
collection.jnlp.
Description
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.
Usage
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
History
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.
|