This program simulates small robots, each one is controlled by a recurrent artificial neural network.
They scan their surrounding using low resolution ray casting and this data is fed into the first layer of their neural network.
The output layer of the neural network controls their movement.
Moving decreases the robots power level, when they run out they die. Eating dots gives them new energy.
When they have enough energy they divide. Since the new bot is not an exact copy, they will slowly evolve.
Evolution takes time. Be patient.