Darwinbots is an open source artificial life simulator which attempts to simulate artificial life and evolution. It simulates Von Neumann Machines (and Von Neumann probes like the Monolith) better than it simulates biological life necessarily.
Similar to other ALife programs (such as Avida notably) organisms (called "bots" hereafter) are simulated by a DNA script which defines behavior. Conceptually the DNA is a large Finite State Machine that reads various sensory inputs, modifies them, and connects them to various outputs and actions. Bot DNA files are in ASCII with a .txt extension, which allows anyone familiar with the DNA language to write and share DNA files with notepad.
The bots' world is a large non-discrete plane. There are no "grids" bots are placed in, as in cellular automata. Rather, the bots move and roam around like ants on a giant pane of glass.
Bots receive energy ("nrg") by eating other bots. A few bots (deemed "veggies") get nrg from the simulation for free to simulate an inflow of energy. Most actions (movement, DNA execution, eating, etc.) cost nrg.
Conceptually, Darwinbots is the ALife descendant of C Robots, as opposed to Avida or Tierra which descend from Core Wars. Most of the universe rules in Darwinbots descend from that conceptual past.
A certain level of abstraction is necessary to keep the simulation running at decent speeds. Concepts help to provide that level of abstraction. For instance, Darwinbots does not simulate proteinebiosynthesys or enzymatics. Instead, the DNA directly controls a bot's behavior. However you can simulate simple hormones by variables which control feeding, reproduction, growth, or any other physical process.
What are bots?
Every bot is represented by a circle of a given size and color. A bot's "eye" is marked by a white dot on the circle. The eye consists of nine simple sub eyes called eyeX where X is between 1 and 9. These simple eyes return a value that roughly corresponds to the apparent size of the nearest object it can see through that eye.
Bots also have tactile senses allowing them to feel when another bot has bumped into them or when the bot is being attacked. At present there are no long range senses available to the bots (such as sounds in higher organisms or chemical signals in bacteria).
The sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed FILO (First in last out memory stack/array) language, designed to be as robust to mutations as possible. Most bots' DNA is made of only ~6-20 procedures called genes, themselves made up of 20-200 operations. Each operation can potentially change through mutations.
Every bot has its own Energy supply. Most actions cost nrg. If a bot reaches 0 nrg, it dies. Most bots reproduce when their nrg levels are above a certain threshold determined by the DNA. Energy can be replenished by taking energy from other bots in the simulation (analogous to hunting in real ecosystems), by feeding on stored energy reserves (called "body"). Bots also are resupplied by the simulation if they are veggies or alga. Veggies receive energy for free over time (analogous to plants in real ecosystems).
Mutations and Natural Selection
When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behavior. Just as in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear. Note that the simulation itself is not directly interfacing with the DNA or mutations. Increases or decreases in fitness are strictly emergent. Junk code generally gives an evolutionary disadvantage through higher DNA maintenance or processing energy costs.
Because the program does not directly decide how fit an organism is, a bot's survival depends on its long term, combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code: most user written bots can be quite complex.
Unfortunately, Darwinbot evolution takes time. Because a bot generation can last many thousand cycles, and most simulations run at maybe 15 cycles a second, it can take many hours or even several days before significant natural selection can occur.
The optimal strategy for the impatient is to find an old computer and set up a simulation and forget it for about a week.
While the program has been developed mainly to simulate artificial life and evolution, it has also been used as a playground for testing programming skills. Complex DNA programs for bots can be designed from scratch since the DNA language is human-understandable. The user designed bots are placed in an arena where they fight until one species wins. Several leagues have been established with different rules and ratings that are periodically updated as new species are introduced.
Return to Main Page