Spontaneous evolution of the greedy

The main aim of this program is to simulate non-directed (from the outside) evolution of organisms in a very simplified world. A much more complex environment, Framsticks, simulates such a setup in the experiment called "reproduction".

To start the simulation here, click one of the two buttons to choose the language. Before you play with the program, read the explanations below.

Rules in the world

We can distinguish two types of organisms displayed on the screen: plants and moving organisms (called further individuals).

Each plant and individual has an exact amount of energy. The total energy of the whole world is constant. One field of the chart may contain unlimited number of organisms (represented as green or red point). Plants (represented as green points) are not liable to evolution process and are placed on the chart randomly in a way that prevents exceeding total world's energy. Placing new plants can be adjusted in two ways:

  • randomly,
  • in dense groups: if there are <=2 plants missing to reach full energy or there are <=5 plants in the world, 4 plants are placed at random. In other cases (or if there are plants remaining to be placed), new plants are located at a distance of 0 do 5 cells (random value) along each of the edges of a randomly selected, existing plant.

Individuals (represented in program by red color) in opposition to plants are able to move, eat plants and reproduce. In each tour individual can eat only one plant. Reproduction of these organisms takes place when one consents to do so and has proper reserve of energy. Reserve of energy is required to rely it to newly created individual. Reproduction may take place in two ways: through crossing over or vegetation. First way consists in crossing over chromosomes of an individual that wants to be reproduced with chromosomes from the individual which is closest to the first one. This action creates a new individual that possesses characteristics of both of its parents. It's placed halfway between them. Second way of reproduction is to deliver an offspring almost identical to it. The only differences which may occur in an offspring are the ones which came into existence because of mutation. In this case new individual is placed nearby its parent. Individuals live as long as they have energy and until they won't exceed some boundary age. In each tour age of an individual is increased by 1 and energy is decreased by 1.

General directions for user

When you manage to get stable, good population (i.e. for placing plants in groups setting) we can observe movements of individuals to the nearest sources of energy. In the areas where is a lot of food huge groups of individuals gather there and grow as long as there is enough food. When food "moves" these groups follow it. When food for such group runs out and there is some more food in the other part of the screen the group goes there but during it's way it scatters and becomes less compact. This results from different neural network's settings for each individual and causes that its behavior may vary from the other group members.

Huge influence on the run of the evolution have starting system parameters and in particular the way of the plants placement and settings concerning energy of the individuals, plants and the world. The way of the plants arrangement is very important because with the "random" setting it is very hard to obtain population which will be stable. On the other side setting the parameter to "groups" will allow to get population which will react properly on food. Unfortunately such populations may perish when food runs out and closest food cluster is too far away for the group to get there. Therefore it is a good idea to change setting of the plants arrangement from "groups" to "random" when we acquire good population. Then we're able to observe stable population which should not extinct. Other parameters such as energy (plants, world, individuals) and length of individuals life should depend on the screen size. When we set too small values of these parameters and too large screen size then individuals won't be able to survive the journey from one food cluster to another.

Some screenshots:

Program: Rafal Slomian
Program in javascript: Jacek Jankowski
Mentor: Maciej Komosinski
Translation: Piotr Ceglowski