Experiment definitions summary 

This page summarizes basic experiment definitions that are available within Framsticks. Each section presents one experiment definition along with its properties and short descriptions. All these settings are available in the Framsticks GUI and for scripts.

Jump to experiment definition:

Experiment definition: Evolutionary optimization (steady-state)    (short name: standard)

This experiment definition can be used to perform a range of common experiments. It provides

– one gene pool for genotypes
– one population for simulated individuals
– one "population" for food
– steady–state evolutionary optimization
– fitness as a weighted sum of performance values
– custom fitness formulas
– fitness scaling
– selection: roulette or tournament
– multiple evaluation option, average and standard deviation available
– can produce logs with average and best fitness
– can detect stagnation and stop automatically, or start the second fast–convergence optimization phase
– can save best genotypes

This experiment definition has 44 properties – see table below:

Experiment: Parameters
Initial genotype The gene pool will be replaced with the supplied genotype when the experiment begins.
Use the empty initial genotype if you want to preserve the current gene pool.
Gene pool capacity
Simulated creatures
Initial placement For 'Central' placement, newborn creatures are placed at the world center, if possible.
Initial orientation Initial heading of newborn creatures
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Clear performance info Sets the number of instances of each genotype to zero (as if it has never been evaluated).
Genotype performance values stay intact, yet they are meaningless if a genotype has no instances.
Experiment: Parameters: Selection
Unchanged
Mutated
Crossed over
Minimal similarity Only genotypes with dissimilarity below this threshold will be crossed over.
Value of 0 means no crossover restrictions.
Selection rule Positive selection: how to choose genotypes for cloning/mutation/crossover
Delete genotypes Negative selection: which genotypes should be removed when we need room for new genotypes in the gene pool.
If multiple–criteria NSGA–II is set as positive selection, this setting is ignored and "worst rank and crowding distance" is used as negative selection.
Experiment: Parameters: Fitness
Constant Constant value added to total fitness
Life span Weight of life span in total fitness
Velocity Weight of horizontal velocity in total fitness
Body parts Weight of body size (number of parts) in total fitness
Body joints Weight of structure size (number of joints) in total fitness
Brain neurons Weight of brain size (number of neurons) in total fitness
Brain connections Weight of brain connections in total fitness
Distance Weight of distance in total fitness
Vertical position Weight of vertical position in total fitness
Vertical velocity Weight of vertical velocity in total fitness
Criteria normalization Normalize each criterion to 0..1 interval before weighting
Similarity speciation If enabled, fitness of each genotype will be reduced by its phenotypic similarity to all other genotypes in the gene pool
NSGA-II for multiple criteria If enabled, fitness will be replaced with Pareto ranks from NSGA–II (Non–dominated Sorting Genetic Algorithm) method.
Using tournament selection is recommended.
This setting also forces negative selection to be "worst rank and crowding distance" independently from the negative selection setting.
Experiment: Parameters: Energy
Starting energy Base starting energy level (for each stick)
Idle metabolism Each stick consumes this amount of energy in one time step
Automatic feeding Number of energy pieces in the world
Food's energy
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier
Aging time Idle metabolism doubles after this period (0 disables aging)
Experiment: Parameters: Evaluation
Multiple evaluation If more than zero:
– each genotype will be evaluated many times
– fitness will be averaged
– fitness standard deviation will be stored in the 'user1' field of a genotype
– there will be no "Unchanged" genotypes ("Unchanged" value is considered zero).
Evaluation plan Genotypes can be evaluated by multiple simulator parameter files (*.sim). Results produced by each parameter file are saved in the selected Genotype.data key as a Dictionary.

