Details of bitozoon anatomy
In current anatomy eyes can see all three colors independently. Sixteen numbers (one for every color and for every eye plus stamina level) made up input for neural network. Eyes look into five directions, as shown on the picture. Eyes are described by two numbers. Eye sensitivity describes how good are eyes when looking at distant objects and angular sensitivity describes how narrow is an eye's angle of vision.
Neural network
Neural network has a variable number of neurons and a variable topology. Every neuron has five inputs and one output. Network does not have a layered structure - every neuron can be connected with every other, it can be even connected with its own output. Network does not have to use all input values and all neurons output. Topology and weights are inherited from both parents and they can be changed at the breeding time, thus five-neuron parents can have a four or six neurons offspring. Neural network weights are not changing in the life span of animals. Note - if this description is not enough for you please refer to the source code to check how the NeuralNetwork class is implemented.
Flagella
At the beginning of the simulation all flagella have the same angle to the body (45 degrees). This can be mutated later.
Simulation parameters
There are three tabs where you can change simulation parameters:
- Herbivores at start
- number of herbivores at the simulation start.
- Carnivores at start
- number of carnivores at the simulation start.
- Number of plants
- number of plants ("pots").
- Neurons at start
- number of neurons every animal has at the start of the simulation.
- Time increment
- used for simulation of movements.
- Breed distance
- maximum distance between animals at which they can breed.
- Eat distance
- maximum distance between food and eater that allows eater to eat.
- Flagella efficiency
- scales down flagella output.
- Viscosity
- defines friction of the world (used for simulation of movements).
- Sight distance
- used to speed up the simulation - if two objects are further then sight distance calculations for eye signals are not performed.
- Stamina per movement
- cost (in stamina) of animal moves.
- Stamina per neuron
- cost of one neuron (per one simulation step).
- Stamina at start
- level of the stamina every animal has assigned at the beginning of simulation.
- Stamina per plant
- quantity of stamina herbivores gain for every plant eaten.
- Breed level
- minimum level of stamina necessary to breed.
- Inherited stamina
- quantity of stamina young bitozoa inherits from parents.
- Flagella angle
- flagella angles at the start of the simulation.
- Initial eye sensitivity
- describes how efficiently eyes see distant objects. This will mutate during evolution.
- Stamina per herbivore (%)
- percentage of stamina carnivore will get from the eaten herbivore.
- Mutation probability
- probability that young bitozoon will be different from its parents.
- Carnivore strength
- stamina level of carnivore is multiplied by this number and compared with herbivore stamina to check, who will win when they meet.
- Life cost per dT
- amount of stamina burn every time step, even if the animal is not moving.
- Random numbers generator seed
- as stated.
- Asexual reproduction
- whether asexual reproduction is allowed.
- Stamina level for asexual reproduction
- level of stamina above which bitozoon splits into two.
- Old anatomy herbivores
- whether at start all herbivores will have neural network with topology taken from the first bitozoa simulation. Makes no sense if initial number of neurons has value other then seven. This topology will evolve.
- Restart if no carnivores
- as stated.
- Pausing simulation at x dT
- you may want simulation to run only for the specified amount of simulated world time to check some parameters at some moment. After x simulation steps program will save the simulation under the new name *.bt2.stopped_at_x.
- Harvesting
- here you may define, how many animals are killed and how often. This was prepared for a brave kid who dared to ask for :)
Program menu
Most menu options are obvious or described elsewhere. Explanation may be necessary for a File/Batch operations. This was prepared to help creating many simulations and gathering data from them.
- Save simulation description
- creates in default directory text file desc.txt that contains all parameters of current simulation.
- Generate simulations
- lets you choose a file that will be used to generate set of simulations. Simulations are generated according to data from a text file that you will choose. See example file batch.txt. First simulation uses default world data, every next uses world data that was defined for the previous one. Everything else is selfexplanatory I believe.
- Collect information
- creates a comma delimited text file collection.txt with data gathered from all *.bt2.stopped_at_* files. This file can be easily imported into most spreadshet programs for further analysis.
Animal parameters
When simulation is paused you may check parameters of any individual animal or of whole population. To check individual animal, doubleclick it, to check entire population, select Options/Statistics from the program menu. Holes in histograms are caused by a lousy coding, not by strange distribution of bitozoa parameters.
History window
In the history window you can check how the populations have been changing during last 50 time units and what was the energy flow. Energy flow is defined as sum of all stamina units eaten or used for breed by herbivores and carnivores (thus CB is stamina used by Carnivores for Breeding). Energy flow averaged is a moving average - every point is a mean of previous five data points.
Bitozoa are sponsored by dysleksja, ChemBuddy chemical calculators, pH meter, titration site.