Peter Diefenbach: Deinbac
A simulation explaining some principles of evolution.
How to start the program
No matter what option you choose: You need a Java Runtime Environment on your computer. The easiest way is to get it from www.java.com. There you can also check if you already have it installed.
-
Option 1: If your browser supports the execution of Java applets, then a new window should open, and you're ready to start.
If not, the following box will show some error message.
- Option 2: Download the program. Start it by double-clicking the downloaded file.
A word to the programmers among you
If you want, you can download the source code.
Feel free to use the files in your own projects, as long as you name me and all other contributors to the files you took in use.
If you apply changes to my files, please inform me of the result, maybe there are more interested in your improvements.
And here's the manual:
Deinbac
A simulation explaining some principles of evolution.
Table of Content
Introduction
It's about evolution. We have bacterions eating mana. Mana grows at a constant rate. Bacterions are blind, but even though from time to time they find some mana, which gives them energy. A bacterions that has not eaten mana for some time will starve.
Each bacterion has genes which define how fidgety the bacterion moves. A bacterion that grew long enough and has enough energy can split. During that split one gene of the child can change—a mutant.
When two bacterions meet, and both are old enough and have enough energy, then they can have sex. (Our bacterions are hermaphrodite—no male or female, each can mate with each.) The child gets half the genes from each parent.
Through interplay of reproduction, mutation and selection (by starvation) bacterions emerge which fit well to their surrounding.
A word on what you see: Mana is gray. New born, freshly split or mating partners are yellow. All other bacterions are magenta, the darker the less energy they have.
The Menu
Game
Actions dealing with the whole simulation or program.
-
New...
-
Exits the current simulation and starts a new one.
-
Languages
-
Switches the language for the whole program.
-
Quit
-
Quits the program. (If you run this program as applet on my web page, you simply quit the program by leaving the page.)
Run
-
Start/Stop
-
Starts or stops the simulation.
- slow
-
Sets simulation speed to slow.
- medium
-
Sets simulation speed to medium.
- fast
-
Sets simulation speed to fast.
- Show world
-
Toggles the display of the simulated world. On very slow computers, simulation runs faster if display of the world is turned off.
- Magnify
-
Sets the magnification for the display of the simulated world.
- Show trend chart
-
Turns the display of the trend chart window on or off. There you can see the ups and downs of mana in the world (gray), number of bacterions (magenta) and average energy of those bacterions (yellow).
- Show genealogy
-
Shows the current genealogy.
?
Some information about the program.
-
Help...
-
Displays some help about this program.
-
About DeinBac...
-
Displays information about this program.
Start a new simulation
When you start a new simulation, you have several parameters to experiment with.
- World
-
Parameters affecting the world the bacterions live in
- World size horizontally
-
The width of the world.
- World size vertically
-
The height of the world.
- World with borders or torus?
-
If the world has borders, bacterions stop at the borders of the world until they turn. In a torus, bacterions exiting left come in right, vice versa, and bacterions exiting above come in below, and vice versa.
- Initial mana
-
The value must be non-negative.
- Mana to grow each round
-
The value must be non-negative.
- Cockaigne?
-
Cockaigne is a region where mana grows in plenty.
- Initial number of bacterions
-
The value must be non-negative.
- Bacterions
-
Parameters affecting the bacterions
- Energy per mana
-
When a bacterion eats 1 mana, it gets energy to survive that many steps. The value must be non-negative.
- Maximum energy for bacterion
-
This is the maximum energy for a bacterion—it can eat more, but this gives no additional energy. The value must be non-negative.
- Initial energy
-
With this level of energy all initial bacterions start. The value must be non-negative.
- Minimum energy for split
-
The value must be non-negative.
- Minimum age for split
-
The value must be non-negative.
- Minimum energy for sex
-
The value must be non-negative.
- Minimum age for sex
-
The value must be non-negative.
- Statistics
-
Parameters affecting the collection of statistics
- Trend chart frequency
-
The trend chart shows mana, bacterions and average energy over time. Here you can define the resolution over time of the trend chart. The value must be non-negative.
Genealogy
The genealogy shows all bacterions that ever existed within this simulation run, with all their values and relations.
- ID
-
The ID of the bacterion. In our world, the younger bacterions have higher IDs.
- Position
-
The position within the world.
- Energy
-
The current energy level of this bacterion. Time brings it down, eating mana brings it up. Zero energy leads to death.
- Born
-
The timestamp when this bacterion was born.
- Last event
-
The timestamp of the last event (either birth, split, sex or death).
- Mother
-
The ID of the mother bacterion, no matter if the mother has split or had sex.
- Father
-
The ID of the father bacterion, if this bacterion was created by sex.
- Genes
-
The genes define how fidgety the bacterion moves. They consist of six digits for the six possible direction changes (sorted clockwise: forward, slightly right, hard right, u-turn, hard left, slightly left). Higher digit values represent a higher probability to move into that direction.
- Childs
-
If this bacterion was able to reproduce by split or sex, lists the IDs of all the direct children.