Virtualized Evolution is a software suite for creating a universe where software can develop it self based on evolution.
The evolution is based on challenges and rewards. The more challenges a program manages to complete, the higher score it gets, the higher is the chance that its DNA will be inherited down to the next generation.
The programs are developed based on the concept of DNA and RNA. Meaning that the code that is inherited and mutated between generations (the DNA) contains information on what to do. While the software interface that interprets the DNA (the RNA) contains information on how to do it. This means that the program can evolve naturally by changing its DNA, while we control what it can do by controlling the RNA.
For every iteration the 5 best DNAs are selected and distributed to the clients to increase the chance of successful mutations.