Last updated: December 14th, 2022
Evolve 5.0
VOLVE    5.0

Overview

This shows a typical simulation window. The rest of the page describes various aspects of the Evolve application.


Toolbar


Status Bar


Viewing Organisms

Next to the main simulation window, this is the second most important display in the simulator. You can view the entire state of any organism. Shown here is an organism that consists of many cells. All cells share the same KFORTH program. However each cell has its own execution context (stack, registers, program counter, etc...). This means different cells and be executing different parts of the same genetic program.

You can click on each cell to view its own individual state information. You can single step through an organism by clicking on 'Step'. Debugging features allow you to completely study how an organism works.


Vision Data

This dialog appears when you click on the [Vision] tab on the previous dialog. This screen allows you to see the distances and types of objects that the cell is will "see" when it executes a vision related instruction (such as "LOOK").


Universe Properties

This dialog just summarizes the current state of the universe. It contains a useful set of statistics about the current simulation. Memory Usage computes how much RAM is being used internally to represent this simulation (all values in bytes). We use commas to display numbers, because they tend to get very large and this makes it easier to read them.

Also, Evolve uses 64-bit integers (instead of 32-bit), this effectively eliminates any possibility of integer overflow during an extended simulation run.


KFORTH Interpreter

This dialog lets you experiment with the KFORTH language. You can write simple programs and single step through them to see how KFORTH works. This dialog shows the source code and also how that source code is compiled (in the disassembly window).

The basic architecture of a KFORTH machine is a DATA stack and a CALL stack. Also each KFORTH machine has 10 general purpose registers ('R0' - 'R9'). Each data value is a signed 16-bit integer.


KForth Instructions Help

You can get help for all the KFORTH instructions (including the instructions used to control the organisms). This dialog is activated when the user clicks on the [INSTRUCTIONS] button.


New Simulation

This dialog is used to create a new simulation. The width and height configures the size of your universe. Seed is used to initialize the random number generator. This means that others can reproduce your results by using the same seed number (as well as the other initial settings from this dialog).

You can add 8 strains to a new simulation. Each strain has its own color, and you can see which strains succeed over time. Strains cannot interbreed.

The KFORTH program is the initial genetic program that the first organism starts out with. Energy is the amount of energy the universe will have. This number remains constant throughout the simulation.

Rather than a blank rectangle for your universe, the "Oval Barrier" will place a oval around the entire universe.


Mutations

This screen lets you configure the mutations rates. Mutations are broken down into several types. The percentage represents the probability that that type of mutation will occur during the birth of an organism.

The last step in creating a new organism is to pass its genetic program (inherited without mutations from one or two parents) through our mutation algorithm. This algorithm uses these percentages to determine the probability that one of these errors will be introduced into the new organisms genetic program.


Protections

This is major new feature in Evolve 5.0. It allows you to craft a mini operating system for your evolving organism. Protections let you define code that you write and code that evolution writes. With these features you can sandbox your evolving program from the built in primitives you invent.


Modes

This screen lets you set the mode bits for various instructions. Many instructions can be configured in various ways. Each mode field has a quick help link to easily understand how to use all the flags.


Strain Profiles

You can create and edit Strain Profiles from this dialog. A strain profile stores all the configuration data for a strain under one name. You can re-use strain profiles when creating new simulations.


Find Dialog

The find feature is a powerful tool for searching your simulation using complex criteria. (See Find Dialog to learn more).


Strain Population

This dialog shows the population of each strain in your simulation.


Key