Each line in this field defines a single configuration consisting of the sequence of *.sim filenames followed by a colon and a list of associated performance criteria. Multiple *.sim filenames are separated by the plus sign '+' reminding that the settings imports are cumulative (items not specified in the next file keep their previous values). Empty filename means that the evaluation will be performed using current simulator parameters, without importing any file that contains simulator parameters. There are 3 kinds of performance criteria (after ':'):
– genotype fields, listed as plain names: velocity, vertpos, etc.
– data fields, listed as data–>field_name (created by script, see foodfinding–usercode.inc)
– special properties:
– 'fit' and 'fit_stdev' are the fitness average and standard deviation
– 'time' is the measured in seconds real time spent on evaluating a given genotype

Example (the first line of this sample plan contains an empty filename):

:velocity,fit
walking.sim:velocity,fit,fit_stdev,time
quicktest.sim:vertpos
roughterrain.sim:velocity,time
walking.sim+reduced_gravity.sim:velocity,data–>special_fitness
Save results to key in Genotype.data Genotype.data dictionary key where performance results from each of the multiple parameter runs will be saved
Save results to file name File name (in "data/scripts_output" directory) where performance results from each of the multiple parameter runs will be saved
Experiment: Parameters: Extras
Stagnation (auto stop) No improvement period required to stop simulation (stagnation). 0 disables automatic stopping.
Minimal fitness Minimal fitness that allows to automatically stop evolution when stagnation detected
Boost phase after stagnation After stagnation has been detected, switches negative selection to "delete worst", doubles "multiple evaluation" and starts another stagnation detection phase.
"Delete worst" results in extremely quick convergence and high selection pressure, similarly to "local search" optimization techniques.
Sound on improvement Emit sounds on improvements? (frequency depends on the magnitude of improvement)
Save improvements Saves (on each improvement) best found genotype or a complete experiment state to a file in scripts_output subdirectory.
Log fitness Sends [LOG] messages with genotypes count and minimal, average and best gene pool fitness, which can be used to produce graphs by external tools like gnuplot or Excel.
It also sends the [LOGTITLE] message on experiment initialization, which summarizes most important parameters of your experiment. It can be used as a graph title.
Print structured messages Print messages on evolution progress. Structured messages are json dictionaries – they are easier to parse by other programs than casual messages

Experiment definition: Evolution (endogenous fitness)    (short name: reproduction)

Evolution in a population with asexual reproduction.
Each creature with its energy level above threshold produces a mutant offspring. The offspring is born near its parent and receives half of parent's energy.
Food is created at a constant rate and placed randomly.

This experiment definition has 13 properties – see table below:

Experiment: Parameters
Initial genotype
Creation height Vertical position (above the surface) where new creatures are revived.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Mutations
Save genotypes of dead creatures
Print structured messages Print messages on evolution progress. Structured messages are json dictionaries – they are easier to parse by other programs than casual messages
Restart after extinction Restart automatically this experiment after the last creature has died?
Experiment: Parameters: Energy
Starting energy Initial energy for the first creature
Reproduction energy Creature produces an offspring when its energy level reaches this threshold
Idle metabolism Each stick consumes this amount of energy in one time step
Feeding rate How fast energy is created in the world
Food's energy
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier

Experiment definition: Demonstration of evolution    (short name: evolution_demo)

This experiment definition demonstrates the process of evolution.
Individuals are placed in a circle. A new individual is cloned, mutated, or crossed over.
Then it is evaluated in the middle of the circle, and – depending on its fitness – may replace a poorer, existing individual, or disappear.

This experiment definition has 35 properties – see table below:

