Genotype encodings 

The Framsticks simulator supports various genotype formats. A "format" is a language you can use to describe creatures. The properties of this language are extremely important from the viewpoint of evolution. If you are a Framsticks beginner, read about the f1 format first. For some people, the f0 format is even easier.

f0 A low-level format which allows for building any creatures (least restrictive)
f1 An easy-to-use recursive language
f4 Describes the way of growing an organism (developmental encoding). Learn about f1 before reading f4
fH (earlier f2) Describes how basic parts of an organism are joined
fB (earlier f3) Encodes fH in "biological" genes with codons etc.
f5 A variant of f4
f6 Describes chemical/metabolic rules of growing
f7 Accepts any string of symbols, a "messy" genome
fL (earlier f8) A parametric Lindenmayer system (L-system) - rules of body and brain development
f9 "3D turtle" (left, right, top, down, forth, back)
fF Foraminifera 10-parameter encoding
fS A simple demo encoding for solid shapes
fG Gene regulatory network
f0Fuzzy Used for the evolution of fuzzy control systems embedded in f0 genotypes (see paper 1, paper 2 and movie)
fn A special encoding for numerical optimization, just a vector of real numbers. See oper_fn.cpp for details.
... other encodings are easy to add


The "Comparison of Different Genotype Encodings..." research paper contains more formal and detailed description of f0, f1 and f4, their properties, and mutation and crossover operators.

If you enter a genotype, you have to indicate its format. If it is, for example, f4, you should start the genotype with /*4*/ prefix. For multiline genotypes (like f0), you can also use another style for such a prefix: //0. If there is no format prefix, f1 is assumed.

Although some genotype formats may look complicated, the direct ones are easy to learn. Just open the "new genotype" window and experiment with genotypes. You can enter anything valid and get an immediate preview! Select genes to see which creature parts are created by these genes. Click on creature parts to see which genes created them. This mechanism is explained in Genetic mappings in artificial genomes.

You can find sources of selected encodings in the SDK.