Continuous evolution simulator

Hello welcome, what you see on your screen right now is an Evolution simulator that uses Genetic algorithms and Neural networks to simulate evolution of little creatures. The creatures need to find food using variety of sensors, otherwise they starve out and die. They also age so that at some point, no matter how much food they eat, they'll perish. The food spawning delay isn't constant, to simulate seasons. Every meaningful aspect of the simulation can be changed in the settings, your imagination (and values that would completely break the simulation) are the only limits :).

Simulator basics

The simulator layout is simple. On the left there is a dark square with creatures and their environment. On the right there is a control panel for settings and statistics.

"The world"

As mentioned above, the dark left square contains the word of creatures. The dark grey parts are an empty space in which the creatures can move freely. The edges of this box are boundaries of the creatures' world and they can't move past them.

The world consists of a grid of small squares. Each square has a coordinate and can contain more than one entity (food or creature). The main purpose of the grid is to calculate distance between entities and to decrease the overall computational complexity of the simulation

Creature

Creature is displayed as a square with a color and a little black line off to a one side to represent mouth and a direction the creature is facing.

Creatures mouth color can turn white to indicate that a creature is taking a bite out of food or another creature.

The color of a creature is random, but children of one creature will always have the same color as their parent, to make it easier to track behaviour of species.

Food

Bits of food are displayed as white squares. They have a mass that can be modified in the settings. A creature must be in a square directly next to the food and must be facing in the foods direction to be able to take a bite. Same applies for biting interaction between creatures.

Once a food source is depleted, another one will spawn at a random location after a delay, which is controlled by the changing season.