Experiment: Parameters
Initial genotype The gene pool will be replaced with the supplied genotype when the experiment begins.
Use the empty initial genotype if you want to preserve the current gene pool.
Gene pool capacity
Simulated creatures
Initial placement For 'Central' placement, newborn creatures are placed at the world center, if possible.
Initial orientation Initial heading of newborn creatures
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Fitness: maximize
Number of steps each creature lives Number of simulation steps for the creature in the center of cratures circle.
Beware to performance sampling period when setting this value.
Number of idle visualization steps Number of idle visualization steps:
– after parent (parents) approaches (approach) the center and before new creature is born in the world
– after new creature is born in the world and before parent (parents) returns (return) to original place (places)
– after central creature disappearance
– after replacement of circle circumference creature by central creature
If this parameter is set to zero, than simulation speeds up.
If this parameter is set to big value, then some simulation details may be better observed.
It is possible to change this value during simulation, to obtain different goals.
Experiment: Parameters: Selection
Unchanged
Mutated
Crossed over
Minimal similarity Only genotypes with dissimilarity below this threshold will be crossed over.
Value of 0 means no crossover restrictions.
Selection rule Positive selection: how to choose genotypes for cloning/mutation/crossover
Delete genotypes Negative selection: which genotypes should be removed when we need room for new genotypes in the gene pool.
If multiple–criteria NSGA–II is set as positive selection, this setting is ignored and "worst rank and crowding distance" is used as negative selection.
Experiment: Parameters: Fitness
Constant Constant value added to total fitness
Life span Weight of life span in total fitness
Velocity Weight of horizontal velocity in total fitness
Body parts Weight of body size (number of parts) in total fitness
Body joints Weight of structure size (number of joints) in total fitness
Brain neurons Weight of brain size (number of neurons) in total fitness
Brain connections Weight of brain connections in total fitness
Distance Weight of distance in total fitness
Vertical position Weight of vertical position in total fitness
Vertical velocity Weight of vertical velocity in total fitness
Criteria normalization Normalize each criterion to 0..1 interval before weighting
Similarity speciation If enabled, fitness of each genotype will be reduced by its phenotypic similarity to all other genotypes in the gene pool
NSGA-II for multiple criteria If enabled, fitness will be replaced with Pareto ranks from NSGA–II (Non–dominated Sorting Genetic Algorithm) method.
Using tournament selection is recommended.
This setting also forces negative selection to be "worst rank and crowding distance" independently from the negative selection setting.
Experiment: Parameters: Energy
Starting energy Base starting energy level (for each stick)
Idle metabolism Each stick consumes this amount of energy in one time step
Automatic feeding Number of energy pieces in the world
Food's energy
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier
Aging time Idle metabolism doubles after this period (0 disables aging)

Experiment definition: Neuroanalysis    (short name: neuroanalysis)

This experiment evaluates all genotypes in the gene pool. During simulation, the output signal of each neuron is analyzed, and its average and standard deviation are computed. These data are then saved in the 'Info' field of the genotype.

This experiment definition has 3 properties – see table below:

Experiment: Parameters
Evaluation time
Restart from the first genotype
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom

Experiment definition: Learn where food is, explore and exploit    (short name: learn_food)

When an individual encounters food, it eats a bit of it and remembers its location. It also gets "refreshed" (i.e. gets a full amount of energy). Energy of each individual provides information on how recent (current) is the food location information that the individual stores. Information recency is visualized as brightness of individuals (light green ones have recently found food). When individuals collide, they learn from each other where food is (by averaging their knowledge). A newborn individual moves randomly and receives (duplicates) knowledge from the first knowledge–rich individual that it collides with. An individual that cannot find food for a long period of time dies, and a newborn one is created.

–=–

An interesting phenomenon to be observed in this experiment is how sharing information helps explore food location. Food items can be added either close to previous items, or randomly (in the latter case, the information about food location is not very useful for individuals). You can turn off automatic feeding and keep adding food manually to see how learning influences behavior of the population. See the "share knowledge" parameter (on/off).

With learning, individuals do not have to find food themselves. They can also get in contact with other individuals that know where the food was, and exchange information (the values learned are proportional to the recency of information). It is interesting to see how knowledge sharing (cooperation, dependence) versus no sharing (being self–sufficient, independence, risk) influences minimal, average and maximal life span in the neighboring and random food placement scenarios.

Notions of exploration of the environment and exploitation of knowledge about the environment are illustrated as well in this experiment.

