This Artifical Life program simulates the evolution
of a population of abstract creatures ('agents').
The 'genetic make-up' of each agent is defined by its
speed and vision abilities, which determine how fast
it can move and how far it can see. The colour of an
agent reflects its genetics- the greener the agent,
the better its vision is; the redder an agent is, the
faster it can move. When the program starts, all agents
have speed and vision scores of 1, and appear as khaki-green
In order to survive, agents must eat food, and on each
move ('epoch') an agent will move towards the
greatest source of food that is within its vision range.
Food is depicted by grey blobs: light grey indiciates
a strong food source, while dark grey indicates a weak
Healthy agents may reproduce. In most cases, an agent's
offspring will be identical to it; occasionally, a newly
born agent may have either its speed or its vision abilities
increased or decreased ('mutated').
Before running the program, you can decide the number
of food deposits, the size of each deposit, the speed
at which food replenishes after being eaten, and the
number of agents.
This program was inspired by Sugarscape
as described by Giles Wright in New Scientist, 4 Oct
1997, and motivated by my wish to learn Java. I have
written more advanced versions in Visual Basic, incorporating
disease and the ability to resist it, variable mutation
rates, and speed of reproduction as an ability.
See also Artificial Anasazi
Java source code:
Some example avi movie files:
- in this example, the effect of population pool size
is evident as several separate populations develop
on the 'islands' of food, and the agents from the
larger islands eventually discover and conquer the
less advanced agents from the other islands.
- in this example, slow-growing food leads to cycles
of population explosion, famine, and mass migration.
Eventually, the instability of this model becomes
evident as total extinction occurs.