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.

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.

Deutsch (Deutschland)
English (United States)
Quit

Quits the program.

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.

Zoom level 1 (4x4, detailed)

Zoom level 2 (2x2, middle)

Zoom level 3 (1x1, small)

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...

Displays information about this program.

Start a new simulation

When you start a new simulation, you have several parameters to experiment with.

X-size of the world

The value must be in the range from 4 to 2000, and dividable by 4.

Y-size of the world

The value must be in the range from 4 to 2000, and dividable by 4.

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.

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 split

The value must be non-negative.

Initial number of bacterions

The value must be non-negative.

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 (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.