–=–

The dynamics of this system depends on the following parameters:
– number of individuals and world size
– size and shape of their body (affects collisions and sharing of knowledge)
– food eating rate
– food placement (neighboring or random)
– learning strategy (e.g. weighted averaging of food coordinates)
– behavior (e.g. move within circles, small after finding food, then larger and larger)

–=–

Technical:
Food location (x,y) is stored in data–>food of each individual (as an XYZ object, z coordinate is ignored)

This experiment definition has 11 properties – see table below:

Experiment: Parameters
Number of creatures
Share knowledge Share knowledge about food position when two creatures collide?
Initial genotype
Creation height Vertical position (above the surface) where new creatures are revived.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Experiment: Parameters: Energy
Starting energy Initial energy for the first creature
Idle metabolism Each stick consumes this amount of energy in one time step
Feeding rate How fast energy is created in the world
Food's energy
Food placement Random placement contradicts 'learning food location' and therefore constitutes a test/benchmark for this experiment definition.
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier

Experiment definition: Boids    (short name: boids)

Boids, developed by Craig Reynolds in 1986, is an artificial life program, simulating the flocking behaviour of birds.

As with most artificial life simulations, Boids is an example of emergent behaviour; that is, the complexity of Boids arises from the interaction of individual agents (the boids, in this case) adhering to a set of simple rules. The rules applied in the simplest Boids world are as follows:

* separation: steer to avoid crowding local flockmates,
* alignment: steer towards the average heading of local flockmates,
* cohesion: steer to move toward the average position of local flockmates.

