Bitozoa are a small animals trying to survive in a simple world. To do so, they have to evolve.
Simulated world consist of plants, herbivores eating plants, and carnivores eating herbivores. Plants are just plants (I know, it is a tautology), herbivores and carnivores are bitozoa. Bitozoon has eyes, neural network for brain and two flagella. Eyes can see all objects present in the simulated world. Signal from the eyes is used as an input to the neural network. Output from the neural network fires flagella thus moves bitozoon. Every bitozoon has its energy level called stamina. Stamina is burned out by neurons and flagella. Stamina is also burned out when bitozoa are idle, with a speed proportional to their age. Plants are source of stamina for herbivores and herbivores are source of stamina for carnivores.
When two bitozoa with high enough stamina level and from the same species meet they breed leaving a flock of its progeny.
When two bitozoa from different species meet two things may happen. If a carnivore stamina level is high enough carnivore will eat herbivore. If the stamina level is too low carnivore will die trampled by herbivore.
When bitozoon has too much stamina it will breed asexually. Its stamina is divided evenly between two identical animals.
Every bitozoon is described by a bunch of numbers that determine its behavior and details of anatomy. All those numbers can not be changed in a life time of an animal. Every bitozoon inherits those numbers from both parents in a random way. At the breed time any parameter can be changed by mutation. This includes number of neurons and topology of the neural network.
There are three colors used in the simulation - let's call them red, green, and blue. Green is for plants, red for carnivores and blue for herbivores. Colors present on the screen are not necessarily those seen by bitozoa - shades of blue and red are too dark to be used on the display. Color of the animal reflects its stamina level - the more stamina animal has, the brighter it looks. Bitozoa eyes sense this difference.
Plants grow in "pots". Pots are not visible on the screen but they are used when checking if a new plant should grow. At every simulation step one pot is randomly chosen - if it is empty (plant was eaten) new plant is planted. Changes in number of "pots" are the only way to change flow of the energy into the system.