If you need help, read the hints (tooltips) which appear when you stop the mouse pointer over a name of a parameter in the program. Documentation below is provided in addition to those hints and discusses only some issues.
Experiment definition: choose experiment definition which controls behavior of the Framsticks system. It is a script file with the ".expdef" extension. Advanced users can create their own experiment definitions and thus exploit the full potential of the system. Press "Apply" after you select another experiment definition.
Initialize experiment: perform initialization actions for the selected experiment definition (for example, create appropriate gene pools and populations, clear them, insert the initial genotype, reset counters, etc.). It is recommended to perform initialization before running an experiment.
Experiment: Gene pools: <gene pool name>
An experiment definition may group genotypes into "gene pools". Each of them has separate settings. Settings affect all genotypes belonging to a given group (gene pool).
Fitness formula: advanced users can enter a custom fitness formula here. For the "standard" experiment definition, the formula is automatically created when you change weights of fitness criteria, and it reflects those settings.
Scale fitness?: if turned on, fitness is modified linearly according to the scaling rules.
Thus final fitness is computed, which is equal to:
Experiment: Populations: <population name>
An experiment definition may group simulated objects into "populations". Each of them has separate settings. Settings affect all individuals/objects which are simulated and belong to a given group (population).
Energy calculation: calculate energy balance during simulation?
Death: remove objects when their energy reaches 0 (creatures die)?
Neural net simulation: after a creature is put into the world, activate its neural network
Performance sampling period: especially important for estimating distance and velocity. Low values cause vibrations/little movements to be counted as velocity. High values let only smooth, straight moves to be counted.
Performance calculation: after a creature is put into the world, calculate its performance
NOTES. If you want to evolve quick creatures, calculating their
speed including the result of falling down and turning over would be
unfair. This is why "delay for freezing" may be introduced. Otherwise,
creatures could gain additional ("unfair") fitness bonus because of their
initial position (creatures fall onto the ground and earn speed without
using neurons).
Speed and movements are measured using center of gravity position.
Consider the following special (educational) situations. (1) When a creature waits for freezing,
other living and active creatures may push it and move it, so that it cannot freeze.
(2) When you set immediate simulation of neural network and after-freeze performance
calculation, a creature might start moving immediately and would never freeze. Thus
performance and energy wouldn't be calculated, and such a creature would live forever
as long as it kept moving. (3) In water environment, freezing may be difficult to achieve.
Muscle static work, Muscle dynamic work, Assimilation productivity: these settings influence energy balance. When non-zero values are used, creatures may spend more energy than Idle metabolism, and can gain energy by assimilation.
Save backup: if you set this value to a number N>0, the simulator writes an EXPT (experiment state) file every N events. An "event" is triggered by an experiment definition. With the "standard" experiment definition, an event occurs after a creature dies and its genotype's performance is updated. Names for successive autosave files are generated automatically by adding numbers to the last filename you used when saving the EXPT file. For example, when you save an experiment state under the filename speed1.expt, and set this parameter to 250, you will get the files speed1_001.expt, speed1_002.expt, and so on. Each file (log) will be saved after evaluating 250 creatures.
Overwrite: if not set, the simulator will change filenames if needed so that it will not overwrite old files.
Show file comments: comments from loaded files will be displayed in the messages window.
Choose level of details for messages in the Messages window. Decide when genotypes/creatures are checked.
Type: For 'Blocks' and 'Height field' you have to provide a "map" of heights. 'Height field' world has smooth slopes.
Size: Side length of the (square) world.
Map: description of world heights, it can be:
m 3 3 575 777 575additional characters "-" and "|" are slope surfaces between blocks ("-" is WE direction, "|" is NS direction). They are valid only between digits and only for 'Blocks' world type.
m 5 5 22-66 222-6 2|333 -6-33 4|498
Water level: the main surface is at 0.0 height and you set the water level here.
Boundaries: what happens when a creature crosses the boundary of the world?
Remember history...: the history of genetic operations (which genotype is mutated from which, which genotype was crossed over with which, etc.) is remembered so that you can draw a tree of evolution. Such history can consume large amounts of memory when it contains many (for example, tens of thousands) genotypes.
Genetics: Neurons to add
Checked neurons are those which may be introduced into genotypes during mutations. Note: these settings work for f0 and f1 genotype formats, and not (yet) for f4. f4 uses "NGTS*|@" neuron set.
Genetics: f0
Relative mutation probabilities for f0 genotype language.
Genetics: f1
Settings for f1 genotype language.
Excluded modifiers let you disable using some genotypic symbols during mutations: you can prevent some features from being present in the evolved genotypes. Excluding 'E' and 'e' is needed when energetic efficiency mode is disabled (so that the creatures will not change their starting energy). And, for example, if you don't want your creatures to use different sticks' weights to improve swimming ability in water, exclude 'W' and 'w'.
Proportional segments crossover: when turned off, random substrings of two parent genotypes are exchanged to form two offspring genotypes. When turned on, similar (proportional) segments are exchanged. This can be important if you perform crossover only within species (among similar genotypes – individuals).
Genetics: f1: Morphology contains detailed mutation probabilities concerning physical structure parts in genotypes. Genetics: f1: Neuron net contains detailed mutation probabilities concerning neuron net parts in genotypes.
Genetics: f4
Detailed mutation probabilities concerning f4 genotype language. When mutation occurs, it can be either Add node, Delete node, or "Change node". Probabilities of the first two events are set with the corresponding parameters. If those two events are not randomly selected, "Change node" event occurs.For "Add node" event, detailed mutation probabilities can be adjusted. The meaning of all the probabilities is summarized below. Users can adjust X, Y, A, B, C, and D. E and Z are calculated.
The number of codes which are randomly mutated is also random, varying from 0% to 25% of the genotype genes.
Genetics: Similarity
Determines how the dissimilarity of two genotypes is evaluated. This is important during crossing over, which can depend on the dissimilarity of the two parent genotypes (and can make crossing over of differing genotypes impossible). Similarity can also be involved in fitness reduction for speciation and creating niches. Enter weights for genotype/phenotype criteria concerning 'body' and 'brain'. Refer to scientific papers (a draft from Theory in Biosciences 120, or a LNCS paper) for the idea of dissimilarity computation method (since publication time, the procedure has been updated in minor details). Dissimilarity is also used for clustering of individuals using UPGMA method.Genetics: Conversions
Specific converters can be enabled and disabled here. They convert various formats of genotypes. Unless you are an experienced user, leave all of them enabled.Neurons: Simulation
Random initialization: if set to zero, neuron states are equal to zero when each individual is created from its genotype and put into the simulator. If you enter a positivie value, neural states are random, and thus NN control has to be more robust (and does not depend on specific initial state values).
Neurons: Active
These settings decide which neurons are simulated in creatures. If a neuron is inactive, its state is initialized when a creature is 'born', and then the state does not change.