(http://en.wikipedia.org/wiki/Boids)

This experiment definition has 9 properties – see table below:

Experiment: Parameters
Number of boids
Rule 1 - Separation
Rule 2 - Alignment
Rule 3 - Cohesion
Rule 4 - Obstacle avoidance
Neighborhood range
Separation distance
Obstacle avoidance distance
World setting

Experiment definition: Evolutionary optimization (generational)    (short name: generational)

A simple "genetic algorithm" experiment:

– two gene pools (previous and current generation)
– one population for individuals
– generational replacement of genotypes
– selection: roulette, random, tournament
– fitness formula entered directly into the group's field

This experiment definition has 9 properties – see table below:

Experiment: Parameters
Initial genotype
Gene pool size
Evaluation time
Restart epoch Re–evaluate all genotypes in the current generation
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Experiment: Parameters: Selection
Unchanged
Mutated
Crossed over
Selection rule Positive selection: how to choose genotypes for cloning/mutation/crossover

Experiment definition: Walking in a maze    (short name: mazes)

This experiment definition can be used to evaluate (and evolve) creatures moving between two specified points in a maze. These points are indicated by start and target marks (in the second population).

Genotype's user1 field (which acts as a maximized fitness) contains
– energy left (when target found during lifespan)
– distance to the target (as a negative value) when a creature died away from the target.

Press "SHIFT" and click the right mouse button to manually set the start and finish points.

Use maze[1,2].sim settings for this experiment definition.

This experiment definition has 39 properties – see table below:

Experiment: Parameters
Initial genotype The gene pool will be replaced with the supplied genotype when the experiment begins.
Use the empty initial genotype if you want to preserve the current gene pool.
Gene pool capacity
Simulated creatures
Initial placement For 'Central' placement, newborn creatures are placed at the world center, if possible.
Initial orientation Initial heading of newborn creatures
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Start X positions A comma–separated list of X positions (based on the world map) of starting points
Start Y positions A comma–separated list of Y positions (based on the world map) of starting points
Start headings A comma–separated list of initial headings (in degrees)
Target X positions A comma–separated list of X positions (based on the world map) of target points
Target Y positions A comma–separated list of Y positions (based on the world map) of target points
Target radius The target is a circle with the radius defined here
Clear performance info Sets the number of instances of each genotype to zero (as if it has never been evaluated).
Genotype performance values stay intact, yet they are meaningless if a genotype has no instances.
Experiment: Parameters: Selection
Unchanged
Mutated
Crossed over
Minimal similarity Only genotypes with dissimilarity below this threshold will be crossed over.
Value of 0 means no crossover restrictions.
Selection rule Positive selection: how to choose genotypes for cloning/mutation/crossover
Delete genotypes Negative selection: which genotypes should be removed when we need room for new genotypes in the gene pool.
If multiple–criteria NSGA–II is set as positive selection, this setting is ignored and "worst rank and crowding distance" is used as negative selection.
Experiment: Parameters: Fitness
Constant Constant value added to total fitness
Life span Weight of life span in total fitness
Velocity Weight of horizontal velocity in total fitness
Body parts Weight of body size (number of parts) in total fitness
Body joints Weight of structure size (number of joints) in total fitness
Brain neurons Weight of brain size (number of neurons) in total fitness
Brain connections Weight of brain connections in total fitness
Distance Weight of distance in total fitness
Vertical position Weight of vertical position in total fitness
Vertical velocity Weight of vertical velocity in total fitness
Criteria normalization Normalize each criterion to 0..1 interval before weighting
Similarity speciation If enabled, fitness of each genotype will be reduced by its phenotypic similarity to all other genotypes in the gene pool
NSGA-II for multiple criteria If enabled, fitness will be replaced with Pareto ranks from NSGA–II (Non–dominated Sorting Genetic Algorithm) method.
Using tournament selection is recommended.
This setting also forces negative selection to be "worst rank and crowding distance" independently from the negative selection setting.
Experiment: Parameters: Energy
Starting energy Base starting energy level (for each stick)
Idle metabolism Each stick consumes this amount of energy in one time step
Automatic feeding Number of energy pieces in the world
Food's energy
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier
Aging time Idle metabolism doubles after this period (0 disables aging)

Experiment definition: Text writer    (short name: text_writer)

This experiment definition displays formatted (and flowing) text using creatures as letters and digits. It requires the "fonts.gen" file. Only big letters and digits can be used in the text.

Initialize the experiment to situate the text.

The text can be formatted using HTML–like tags:

<left>
<center>
<right>
<justify> – are used to start a paragraph

<hNUMBER> – sets the height (elevation) of the text (see also the 'Gravity' setting)

<hsNUMBER> – sets hotizontal spacing between letters

<vsNUMBER> – sets vertical spacing between lines

<f0>
<f1> – select the font (f0 is more regular)

This experiment definition has 3 properties – see table below:

Experiment: Parameters
Text The text you want to see
Collisions When turned on, nearby letters will collide and bounce
Speed Text movement: 1–slowest, 100–fastest

Experiment definition: Dance    (short name: dance)

A synchronous framsdance :–)

This experiment definition has 38 properties – see table below:

