Two basic symbols are:
- X – stick,
- () – branch.
The body structure is built like a tree: new sticks are joined with ends of the previous ones.
- X(X,X) means two sticks from one-stick root,
- X(X,X,X) means three sticks from one-stick root,
- X(X,X,) is also possible, as well as
Inside parenthesis, the full angle is divided into as many parts as there are commas+2, and each stick in such a 'junction' has as much freedom.
Modifiers (special characters) can be placed before X's and ('s. They affect the following X and, usually less and less, further following X's. Modifiers modify stick position and its features. Big and small letters can be used; big letters increase the given property while small ones decrease it.
Modifiers: Rr, Qq, Cc, Ll, Ww, Ff, Aa, Ss, Mm, Ii, Ee.
Modifiers affecting appearance (to see their influence, a specific visualization style is required that respects these modifiers): Dd (joint's red), Gg (joint's green), Bb (joint's blue), Hh (part size).
|Sticks' (joints') properties|
|R||rotation (by 45 degrees) – this modifier DOES NOT affect further sticks|
|W||weight (in water environment light sticks swim on the surface)|
|F||friction (sticks will slide on the ground or stick to it)|
|Biological properties (mutually exclusive)|
|A||assimilation = photosynthesis (a vertical stick can assimilate twice as much as a horizontal one)|
|S||stamina (increases chance of survival during fights, see also simulator parameters – destructive collisions)|
|M||muscle strength, a.k.a. muscle speed (strong muscles act with bigger force, gain higher speed, can resist bigger stress, and use more energy)|
|I||ingestion (ability to gain energy from food: energy balls or dead corpses)|
|E||energy (experimental). Creature's starting energy can be higher or lower when 'E' or 'e' is used. You should use it only when the "energetic efficiency mode" is enabled (see simulator parameters). Otherwise, disable 'eE' modifiers in genetic parameters!|
Some more samples of possible structures:
Neurons are placed in , after X's. The following information can be supplied inside square brackets:
- neuron type
- properties (parameters) of the neuron
- inputs of the neuron (if it can have inputs)
The syntax is:
Neuron inputs can be taken from different signal sources: other neurons' outputs or receptors. A neuron input can also have a constant value. If a neuron is a muscle, it can control its stick's bend or rotation.
|The alternative (old, deprecated) syntax lets you describe two neurons (a muscle and 'N') in one:
[ MuscleType PropertyAndInputList ]where MuscleType is either '@' (stick's rotation) or '|' (stick bend). This old syntax creates a 'N' neuron, as described in [...], and a muscle of MuscleType with input from that neuron. Thus the old syntax is equivalent to
[ N, PropertyAndInputList ] [ MuscleType, -1:1 ]
In the old genotypes, you could find names of 'N' properties noted as symbols !=/. They are deprecated, and equivalent to:
Enter these genotypes into Framsticks to see the corresponding neural networks.
Examples of the old, deprecated syntax... X[@-1:2,1:3] ...
means that a stick has one neuron 'in' it. It controls the stick's rotation (@), and the neuron has two inputs: one comes from -1 relative position in the genotype, the other from +1 rel. position. The first 'signal' weight is 2, the other is 3.
is a stick with one neuron controlling its bend, having two inputs: one constantly equal to 1 and the other connected to a gyroscope (placed on the stick) weighted 2.
One stick can have many neurons – X[.....][.....][.....]
X X[|0:1] X[@-1:1.2,1:2.3][G:1]
- neuron (1) affects stick's bend and is looped recursively
- neuron (2) affects stick's rotation, and receives signals from neurons (1) and (3)
- neuron (3) has one input: gyroscope (equilibrium sense of the last stick)