Experiment: Parameters
Initial genotype The gene pool will be replaced with the supplied genotype when the experiment begins.
Use the empty initial genotype if you want to preserve the current gene pool.
Gene pool capacity
Simulated creatures
Initial placement For 'Central' placement, newborn creatures are placed at the world center, if possible.
Initial orientation Initial heading of newborn creatures
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Land dance
Water dance
Number of dancers
Dance tempo
Change arrangement
Beat
Experiment: Parameters: Selection
Unchanged
Mutated
Crossed over
Minimal similarity Only genotypes with dissimilarity below this threshold will be crossed over.
Value of 0 means no crossover restrictions.
Selection rule Positive selection: how to choose genotypes for cloning/mutation/crossover
Delete genotypes Negative selection: which genotypes should be removed when we need room for new genotypes in the gene pool.
If multiple–criteria NSGA–II is set as positive selection, this setting is ignored and "worst rank and crowding distance" is used as negative selection.
Experiment: Parameters: Fitness
Constant Constant value added to total fitness
Life span Weight of life span in total fitness
Velocity Weight of horizontal velocity in total fitness
Body parts Weight of body size (number of parts) in total fitness
Body joints Weight of structure size (number of joints) in total fitness
Brain neurons Weight of brain size (number of neurons) in total fitness
Brain connections Weight of brain connections in total fitness
Distance Weight of distance in total fitness
Vertical position Weight of vertical position in total fitness
Vertical velocity Weight of vertical velocity in total fitness
Criteria normalization Normalize each criterion to 0..1 interval before weighting
Similarity speciation If enabled, fitness of each genotype will be reduced by its phenotypic similarity to all other genotypes in the gene pool
NSGA-II for multiple criteria If enabled, fitness will be replaced with Pareto ranks from NSGA–II (Non–dominated Sorting Genetic Algorithm) method.
Using tournament selection is recommended.
This setting also forces negative selection to be "worst rank and crowding distance" independently from the negative selection setting.
Experiment: Parameters: Energy
Starting energy Base starting energy level (for each stick)
Idle metabolism Each stick consumes this amount of energy in one time step
Automatic feeding Number of energy pieces in the world
Food's energy
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier
Aging time Idle metabolism doubles after this period (0 disables aging)

Experiment definition: Framsbots - Game    (short name: framsbots)

Framsbots is a simple game inspired by the classic Robots game.
The aim of this game is to run away from hostile creatures and make all of them hit each other.
Just click somewhere (left–click or double–right–click) to move your creature (the one that is in the middle of the world in the beggining). Your creature will go towards the point you clicked.
All the enemies will move towards you. Use this information to make them hit each other, so they will loose energy and die.
If you see an apple, try to get it. You will gain energy and you may even get a new life!
Use shift+left mouse drag to rotate world.

Read more about this game:
http://www.framsticks.com/wiki/FramsBots

This experiment definition has 16 properties – see table below:

Experiment: Parameters
Enemy creature type
Player creature type
Level Number of a level to play (–1 is random)
Show additional debug messages
Experiment: Parameters: Enemies
Number of enemy creatures
Starting energy of enemy creature Base starting energy level
Multiplier of energy taken by Enemy
Multiplier of energy taken by frozen Enemy
Multiplier of energy taken when Enemies collide
Multiplier of energy taken from alone Enemy
What to do when Enemies die
Experiment: Parameters: Player
Starting energy of player creature Base starting energy level
Experiment: Parameters: Food
Starting energy of food Base starting energy level
Amount of energy lost How much energy food looses each step
Food probablity Probability of food appearing after enemy killed
Experiment: Parameters: Azimuth
Maximum length of positions history vectors

Experiment definition: Multiple evaluation of loaded genotypes    (short name: standard-eval)

Use this experiment to evaluate all genotypes one by one.
Use the "Repeat count" parameter to set the required number of evaluations of each genotype.

First load your genotypes for evaluation, then define the evaluation plan, initialize the experiment, and finally run the simulation to perform all evaluations.

After evaluation, the selected key in the Genotype.data Dictionary ("evaluation" by default) contains a Dictionary of results. These results can also be saved to a file, as defined by the "evalsavefile" parameter. Note that for whatever reason (e.g. incorrect genotype), the dictionary you will get may be empty or partially empty and may not have the fields you expected, so handle such cases properly.

This experiment definition has 37 properties – see table below:

Experiment: Parameters
Initial genotype The gene pool will be replaced with the supplied genotype when the experiment begins.
Use the empty initial genotype if you want to preserve the current gene pool.
Gene pool capacity
Simulated creatures
Initial placement For 'Central' placement, newborn creatures are placed at the world center, if possible.
Initial orientation Initial heading of newborn creatures
Initial elevation Vertical position (above the surface) where newborn creatures are placed.
Negative values are only used in the water area:
0 = at the surface
–0.5 = half depth
–1 = just above the bottom
Clear performance info Sets the number of instances of each genotype to zero (as if it has never been evaluated).
Genotype performance values stay intact, yet they are meaningless if a genotype has no instances.
Experiment: Parameters: Selection
Unchanged
Mutated
Crossed over
Minimal similarity Only genotypes with dissimilarity below this threshold will be crossed over.
Value of 0 means no crossover restrictions.
Selection rule Positive selection: how to choose genotypes for cloning/mutation/crossover
Delete genotypes Negative selection: which genotypes should be removed when we need room for new genotypes in the gene pool.
If multiple–criteria NSGA–II is set as positive selection, this setting is ignored and "worst rank and crowding distance" is used as negative selection.
Experiment: Parameters: Fitness
Constant Constant value added to total fitness
Life span Weight of life span in total fitness
Velocity Weight of horizontal velocity in total fitness
Body parts Weight of body size (number of parts) in total fitness
Body joints Weight of structure size (number of joints) in total fitness
Brain neurons Weight of brain size (number of neurons) in total fitness
Brain connections Weight of brain connections in total fitness
Distance Weight of distance in total fitness
Vertical position Weight of vertical position in total fitness
Vertical velocity Weight of vertical velocity in total fitness
Criteria normalization Normalize each criterion to 0..1 interval before weighting
Similarity speciation If enabled, fitness of each genotype will be reduced by its phenotypic similarity to all other genotypes in the gene pool
NSGA-II for multiple criteria If enabled, fitness will be replaced with Pareto ranks from NSGA–II (Non–dominated Sorting Genetic Algorithm) method.
Using tournament selection is recommended.
This setting also forces negative selection to be "worst rank and crowding distance" independently from the negative selection setting.
Experiment: Parameters: Energy
Starting energy Base starting energy level (for each stick)
Idle metabolism Each stick consumes this amount of energy in one time step
Automatic feeding Number of energy pieces in the world
Food's energy
Food's genotype The default food model is a simple, single part object:
//0
m:Vstyle=food
p:
(this genotype is used when you leave this field blank).
You can specify another genotype to create "intelligent" or mobile food.
Ingestion multiplier
Aging time Idle metabolism doubles after this period (0 disables aging)
Experiment: Parameters: Evaluation
Multiple evaluation If more than zero:
– each genotype will be evaluated many times
– fitness will be averaged
– fitness standard deviation will be stored in the 'user1' field of a genotype
– there will be no "Unchanged" genotypes ("Unchanged" value is considered zero).
Evaluation plan Genotypes can be evaluated by multiple simulator parameter files (*.sim). Results produced by each parameter file are saved in the selected Genotype.data key as a Dictionary.

Each line in this field defines a single configuration consisting of the sequence of *.sim filenames followed by a colon and a list of associated performance criteria. Multiple *.sim filenames are separated by the plus sign '+' reminding that the settings imports are cumulative (items not specified in the next file keep their previous values). Empty filename means that the evaluation will be performed using current simulator parameters, without importing any file that contains simulator parameters. There are 3 kinds of performance criteria (after ':'):
– genotype fields, listed as plain names: velocity, vertpos, etc.
– data fields, listed as data–>field_name (created by script, see foodfinding–usercode.inc)
– special properties:
– 'fit' and 'fit_stdev' are the fitness average and standard deviation
– 'time' is the measured in seconds real time spent on evaluating a given genotype

Example (the first line of this sample plan contains an empty filename):

:velocity,fit
walking.sim:velocity,fit,fit_stdev,time
quicktest.sim:vertpos
roughterrain.sim:velocity,time
walking.sim+reduced_gravity.sim:velocity,data–>special_fitness
Save results to key in Genotype.data Genotype.data dictionary key where performance results from each of the multiple parameter runs will be saved
Save results to file name File name (in "data/scripts_output" directory) where performance results from each of the multiple parameter runs will be saved