sdleiF | tnemirepxE | ||
int running0 .. 1 (false/true) | Is the simulation running?Useful for synchronizing the user interface state. | ||
int time | Number of stepsSimulator.time will be removed because of its misleading name, please use Simulator.stepNumber instead. | ||
int last_genotype_num0 .. -1 default=0 | Largest previously used Genotype.numSee: Genotype.num | ||
int last_creature_num0 .. -1 default=0 | Largest previously used Creature.numSee: Creature.num | ||
int stepNumber | Number of simulation steps | ||
int simspeed RO | Simulation speedsteps/second | ||
string expdef | Experiment definitionChoose the experiment framework (in Windows GUI, confirm by pressing 'Apply') Stop the simulation before selecting another experiment definition. It is a good practice to initialize the experiment before running the simulation. | ||
string expdef_title RO | Title | ||
multiline string expdef_info RO | Description | ||
untyped lastCheckpoint RO | Last checkpointMost recently reported by the experiment definition script. | ||
SlaveSimulators slaves RO | Slave simulator objects | ||
int cpus RO | Number of detected CPUs ("cores") on this machine | ||
World world RO | World object | ||
Populations populations RO | Populations object | ||
GenePools genepools RO | Gene pools object | ||
ExpProperties expproperties RO | ExpProperties | ||
ExpState expstate RO | ExpState | ||
GenMan genman RO | GenMan object | ||
GenoConverters genoconverters RO | Genotype converters object | ||
untyped userdata | User field | ||
int identity RO | Identity-1 for master simulator, 0...count-1 for slaves | ||
string version_string RO | Version stringCurrent application version as a string (human-friendly). | ||
int version_int RO | Version integerCurrent application version as an integer. | ||
seliF | |||
int autosaveperiod0 .. 100000 | Save backupSave simulation state once every n-th event (events are defined by the script. For 'standard.expdef' it is after each death). Save EXPT file first to initialize name for autosave files. Slave simulators (in multithreaded experiments) ignore this setting and never create autosave files. | ||
int overwrite0 .. 1 (false/true) default=0 | Overwrite files?Lets you choose what to do when a file is created with the same name as an already existing file: overwite the existing file or create its backup? | ||
int filecomm0 .. 1 (false/true) default=1 | Show file commentsControls displaying comments encountered in opened files. | ||
gnitpircs decnavdA | |||
multiline string usercode | Script overrideYou can override any function from the original experiment definition script. Use the same function names and provide alternative implementations. Example: function onBorn(cr) { Simulator.print("A creature is born: "+cr.name); super_onBorn(cr); //calls the original implementation } | ||
int vmdebug0 .. 1 (false/true) | VM debug | ||
int vm_step_limit0 .. 1000000000 default=0 | VM step limitAbort any script (expdef, fitness formula, user script) when it performs too many operations - which can take more or less time depending on your machine performance. This can protect against infinite loops or unbearably long runs of untested scripts that would otherwise force you to kill the whole application. Use Simulator.vm_..._warning if you only need information about what script takes too much time without aborting it. | ||
int vm_step_warning0 .. 1000000000 default=0 | VM step warningDisplay a warning when any script (expdef, fitness formula, user script) performs too many operations - which can take more or less time depending on your machine performance. Use Simulator.vm_..._limit to prevent the application from becoming unresponsive by aborting misbehaving scripts. | ||
float vm_time_limit0 .. 1e+09 default=0.0 | VM time limitAbort any script (expdef, fitness formula, user script) when it takes too much time - measured in seconds. The actual amount of work depends on your machine performance. This can protect against infinite loops or unbearably long runs of untested scripts that would otherwise force you to kill the whole application. Use Simulator.vm_..._warning if you only need information about what script takes too much time without aborting it. | ||
float vm_time_warning0 .. 1e+09 default=0.0 | VM time warningDisplay a warning when any script (expdef, fitness formula, user script) takes too much time - measured in seconds. The actual amount of work depends on your machine performance. Use Simulator.vm_..._limit to prevent the application from becoming unresponsive by aborting misbehaving scripts. | ||
gnildnah rorrE | |||
int stop_on0 .. 3 | Error level to stop running simulationIf the simulation is running and a message is emitted with at least the selected severity, the simulation will be stopped. | ||
int createrr0 .. 2 | Object creation errors | ||
int groupchk0 .. 1 (false/true) default=1 | Warn on adding invalid genotypesWarnings will be printed when invalid genotypes are added to a gene pool. | ||
int creatwarnfail0 .. 1 (false/true) | Don't simulate genotypes with warningsCreatures grown with warnings will not be simulated. This helps prevent the propagation of faulty genes, because genotypes that cause warnings when interpreted will not reproduce. | ||
sretemaraP :tnemirepxE | |||
int _property_changed_index RO | Last changed property index | ||
string _property_changed_id RO | Last changed property id | ||
dlroW | |||
int wrldtyp0 .. 2 | Type | ||
float wrldsiz10 .. 10000 default=20.0 | SizeSide length of the world | ||
multiline string wrldmap | MapDescription of the world (only applies to world types: "Blocks" or "Height field"). To generate a random landscape, use: r[scaling] <sizex> <sizey> [seed] To generate a custom landscape, provide height values: m[scaling] <sizex> <sizey> digits... or M[scaling] <sizex> <sizey> numbers... "digits..." is a sequence of integer values 0,1,2,..,9. You may also use '-' and '|' characters for smooth slides between blocks. "numbers..." is a sequence of floating point values, so the "M" option provides more freedom. [scaling] is an optional linear scaling expression in the form of *FACTOR+OFFSET or *FACTOR-OFFSET, for example "r*0.1-2 5 5" creates a 5x5 random map with a 10% amplitude, shifted down by 2. See also the WorldMap object. | ||
float wrldwat-20 .. 200 default=-1.0 | Water level | ||
int wrldbnd0 .. 2 | BoundariesTeleporting a creature that is outside of the world area is attempted every 'performance sampling period' steps. Teleport succeeds only when the target location in the world is empty (there is no collision). | ||
float wrldg0 .. 10 default=1.0 | GravityYou can adjust gravity for your experiments. The "official" setting used to evaluate and compare creatures is 1. | ||
int simtype0 .. 1 | Simulation engineMechaStick is a fast and simple primary Framsticks simulation engine. ODE is Open Dynamics Engine by Russel Smith et al. NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures). | ||
float nnspeed0 .. 1000 default=1.0 | NN speedNumber of neural network simulation steps in each physics simulation step | ||
int rndcollisions0 .. 1 (false/true) default=1 | Random collision orderWhen enabled, custom collision handlers are invoked in random order. This can help remove unfair bias in some experiments - for example where the same collision order in each simulation step would cause some creatures colliding with food to consume energy while other colliding creatures would starve. | ||
WorldSignals signals RO | Signal sources | ||
sretemaraP EDO :dlroW | |||
int odeshape0 .. 1 | Stick shape for ball-and-stick models | ||
float odestep0.001 .. 1 default=0.05 | Simulation step | ||
float odemusclemin0 .. 100 default=0.0 | Muscle min poweri.e. "mmmmm" in f1 | ||
float odemusclemax0 .. 100 default=10.0 | Muscle max poweri.e. "MMMMM" if f1 | ||
float odemusclespeed0 .. 10 default=1.0 | Muscle speed limitMuscle state cannot change faster than the supplied value | ||
float odeairdrag0 .. 0.5 default=0.01 | DragA drag force ("air drag") proportional to the velocity of mass centers of moving parts (ODE's "linear damping") | ||
float oderotdrag0 .. 0.5 default=0.01 | Rotation dragDrag momentum acting on rotating bodies (ODE's "angular damping") | ||
float odewaterdrag0.001 .. 1 default=0.5 | Water drag | ||
float odewaterbuoy0 .. 2 default=1.0 | Water buoyancy | ||
int odeseed0 .. 2 | RandomnessAffects collisions. - 'Truly random' is closest to the standard ODE operation. Use Math.seed to influence randomness in ODE collisions. - 'Deterministic' automatically calculates random seed in each step based on the current simulation (world) state, which makes the simulation repeatable but more random than 'Fixed'. - 'Fixed' is completely deterministic and does not depend on Math.seed - the same seed value is set before each step. This might negatively affect ODE accuracy. | ||
int odesepsticks0 .. 1 (false/true) default=0 | Separate sticksEach stick gets a separate ODE body (like in MechaStick) | ||
float odeworlderp0 .. 1 default=0.2 | ERPWorld ERP (error reduction parameter) | ||
float odeworldcfm0 .. 1 default=1e-5 | CFMWorld CFM (constraint force mixing) | ||
snoisilloC serutaerC :sretemaraP EDO :dlroW | |||
float odecolmumin0 .. 10 default=0.1 | Min. frictionMu coefficient for Parts with minimal friction (i.e. "fffff" in f1) | ||
float odecolmumax0 .. 10 default=5.0 | Max. frictionMu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1) | ||
float odecolbounce0 .. 1 default=0.1 | Bounce | ||
float odecolbouncevel0 .. 1 default=0.01 | Bounce velocity | ||
float odecolsoftcfm0 .. 1 default=0.0 | Soft CFM | ||
float odecolsofterp0 .. 1 default=0.0 | Soft ERP | ||
snoisilloC dnuorG :sretemaraP EDO :dlroW | |||
float odecol2mumin0 .. 10 default=0.1 | Min. frictionMu coefficient for Parts with minimal friction (i.e. "fffff" in f1) | ||
float odecol2mumax0 .. 10 default=1.0 | Max. frictionMu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1) | ||
float odecol2bounce0 .. 1 default=0.1 | Bounce | ||
float odecol2bouncevel0 .. 1 default=0.01 | Bounce velocity | ||
float odecol2softcfm0 .. 1 default=0.0 | Soft CFM | ||
float odecol2softerp0 .. 1 default=0.0 | Soft ERP | ||
sciteneG | |||
int gen_hist0 .. 1 (false/true) default=0 | Remember history of genetic operationsRequired for phylogenetic analysis | ||
int gen_hilite0 .. 1 (false/true) default=1 | Use syntax highlightingUse colors for genes? (slows down viewing/editing of huge genotypes) | ||
int gen_extmutinfo0 .. 2 | Extended mutation infoIf active, information about employed mutation method will be stored in the 'info' field of each mutated genotype. | ||
srotarepo evitcA :sciteneG | |||
int genoper_f0 RO0 .. 0 | Operators for f0 | ||
int genoper_f0s RO0 .. 0 | Operators for f0s | ||
int genoper_f1 RO0 .. 0 | Operators for f1 | ||
int genoper_f4 RO0 .. 0 | Operators for f4 | ||
int genoper_f8 RO0 .. 0 | Operators for f8 | ||
int genoper_f9 RO0 .. 0 | Operators for f9 | ||
int genoper_fF RO0 .. 0 | Operators for fF | ||
int genoper_fn RO0 .. 0 | Operators for fn | ||
int genoper_fB RO0 .. 0 | Operators for fB | ||
int genoper_fH RO0 .. 0 | Operators for fH | ||
int genoper_fL RO0 .. 0 | Operators for fL | ||
int genoper_fS RO0 .. 0 | Operators for fS | ||
dda ot snorueN :sciteneG | |||
int neuadd_N0 .. 1 (false/true) | Neuron (N)Standard neuron Characteristics: supports any number of inputs provides output value does not require location in body Properties: Inertia (in) float 0..1 (default 0.8) Force (fo) float 0..999 (default 0.04) Sigmoid (si) float -99999..99999 (default 2) State (s) float -1..1 (default 0) | ||
int neuadd_Nu0 .. 1 (false/true) | Unipolar neuron [EXPERIMENTAL!] (Nu)Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1. Having 0 as one of the saturation states should help in "gate circuits", where input signal is passed through or blocked depending on the other singal. Characteristics: supports any number of inputs provides output value does not require location in body Properties: Inertia (in) float 0..1 (default 0.8) Force (fo) float 0..999 (default 0.04) Sigmoid (si) float -99999..99999 (default 2) State (s) float -1..1 (default 0) | ||
int neuadd_G0 .. 1 (false/true) | Gyroscope (G)Tilt sensor. Signal is proportional to sin(angle) = most sensitive in horizontal orientation. 0=the stick is horizontal +1/-1=the stick is vertical Characteristics: does not use inputs provides output value should be located on a Joint | ||
int neuadd_Gpart0 .. 1 (false/true) | Part Gyroscope (Gpart)Tilt sensor. Signal is directly proportional to the tilt angle. 0=the part X axis is horizontal +1/-1=the axis is vertical Characteristics: does not use inputs provides output value should be located on a Part Properties: rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0) | ||
int neuadd_T0 .. 1 (false/true) | Touch (T)Touch and proximity sensor (Tcontact and Tproximity combined) -1=no contact 0=just touching >0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0) | ||
int neuadd_Tcontact0 .. 1 (false/true) | Touch contact (Tcontact)Touch sensor. -1=no contact 0=the Part is touching the obstacle >0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part | ||
int neuadd_Tproximity0 .. 1 (false/true) | Touch proximity (Tproximity)Proximity sensor detecting obstacles along the X axis. -1=distance is "r" or more 0=zero distance Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0) | ||
int neuadd_S0 .. 1 (false/true) | Smell (S)Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces). Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2) Characteristics: does not use inputs provides output value should be located on a Part | ||
int neuadd_Constant0 .. 1 (false/true) | Constant (*)Constant value Characteristics: does not use inputs provides output value does not require location in body | ||
int neuadd_Bend_muscle0 .. 1 (false/true) | Bend muscle (|)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0..1 (default 0.25) bending range (r) float 0..1 (default 1) | ||
int neuadd_Rotation_muscle0 .. 1 (false/true) | Rotation muscle (@)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0..1 (default 1) | ||
int neuadd_M0 .. 1 (false/true) | Muscle for solids (M)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0..1 (default 1) axis (a) integer 0..1 (default 0) | ||
int neuadd_D0 .. 1 (false/true) | Differentiate (D)Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights Characteristics: supports any number of inputs provides output value does not require location in body | ||
int neuadd_Fuzzy0 .. 1 (false/true) | Fuzzy system [EXPERIMENTAL!] (Fuzzy)Refer to publications to learn more about this neuron. Characteristics: supports any number of inputs provides output value does not require location in body Properties: number of fuzzy sets (ns) integer number of rules (nr) integer fuzzy sets (fs) string (default "") fuzzy rules (fr) string (default "") | ||
int neuadd_VEye0 .. 1 (false/true) | Vector Eye [EXPERIMENTAL!] (VEye)Refer to publications to learn more about this neuron. Characteristics: uses single input provides output value should be located on a Part Properties: target.x (tx) float target.y (ty) float target.z (tz) float target shape (ts) string (default "") perspective (p) float 0.1..10 (default 1) scale (s) float 0.1..100 (default 1) show hidden lines (h) integer 0..1 (default 0) output lines count (each line needs four channels) (o) integer 0..99 (default 0) debug (d) integer 0..1 (default 0) | ||
int neuadd_VMotor0 .. 1 (false/true) | Visual-Motor Cortex [EXPERIMENTAL!] (VMotor)Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron. Characteristics: supports any number of inputs provides output value does not require location in body Properties: number of basic features (noIF) integer number of degrees of freedom (noDim) integer parameters (params) string | ||
int neuadd_Sti0 .. 1 (false/true) | Sticky [EXPERIMENTAL!] (Sti)Characteristics: uses single input does not provide output value should be located on a Part | ||
int neuadd_LMu0 .. 1 (false/true) | Linear muscle [EXPERIMENTAL!] (LMu)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0.01..1 (default 1) | ||
int neuadd_Water0 .. 1 (false/true) | Water detector (Water)Output signal: 0=on or above water surface 1=under water (deeper than 1) 0..1=in the transient area just below water surface Characteristics: does not use inputs provides output value should be located on a Part | ||
int neuadd_Energy0 .. 1 (false/true) | Energy level (Energy)The current energy level divided by the initial energy level. Usually falls from initial 1.0 down to 0.0 and then the creature dies. It can rise above 1.0 if enough food is ingested Characteristics: does not use inputs provides output value does not require location in body | ||
int neuadd_Ch0 .. 1 (false/true) | Channelize (Ch)Combines all input signals into a single multichannel output; Note: ChSel and ChMux are the only neurons which support multiple channels. Other neurons discard everything except the first channel. Characteristics: supports any number of inputs provides output value does not require location in body | ||
int neuadd_ChMux0 .. 1 (false/true) | Channel multiplexer (ChMux)Outputs the selected channel from the second (multichannel) input. The first input is used as the selector value (-1=select first channel, .., 1=last channel) Characteristics: uses 2 inputs provides output value does not require location in body | ||
int neuadd_ChSel0 .. 1 (false/true) | Channel selector (ChSel)Outputs a single channel (selected by the "ch" parameter) from multichannel input Characteristics: uses single input provides output value does not require location in body Properties: channel (ch) integer | ||
int neuadd_Rnd0 .. 1 (false/true) | Random noise (Rnd)Generates random noise (subsequent random values in the range of -1..+1) Characteristics: does not use inputs provides output value does not require location in body | ||
int neuadd_Sin0 .. 1 (false/true) | Sinus generator (Sin)Output frequency = f0+input Characteristics: uses single input provides output value does not require location in body Properties: base frequency (f0) float -1..1 (default 0.0628319) time (t) float 0..6.28319 (default 0) | ||
0f :sciteneG | |||
int f0_nodel_tag0 .. 1 (false/true) default=1 | Respect the 'delete inhibit' tagYou can tag elements using their 'i' field and the i="mi=d" tag. Mutations will not delete such elements. The i="mi=dm" combination is allowed. | ||
int f0_nomod_tag0 .. 1 (false/true) default=1 | Respect the 'modify inhibit' tagYou can tag elements using their 'i' field and the i="mi=m" tag. Mutations will not modify properties of such elements. The i="mi=md" combination is allowed. | ||
straP :0f :sciteneG | |||
float f0_p_new0 .. 100 default=4.0 | New part | ||
float f0_p_del0 .. 100 default=4.0 | Delete part | ||
float f0_p_swp0 .. 100 default=1.0 | Swap parts | ||
float f0_p_pos0 .. 100 default=4.0 | Position | ||
float f0_p_den0 .. 100 default=0.0 | DensityDensity only has an influence under water | ||
float f0_p_frc0 .. 100 default=1.0 | Friction | ||
float f0_p_ing0 .. 100 default=0.0 | Ingestion | ||
float f0_p_asm0 .. 100 default=0.0 | AssimilationThe interpretation and influence of this property must be implemented by the experiment definition | ||
stnioJ :0f :sciteneG | |||
float f0_j_new0 .. 100 default=4.0 | New joint | ||
float f0_j_del0 .. 100 default=1.0 | Delete joint | ||
float f0_j_stm0 .. 100 default=0.0 | StaminaThe interpretation and influence of this property must be implemented by the experiment definition | ||
float f0_j_stf0 .. 100 default=0.0 | Stiffness | ||
float f0_j_rsf0 .. 100 default=0.0 | Rotational stiffness | ||
float f0_j_vred0 .. 100 default=0.0 | Visual: red | ||
float f0_j_vgrn0 .. 100 default=0.0 | Visual: green | ||
float f0_j_vblu0 .. 100 default=0.0 | Visual: blue | ||
snorueN :0f :sciteneG | |||
float f0_n_new0 .. 100 default=3.0 | New neuron | ||
float f0_n_del0 .. 100 default=3.0 | Delete neuron | ||
float f0_n_prp0 .. 100 default=1.0 | Change properties | ||
snoitcennoC :0f :sciteneG | |||
float f0_c_new0 .. 100 default=2.0 | New connection | ||
float f0_c_del0 .. 100 default=2.0 | Delete connection | ||
float f0_c_wei0 .. 100 default=1.0 | Change weight | ||
s0f :sciteneG | |||
int f0s_nodel_tag0 .. 1 (false/true) default=1 | Respect the 'delete inhibit' tagYou can tag elements using their 'i' field and the i="mi=d" tag. Mutations will not delete such elements. The i="mi=dm" combination is allowed. | ||
int f0s_nomod_tag0 .. 1 (false/true) default=1 | Respect the 'modify inhibit' tagYou can tag elements using their 'i' field and the i="mi=m" tag. Mutations will not modify properties of such elements. The i="mi=md" combination is allowed. | ||
straP :s0f :sciteneG | |||
int f0s_circle_section0 .. 1 (false/true) default=1 | Ensure circle sectionEnsure that ellipsoids and cylinders have circle cross-section | ||
int f0s_use_elli0 .. 1 (false/true) default=1 | Use ellipsoids in mutationsUse ellipsoids in mutations | ||
int f0s_use_cub0 .. 1 (false/true) default=1 | Use cuboids in mutationsUse cuboids in mutations | ||
int f0s_use_cyl0 .. 1 (false/true) default=1 | Use cylinders in mutationsUse cylinders in mutations | ||
float f0s_p_new0 .. 100 default=5.0 | New part | ||
float f0s_p_del0 .. 100 default=5.0 | Delete part | ||
float f0s_p_swp0 .. 100 default=10.0 | Swap parts | ||
float f0s_p_pos0 .. 100 default=10.0 | Position | ||
float f0s_p_rot0 .. 100 default=10.0 | Rotation | ||
float f0s_p_scale0 .. 100 default=10.0 | Size (precisely, "scale") | ||
float f0s_p_frc0 .. 100 default=10.0 | Friction | ||
float f0s_p_ing0 .. 100 default=10.0 | Ingestion | ||
float f0s_p_asm0 .. 100 default=0.0 | AssimilationThe interpretation and influence of this property must be implemented by the experiment definition | ||
stnioJ :s0f :sciteneG | |||
float f0s_j_new0 .. 100 default=5.0 | New joint | ||
float f0s_j_del0 .. 100 default=5.0 | Delete joint | ||
float f0s_j_stm0 .. 100 default=0.0 | StaminaThe interpretation and influence of this property must be implemented by the experiment definition | ||
float f0s_j_vred0 .. 100 default=0.0 | Visual: red | ||
float f0s_j_vgrn0 .. 100 default=0.0 | Visual: green | ||
float f0s_j_vblu0 .. 100 default=0.0 | Visual: blue | ||
snorueN :s0f :sciteneG | |||
float f0s_n_new0 .. 100 default=5.0 | New neuron | ||
float f0s_n_del0 .. 100 default=5.0 | Delete neuron | ||
float f0s_n_prp0 .. 100 default=10.0 | Change properties | ||
snoitcennoC :s0f :sciteneG | |||
float f0s_c_new0 .. 100 default=5.0 | New connection | ||
float f0s_c_del0 .. 100 default=5.0 | Delete connection | ||
float f0s_c_wei0 .. 100 default=10.0 | Change weight | ||
1f :sciteneG | |||
int f1_xo_propor0 .. 1 (false/true) default=1 | Proportional crossoverCross over (exchange) corresponding segments of the two parent genotypes? f1 uses a two-point crossing over. If this option is turned on, cut points will be selected proportionally to neural genes in both parents, and a similar number of characters will be exchanged if possible. Thus, if both parents have the same number of neurons, then this will be preserved in their children. | ||
ygolohproM :1f :sciteneG | |||
float f1_smX0 .. 100 default=4.0 | Add/remove a stick X | ||
float f1_smJunct0 .. 100 default=1.0 | Add/remove a branch ( ) | ||
float f1_smComma0 .. 100 default=1.0 | Add/remove a comma , | ||
float f1_smModif0 .. 100 default=4.0 | Add/remove a modifierModifiers: LlRrCcQqFfMmEeWwSsAaIiDdGgBb | ||
string f1_mut_exmod | Excluded modifiersModifiers that will not be added nor deleted during mutation (all: LlRrCcQqFfMmEeWwSsAaIiDdGgBb) | ||
ten norueN :1f :sciteneG | |||
float f1_nmNeu0 .. 100 default=4.0 | Add/remove a neuronAdds a (connected) neuron or removes a neuron | ||
float f1_nmConn0 .. 100 default=2.0 | Add/remove neural connection | ||
float f1_nmProp0 .. 100 default=1.0 | Add/remove neuron property setting | ||
float f1_nmWei0 .. 100 default=1.0 | Change connection weight | ||
float f1_nmVal0 .. 100 default=1.0 | Change property value | ||
4f :sciteneG | |||
float f4_mut_add0 .. 100 default=4.0 | Add nodeMutation: probability of adding a node | ||
float f4_mut_add_div0 .. 100 default=4.0 | - add divisionAdd node mutation: probability of adding a division | ||
float f4_mut_add_conn0 .. 100 default=1.0 | - add connectionAdd node mutation: probability of adding a neural connection | ||
float f4_mut_add_neupar0 .. 100 default=1.0 | - add neuron propertyAdd node mutation: probability of adding a neuron property/modifier | ||
float f4_mut_add_rep0 .. 100 default=1.0 | - add repetition '#'Add node mutation: probability of adding the '#' repetition gene | ||
float f4_mut_add_simp0 .. 100 default=4.0 | - add simple nodeAdd node mutation: probability of adding a random, simple gene | ||
float f4_mut_del0 .. 100 default=1.0 | Delete nodeMutation: probability of deleting a node | ||
float f4_mut_mod0 .. 100 default=1.0 | Modify nodeMutation: probability of changing a node | ||
float f4_mut_modneu_conn0 .. 100 default=3.0 | - neuron input: modify sourceNeuron input mutation: probability of changing its source neuron | ||
float f4_mut_modneu_weight0 .. 100 default=3.0 | - neuron input: modify weightNeuron input mutation: probability of changing its weight | ||
int f4_mut_max_rep2 .. 20 default=6 | Maximum number for '#' repetitionsMaximum allowed number of repetitions for the '#' repetition gene | ||
string f4_mut_exmod | Excluded modifiersModifiers that will not be added nor deleted during mutation (all: LlRrCcQqFfMmEeWwSsAaIiDdGgBb) | ||
8f :sciteneG | |||
float f8_mut_chg_begin_arg0 .. 100 default=7.0 | Change beginning argumentmutation: probability of changing a beginning argument | ||
float f8_mut_chg_arg0 .. 100 default=7.0 | Change argumentmutation: probability of changing a production's argument | ||
float f8_mut_del_comm0 .. 100 default=8.0 | Delete commandmutation: probability of deleting a command | ||
float f8_mut_insert_comm0 .. 100 default=8.0 | Insert commandsmutation: probability of inserting commands | ||
float f8_mut_enc0 .. 100 default=8.0 | Encapsulate commandsmutation: probability of encapsulating commands | ||
float f8_mut_chg_cond_sign0 .. 100 default=7.0 | Change condition signmutation: probability of changing a condition sign | ||
float f8_mut_add_param0 .. 100 default=8.0 | Add parametermutation: probability of adding a parameter to the production | ||
float f8_mut_add_cond0 .. 100 default=8.0 | Add conditionmutation: probability of adding a condition to the subproduction | ||
float f8_mut_add_subprod0 .. 100 default=8.0 | Add subproductionmutation: probability of adding a subproduction | ||
float f8_mut_chg_iter_number0 .. 100 default=7.0 | Change iteration numbermutation: probability of changing a number of iterations | ||
float f8_mut_del_param0 .. 100 default=8.0 | Delete parametermutation: probability of deleting a parameter | ||
float f8_mut_del_cond0 .. 100 default=8.0 | Delete conditionmutation: probability of deleting a condition | ||
float f8_mut_add_loop0 .. 100 default=0.0 | Add loopmutation: probability of adding a loop | ||
float f8_mut_del_loop0 .. 100 default=0.0 | Delete loopmutation: probability of deleting a loop | ||
float f8_mut_del_prod0 .. 100 default=8.0 | Delete productionmutation: probability of deleting a production | ||
9f :sciteneG | |||
float f9_mut0 .. 1 default=0.0 | Mutation probabilityHow many genes should be mutated during a single mutation (1=all genes, 0.1=ten percent, 0=one gene) | ||
Ff :sciteneG | |||
float fF_xover0.5 .. 1 default=0.5 | Inherited in linear mix crossover0.5 => children are averaged parents. 0.8 => children are only 20% different from parents. 1.0 => each child is identical to one parent (no crossover). | ||
nf :sciteneG | |||
float fn_xover0.5 .. 1 default=0.9 | Fraction inherited in linear mix crossover0.5 => children are averaged parents. 0.8 => children are only 20% different from parents. 1.0 => each child is identical to one parent (no crossover). | ||
int fn_xover_random0 .. 1 (false/true) default=1 | Random fraction inherited in crossoverIf active, the amount of linear mix is random in each crossover operation, so the "Fraction inherited in linear mix crossover" parameter is ignored. | ||
string fn_mut_bound_low | Lower bounds for mutationA vector of lower bounds (one real value for each variable) | ||
string fn_mut_bound_high | Higher bounds for mutationA vector of higher bounds (one real value for each variable) | ||
string fn_mut_stddev | Standard deviations for mutationA vector of standard deviations (one real value for each variable) | ||
int fn_mut_single_var0 .. 1 (false/true) default=0 | Mutate only a single variableIf active, only a single randomly selected variable will be mutated in each mutation operation. Otherwise all variables will be mutated. | ||
noitatuM :Bf :sciteneG | |||
float fB_mut_substitute0 .. 100 default=1.0 | SubstitutionRelative probability of changing a single random character (or a neuron) in the genotype | ||
float fB_mut_insert0 .. 100 default=3.0 | InsertionRelative probability of inserting a random character in a random place of the genotype | ||
float fB_mut_insert_neuron0 .. 100 default=3.0 | Insertion of a neuronRelative probability of inserting a neuron in a random place of genotype | ||
float fB_mut_delete0 .. 100 default=4.0 | DeletionRelative probability of deleting a random character (or a neuron) in the genotype | ||
float fB_mut_duplicate0 .. 100 default=0.0 | DuplicationRelative probability of copying a single *gene* of the genotype and appending it to the beginning of this genotype | ||
float fB_mut_translocate0 .. 100 default=4.0 | TranslocationRelative probability of swapping two substrings in the genotype | ||
revossorC :Bf :sciteneG | |||
float fB_cross_gene_transfer0 .. 100 default=0.0 | Horizontal gene transferRelative probability of crossing over by copying a single random gene from each parent to the beginning of the other parent | ||
float fB_cross_crossover0 .. 100 default=100.0 | Crossing overRelative probability of crossing over by a random distribution of genes from both parents to both children | ||
Hf :sciteneG | |||
float fH_mut_addition0 .. 100 default=4.0 | Add elementProbability of adding a new element | ||
float fH_mut_add_joint0 .. 100 default=4.0 | - add jointProbability of adding a new stick handle | ||
float fH_mut_add_neuron0 .. 100 default=3.0 | - add neuronProbability of adding a new neuron handle | ||
float fH_mut_add_connection0 .. 100 default=1.0 | - add neural connectionProbability of adding a new neuron connection handle | ||
float fH_mut_deletion0 .. 100 default=4.0 | Delete elementProbability of removing an element | ||
float fH_mut_handle0 .. 100 default=1.0 | Modify vectors of handlesProbability of changing values in vectors of a handle | ||
float fH_mut_property0 .. 100 default=4.0 | Modify properties of handlesProbability of changing properties of handles | ||
Lf :sciteneG | |||
int fL_maxdefinedwords0 .. 100 default=10 | Maximum number of defined wordsMaximum number of words that can be defined in the L-System | ||
selur dna moixa gnitatum fo seitilibaborP :Lf :sciteneG | |||
float fL_axm_mut_prob0 .. 100 default=4.0 | Axiom mutationProbability of performing mutation operations on axiom | ||
float fL_rul_mut_prob0 .. 100 default=1.0 | Rule's successor mutationProbability of performing mutation operations on the successor of a random rule | ||
sepyt noitatum fo seitilibaborP :Lf :sciteneG | |||
float fL_mut_addition0 .. 100 default=4.0 | Addition of a word to a sequenceProbability of adding a random existing word to the axiom or to one of successors | ||
float fL_mut_add_stick0 .. 100 default=1.0 | - addition of a stickProbability of adding a stick | ||
float fL_mut_add_neuro0 .. 100 default=4.0 | - addition of a neuronProbability of adding a neuron | ||
float fL_mut_add_conn0 .. 100 default=4.0 | - addition of a neuron connectionProbability of adding a neuron connection | ||
float fL_mut_add_rot0 .. 100 default=2.0 | - addition of rotation wordsProbability of adding one of rotation words | ||
float fL_mut_add_branch0 .. 100 default=4.0 | - addition of a branched stickProbability of adding a branch with a rotation and a stick | ||
float fL_mut_add_other0 .. 100 default=1.0 | - addition of defined wordsProbability of adding another word defined in the genotype | ||
float fL_mut_worddefaddition0 .. 100 default=1.0 | Addition of a new word definitionProbability of adding a new word definition to the genotype | ||
float fL_mut_ruleaddition0 .. 100 default=1.0 | Addition of a new rule definitionProbability of adding a new rule definition for an existing word | ||
float fL_mut_rulecond0 .. 100 default=1.0 | Modification of a rule conditionProbability of modifying a random rule condition | ||
float fL_mut_changeword0 .. 100 default=4.0 | Change a random wordProbability of changing a word name or a formula of a random word from an axiom or one of successors | ||
float fL_mut_changeword_formula0 .. 100 default=4.0 | - change of a formulaProbability of changing a formula in a word | ||
float fL_mut_changeword_name0 .. 100 default=2.0 | - change of a nameProbability of changing a name in a word | ||
float fL_mut_changeiter0 .. 100 default=1.0 | Change the number of iterationsProbability of changing the number of iterations of the L-System | ||
float fL_mut_changeiter_step0 .. 1 default=1.0 | Step of the iteration changeThe minimal step that should be used for changing iterations in the L-System | ||
float fL_mut_deletion0 .. 100 default=4.0 | Deletion of a random wordProbability of deleting a random word from an axiom or a random successor (also deletes the rule if there is only one word in the successor) | ||
Sf :sciteneG | |||
float fS_mut_add_part0 .. 100 default=10.0 | Add partmutation: probability of adding a part | ||
float fS_mut_rem_part0 .. 100 default=10.0 | Remove partmutation: probability of deleting a part | ||
float fS_mut_mod_part0 .. 100 default=10.0 | Modify partmutation: probability of changing the part type | ||
float fS_mut_change_joint0 .. 100 default=10.0 | Change jointmutation: probability of changing a joint | ||
float fS_mut_add_param0 .. 100 default=10.0 | Add parammutation: probability of adding a parameter | ||
float fS_mut_rem_param0 .. 100 default=10.0 | Remove parammutation: probability of removing a parameter | ||
float fS_mut_mod_param0 .. 100 default=10.0 | Modify parammutation: probability of modifying a parameter | ||
float fS_mut_mod_mod0 .. 100 default=10.0 | Modify modifiermutation: probability of modifying a modifier | ||
float fS_mut_add_neuro0 .. 100 default=10.0 | Add neuronmutation: probability of adding a neuron | ||
float fS_mut_rem_neuro0 .. 100 default=10.0 | Remove neuronmutation: probability of removing a neuron | ||
float fS_mut_mod_neuro_conn0 .. 100 default=10.0 | Modify neuron connectionmutation: probability of changing a neuron connection | ||
float fS_mut_add_neuro_conn0 .. 100 default=10.0 | Add neuron connectionmutation: probability of adding a neuron connection | ||
float fS_mut_rem_neuro_conn0 .. 100 default=10.0 | Remove neuron connectionmutation: probability of removing a neuron connection | ||
float fS_mut_mod_neuro_params0 .. 100 default=10.0 | Modify neuron paramsmutation: probability of changing a neuron param | ||
int fS_circle_section0 .. 1 (false/true) default=1 | Ensure circle sectionEnsure that ellipsoids and cylinders have circle cross-section | ||
int fS_use_elli0 .. 1 (false/true) default=1 | Use ellipsoids in mutationsUse ellipsoids in mutations | ||
int fS_use_cub0 .. 1 (false/true) default=1 | Use cuboids in mutationsUse cuboids in mutations | ||
int fS_use_cyl0 .. 1 (false/true) default=1 | Use cylinders in mutationsUse cylinders in mutations | ||
int fS_mut_add_part_strong0 .. 1 (false/true) default=1 | Strong add part mutationAdd part mutation will produce more parametrized parts | ||
sretrevnoC :sciteneG | |||
int genoconv_f1_f00 .. 1 (false/true) | f1 --> f0 : Recursive encoding | ||
int genoconv_f4_f00 .. 1 (false/true) | f4 --> f0 : Developmental encoding | ||
int genoconv_f8_f10 .. 1 (false/true) | f8 --> f1 : (Old) generative encoding | ||
int genoconv_f9_f00 .. 1 (false/true) | f9 --> f0 : Turtle3D-ortho encoding | ||
int genoconv_fF_f0s0 .. 1 (false/true) | fF --> f0s : 10-parameter Foraminifera encoding | ||
int genoconv_fn_f00 .. 1 (false/true) | fn --> f0 : Vector of real values, no phenotype | ||
int genoconv_fB_fH0 .. 1 (false/true) | fB --> fH : Biological encoding | ||
int genoconv_fH_f00 .. 1 (false/true) | fH --> f0 : Similarity encoding | ||
int genoconv_fL_f00 .. 1 (false/true) | fL --> f0 : L-System encoding | ||
int genoconv_fS_f0s0 .. 1 (false/true) | fS --> f0s : Solids tree-structure encoding | ||
0f ot 1f :sretrevnoC :sciteneG | |||
int conv_f1_f0_modcompat0 .. 1 | Modifier compatibilityThe modern implementation makes the influence of modifiers more consistent and uniform, and the extreme property values are easier to reach with a lower number of characters, which improves the topology for evolutionary search. Previous implementation can be enabled for compatibility, for example when you want to test old genotypes. | ||
int conv_f1_f0_cq_influence0 .. 1 | 'C' and 'Q' modifier influence'C' and 'Q' modifier semantics was changed in June 2023. Previously they did not affect the stick immediately following the current sequence of modifiers. In the modern implementation, all modifiers consistently start their influence at the very next stick that is being created in the current branch. Example: In the old interpretation of 'XcXX', only the last stick is rotated, because 'c' starts its influence at the stick that occurs after the current stick. In the modern implementation, the same effect is achieved with 'XXcX', where 'c' immediately bends the first 'X' that appears after it. Previous implementation can be enabled for compatibility, for example when you want to test old genotypes. | ||
int conv_f1_f0_branch_muscle_range0 .. 2 | Bending muscle default rangeDetermines how the bending muscle default turning range is limited when the muscle is controlling a stick growing from a branching point that has 'NumberOfBranches' sticks separated by commas. The motivation of the limited range is to keep the neighboring sticks from intersecting when they are bent by muscles. This constraint may degrade the performance (e.g. velocity) of creatures, but this default value can be overridden by providing a specific range property value for the '|' muscle neuron in the genotype. - Full/NumberOfBranches - a compromise between the two other settings. - Full/(NumberOfBranches+1) - because the originating stick also counts as a branch. This setting guarantees that in the worst case, when at least two neighboring branches have sticks controlled by bending muscles and their controlling signals are at extreme values, the sticks can touch and overlap, but will not intersect. This setting is in most cases too strict because (1) all branches are very rarely controlled by muscles, (2) there are often 'empty' branches - multiple commas with no sticks in-between, and (3) the share of the originating stick is effectively wasted because this stick itself has no muscle at the branching point so it will not bend; the muscle bending range is symmetrical and the default range is equal for all muscles in a branching, but the sticks equipped with muscles in a branching are rarely evenly spaced. - Full: Always 1 (the complete angle) - because we do not have to care about the physical plausibility and avoid intersecting sticks, and other genetic representations do not impose such constraints, so this full angle setting can be useful as the default bending range when comparing the performance of various genetic encodings. | ||
1f ot 8f :sretrevnoC :sciteneG | |||
int conv_f8_f1_maxlen10 .. 10000 default=500 | Maximal genotype lengthMaximal length of the resulting f1 genotype, in characters. If the f8 L-system produces longer f1 genotype, it will be considered invalid. | ||
snorueN :erutaerC | |||
float randinit0 .. 10 default=0.01 | Random initializationAllowed range for initializing all neuron states with uniform distribution random numbers and zero mean. Set to 0 for deterministic initialization. | ||
float nnoise0 .. 1 default=0.0 | NoiseGaussian neural noise: a random value is added to each neural output in each simulation step. Set standard deviation here to add random noise, or 0 for deterministic simulation. | ||
float touchrange0 .. 100 default=1.0 | T receptor range | ||
noitcefrepmI :erutaerC | |||
float bnoise_struct0 .. 10 default=0.0 | Body disturbanceWhen >0, body constructs of creatures (position of Parts) will be randomly disturbed when they are created. | ||
float bnoise_vel0 .. 10 default=0.0 | Initial movementRandom velocities will be applied to all body Parts (in MechaStick) or rigid segments (in ODE) of newly created creatures. | ||
delbanE :snorueN :erutaerC | |||
int ncl_N0 .. 1 (false/true) | Neuron (N)Standard neuron Characteristics: supports any number of inputs provides output value does not require location in body Properties: Inertia (in) float 0..1 (default 0.8) Force (fo) float 0..999 (default 0.04) Sigmoid (si) float -99999..99999 (default 2) State (s) float -1..1 (default 0) | ||
int ncl_Nu0 .. 1 (false/true) | Unipolar neuron [EXPERIMENTAL!] (Nu)Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1. Having 0 as one of the saturation states should help in "gate circuits", where input signal is passed through or blocked depending on the other singal. Characteristics: supports any number of inputs provides output value does not require location in body Properties: Inertia (in) float 0..1 (default 0.8) Force (fo) float 0..999 (default 0.04) Sigmoid (si) float -99999..99999 (default 2) State (s) float -1..1 (default 0) | ||
int ncl_G0 .. 1 (false/true) | Gyroscope (G)Tilt sensor. Signal is proportional to sin(angle) = most sensitive in horizontal orientation. 0=the stick is horizontal +1/-1=the stick is vertical Characteristics: does not use inputs provides output value should be located on a Joint | ||
int ncl_Gpart0 .. 1 (false/true) | Part Gyroscope (Gpart)Tilt sensor. Signal is directly proportional to the tilt angle. 0=the part X axis is horizontal +1/-1=the axis is vertical Characteristics: does not use inputs provides output value should be located on a Part Properties: rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0) | ||
int ncl_T0 .. 1 (false/true) | Touch (T)Touch and proximity sensor (Tcontact and Tproximity combined) -1=no contact 0=just touching >0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0) | ||
int ncl_Tcontact0 .. 1 (false/true) | Touch contact (Tcontact)Touch sensor. -1=no contact 0=the Part is touching the obstacle >0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part | ||
int ncl_Tproximity0 .. 1 (false/true) | Touch proximity (Tproximity)Proximity sensor detecting obstacles along the X axis. -1=distance is "r" or more 0=zero distance Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0) | ||
int ncl_S0 .. 1 (false/true) | Smell (S)Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces). Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2) Characteristics: does not use inputs provides output value should be located on a Part | ||
int ncl_Constant0 .. 1 (false/true) | Constant (*)Constant value Characteristics: does not use inputs provides output value does not require location in body | ||
int ncl_Bend_muscle0 .. 1 (false/true) | Bend muscle (|)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0..1 (default 0.25) bending range (r) float 0..1 (default 1) | ||
int ncl_Rotation_muscle0 .. 1 (false/true) | Rotation muscle (@)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0..1 (default 1) | ||
int ncl_M0 .. 1 (false/true) | Muscle for solids (M)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0..1 (default 1) axis (a) integer 0..1 (default 0) | ||
int ncl_D0 .. 1 (false/true) | Differentiate (D)Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights Characteristics: supports any number of inputs provides output value does not require location in body | ||
int ncl_Fuzzy0 .. 1 (false/true) | Fuzzy system [EXPERIMENTAL!] (Fuzzy)Refer to publications to learn more about this neuron. Characteristics: supports any number of inputs provides output value does not require location in body Properties: number of fuzzy sets (ns) integer number of rules (nr) integer fuzzy sets (fs) string (default "") fuzzy rules (fr) string (default "") | ||
int ncl_VEye0 .. 1 (false/true) | Vector Eye [EXPERIMENTAL!] (VEye)Refer to publications to learn more about this neuron. Characteristics: uses single input provides output value should be located on a Part Properties: target.x (tx) float target.y (ty) float target.z (tz) float target shape (ts) string (default "") perspective (p) float 0.1..10 (default 1) scale (s) float 0.1..100 (default 1) show hidden lines (h) integer 0..1 (default 0) output lines count (each line needs four channels) (o) integer 0..99 (default 0) debug (d) integer 0..1 (default 0) | ||
int ncl_VMotor0 .. 1 (false/true) | Visual-Motor Cortex [EXPERIMENTAL!] (VMotor)Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron. Characteristics: supports any number of inputs provides output value does not require location in body Properties: number of basic features (noIF) integer number of degrees of freedom (noDim) integer parameters (params) string | ||
int ncl_Sti0 .. 1 (false/true) | Sticky [EXPERIMENTAL!] (Sti)Characteristics: uses single input does not provide output value should be located on a Part | ||
int ncl_LMu0 .. 1 (false/true) | Linear muscle [EXPERIMENTAL!] (LMu)Characteristics: uses single input does not provide output value should be located on a Joint Properties: power (p) float 0.01..1 (default 1) | ||
int ncl_Water0 .. 1 (false/true) | Water detector (Water)Output signal: 0=on or above water surface 1=under water (deeper than 1) 0..1=in the transient area just below water surface Characteristics: does not use inputs provides output value should be located on a Part | ||
int ncl_Energy0 .. 1 (false/true) | Energy level (Energy)The current energy level divided by the initial energy level. Usually falls from initial 1.0 down to 0.0 and then the creature dies. It can rise above 1.0 if enough food is ingested Characteristics: does not use inputs provides output value does not require location in body | ||
int ncl_Ch0 .. 1 (false/true) | Channelize (Ch)Combines all input signals into a single multichannel output; Note: ChSel and ChMux are the only neurons which support multiple channels. Other neurons discard everything except the first channel. Characteristics: supports any number of inputs provides output value does not require location in body | ||
int ncl_ChMux0 .. 1 (false/true) | Channel multiplexer (ChMux)Outputs the selected channel from the second (multichannel) input. The first input is used as the selector value (-1=select first channel, .., 1=last channel) Characteristics: uses 2 inputs provides output value does not require location in body | ||
int ncl_ChSel0 .. 1 (false/true) | Channel selector (ChSel)Outputs a single channel (selected by the "ch" parameter) from multichannel input Characteristics: uses single input provides output value does not require location in body Properties: channel (ch) integer | ||
int ncl_Rnd0 .. 1 (false/true) | Random noise (Rnd)Generates random noise (subsequent random values in the range of -1..+1) Characteristics: does not use inputs provides output value does not require location in body | ||
int ncl_Sin0 .. 1 (false/true) | Sinus generator (Sin)Output frequency = f0+input Characteristics: uses single input provides output value does not require location in body Properties: base frequency (f0) float -1..1 (default 0.0628319) time (t) float 0..6.28319 (default 0) | ||
ytiralimiS :erutaerC | |||
int simil_type0 .. 2 | Type of similarity measure | ||
ydeerg hparG :ytiralimiS :erutaerC | |||
float simil_greedy_parts0 .. 100 default=0.0 | Weight of parts countDiffering number of parts is also handled by the 'part degree' similarity component. | ||
float simil_greedy_partdeg0 .. 100 default=1.0 | Weight of parts' degree | ||
float simil_greedy_neuro0 .. 100 default=0.1 | Weight of neurons count | ||
float simil_greedy_partgeom0 .. 100 default=0.0 | Weight of parts' geometric distances | ||
int simil_greedy_fixedZaxis0 .. 1 (false/true) default=0 | Fix 'z' (vertical) axis? | ||
int simil_greedy_weightedMDS0 .. 1 (false/true) default=0 | Should weighted MDS be used?If activated, weighted MDS with vertex (i.e., Part) degrees as weights is used for 3D alignment of body structure. | ||
lamitpo hparG :ytiralimiS :erutaerC | |||
float simil_parts0 .. 100 default=0.0 | Weight of parts countDiffering number of parts is also handled by the 'part degree' similarity component. | ||
float simil_partdeg0 .. 100 default=1.0 | Weight of parts' degree | ||
float simil_neuro0 .. 100 default=0.1 | Weight of neurons count | ||
float simil_partgeom0 .. 100 default=0.0 | Weight of parts' geometric distances | ||
int simil_fixedZaxis0 .. 1 (false/true) default=0 | Fix 'z' (vertical) axis? | ||
int simil_weightedMDS0 .. 1 (false/true) default=0 | Should weighted MDS be used?If activated, weighted MDS with vertex (i.e., Part) degrees as weights is used for 3D alignment of body structure. | ||
noitubirtsid rotpircseD :ytiralimiS :erutaerC | |||
float simil_density1 .. 100 default=10.0 | Density of surface sampling | ||
int simil_bin_num1 .. 1000 default=128 | Number of bins | ||
int simil_samples_num1 .. 1048576 default=10000 | Number of samples | ||
yrtemmyS :erutaerC | |||
int symPosSteps2 .. 50 default=10 | Position samplingDefault number of samples per stick length | ||
int symAlphaSteps2 .. 50 default=20 | Angular sampling (1)Default number of samples per full angle (#1) | ||
int symBetaSteps2 .. 50 default=20 | Angular sampling (2)Default number of samples per full angle (#2) | ||
float symResultA RO | resulting symmetry plane, coeff. A (set by calculateSymmetry) | ||
float symResultB RO | resulting symmetry plane, coeff. B (set by calculateSymmetry) | ||
float symResultC RO | resulting symmetry plane, coeff. C (set by calculateSymmetry) | ||
float symResultD RO | resulting symmetry plane, coeff. D (set by calculateSymmetry) | ||
yrtemoeG :erutaerC | |||
float geom_density0.01 .. 100 default=3.0 | DensityThe number of samples (per unit length in one dimension) that affects the precision of estimation of geometrical properties. | ||
stniartsnoc ydoB :erutaerC | |||
float minjoint0 .. 100 default=0.0 | Minimal joint length | ||
float maxjoint0 .. 100 default=2.0 | Maximal joint length | ||
snoitcnuF | |||
function _propertyAdd(string id, string type_description, string name, int flags, string help_text)doesn't return a value | Add property (id,type,name,help)Using most _property functions is restricted for internal purposes. Use "property:" or "state:" definitions in your script files to change object properties. | ||
function _propertyAddGroup(string name)doesn't return a value | Add property groupUsing most _property functions is restricted for internal purposes. Use "property:" or "state:" definitions in your script files to change object properties. | ||
function _propertyChange(string id, string type_description, string name, int flags, string help_text)doesn't return a value | Change propertyUsing most _property functions is restricted for internal purposes. Use "property:" or "state:" definitions in your script files to change object properties. | ||
function _propertyClear()doesn't return a value | Remove all propertiesUsing most _property functions is restricted for internal purposes. Use "property:" or "state:" definitions in your script files to change object properties. | ||
function _propertyExists(string name)returns int | Check for property existence | ||
function _propertyRemove(int index)doesn't return a value | Remove propertyUsing most _property functions is restricted for internal purposes. Use "property:" or "state:" definitions in your script files to change object properties. | ||
function _propertyRemoveGroup(int index)doesn't return a value | Remove property groupUsing most _property functions is restricted for internal purposes. Use "property:" or "state:" definitions in your script files to change object properties. | ||
function area()returns float | area | ||
function beep()doesn't return a value | BeepPlays the default system sound. | ||
function calculateSymmetry(Model model)returns float | Calculate symmetryReturns bilateral symmetry (0.0 .. 1.0) for a given Model using default precision parameters (symPosSteps,symAlphaSteps,symBetaSteps). Returns the symmetry plane, too (sets symResultA,B,C,D). Note: may take a long time for large creatures. | ||
function calculateSymmetry2(Model model, int posSteps, int alphaSteps, int betaSteps)returns float | Calculate symmetryReturns bilateral symmetry (0.0 .. 1.0) for a given Model using specified precision parameters. Returns the symmetry plane, too (sets symResultA,B,C,D). Note: may take a long time for large creatures. | ||
function calculateSymmetryForPlane(Model model, float A, float B, float C, float D)returns float | Calculate symmetryReturns bilateral symmetry (0.0 .. 1.0) for a given Model and given a specific plane defined by coefficients A, B, C, D. | ||
function checkpoint()doesn't return a value | Notify that the experiment state was significantly updated.This function was previously called "autosave". | ||
function checkpointData(untyped any_data)doesn't return a value | Notify that the experiment state was significantly updated + pass data.In the distributed/paralellized scenario the data passed as argument can be received by the controlling entity (onSlaveCheckpoint in multithreaded master experiment, /simulator/expevent in distributed network simulator). | ||
function crossOver(Geno, Geno)returns Geno | Crossoverreturns crossed over genotype | ||
function eval(string script_statement)doesn't return a value | Evaluate a statementThe argument must be a complete statement, e.g. "return 2+2;" is valid, while "2+2" is not. The Error object is returned for invalid statements. Example: var statement="function fun(a) {return a*a;} return fun(Math.pi);"; var result=Simulator.eval(statement); if (typeof result=="Error") Simulator.print("Error:"+result.message); else Simulator.print("Result:"+result); | ||
function evaluateDistance(Geno, Geno)returns float | Evaluate model dissimilarityCalculates dissimilarity between two models created from Geno objects. | ||
function export(string filename, int options, int genepool, int population)returns untyped | ExportSave some data to file. Arguments: - filename: can be null, which makes export() return saved data as a text string instead of writing it to the file. - options: composed of the following bit values: 1 - experiment (works just like save() and all other option bits are ignored) 2 - genotypes 4 - simulator parameters 8 - simulator stats 16 - genepool settings 32 - population settings 64 - do autosave 256 - creatures - selected genepool, -1 means all genepools - selected population, -1 means all populations | ||
function forModel(Model)returns ModelGeometry | The returned ModelGeometry object can be used to calculate geometric properties (volume, area, sizes) of the associated model. The density is copied from the current global ModelGeometry.geom_density on object creation. | ||
function getSimplest(string format)returns Geno | Get simplest genotypereturns the simplest genotype for a given encoding (format). "0" means f0, "4" means f4, etc. | ||
function import(string filename, int options)doesn't return a value | importImport some data from file. Contents can also be imported from string by using specifically formed filename: "string://string_contents_to_be_imported". The second optional argument selects what section(s) will be imported: 1 - experiment (works just like load(), all other bits are ignored, and can reset the simulator state!) 2 - genotypes 4 - simulator parameters 8 - genepool settings 16 - population settings 32 - new groups will be created for imported genepools and populations 64 - allow switching to a different expdef while importing parameters (4) 256 - creatures The standard behavior (without the second argument) is to import genotypes, parameters, and genepool and population settings (2+4+8+16). Note that "64" is not included by default, because the expdef change resets all simulator parameters, which contradicts the usual meaning of "import" in Framsticks ("add data", as opposed to "load" meaning "replace data"). Moreover, using the "64" option in scripts can be dangerous, especially all expdef and show scripts should always declare the proper expdef name in their header rather than change the expdef directly. Without the "64" option, it is always safe to "import" any file in a script regardless of the current simulator state. | ||
function import(string filename)doesn't return a value | ImportEquivalent to import(filename,2+4+8+16) - imports genotypes, parameters, genepool and population settings. | ||
function init()doesn't return a value | Initialize experimentPrepares the experiment for running - usually performs initialization procedures such as resetting counters, states, gene pools, etc. These actions are defined in the onInit() function of this experiment definition. | ||
function load(string filename)doesn't return a value | loadLoad experiment file (calls onExpLoad() in the current experiment definition). This function is intended to replace the simulator state; the old state is cleared by automatically calling "resetToDefaults()". Use "import" if you don't want to lose the old simulator state. Contents can also be loaded from string by using specifically formed filename: "string://string_contents_to_be_loaded". | ||
function loadexpdef()doesn't return a value | Reload experiment definitionResets the simulator to its default state, resets all parameters to default values and then loads this experiment definition. | ||
function message(string text, int level)doesn't return a value | Print messageThe second argument can be: -1 = debugging message 0 = information 1 = warning 2 = error 3 = critical error | ||
function mutate(Geno)returns Geno | Mutatereturns mutated Geno object from supplied Geno | ||
function new()returns Simulator | create new Simulator | ||
function operReport()doesn't return a value | Operators reportShow available genetic operators | ||
function print(string text)doesn't return a value | Print information messageOne argument: message to be printed. | ||
function rayIntersection(float position_x, float position_y, float position_z, float direction_x, float direction_y, float direction_z, float max_distance)returns float | ray intersection | ||
function refreshGUI()doesn't return a value | Refresh GUINotify that all populations and gene pools content changed. | ||
function reloadNeurons()doesn't return a value | Reload neuron definitions | ||
function resetToDefaults()doesn't return a value | Reset the simulator stateClears groups and loads default values for simulator parameters, then calls onExpDefLoad() of the current experiment definition. | ||
function save(string filename)returns untyped | SaveSave experiment file (calls onExpSave() in the current experiment definition). Providing null filename makes save() return saved data as a text string instead of writing it to the file. | ||
function sizesAndAxes()returns Vector | sizesAndAxesThe returned vector contains XYZ (sizes) and Orient (axes) objects. | ||
function sleep(int milliseconds)doesn't return a value | SleepSuspends the execution for a specified interval. | ||
function sound(int freqency_in_Hz, int length_in_milliseconds)doesn't return a value | SoundGenerates a simple tone on the speaker | ||
function start()doesn't return a value | Start simulationCalled by the user interface. | ||
function step()doesn't return a value | Do a single simulation step | ||
function stop()doesn't return a value | Stop simulationThe expdef script calls this function to stop simulation. | ||
function toHTML(string)returns string | HTMLize a genotypereturns genotype expressed as colored HTML | ||
function toHTMLshort(string)returns string | HTMLize a genotype, shorten if neededreturns genotype (abbreviated if needed) in colored HTML format | ||
function toLaTeX(string)returns string | LaTeXize a genotypereturns genotype in colored LaTeX format | ||
function validate(Geno)returns Geno | Validatereturns validated (if possible) Geno object from supplied Geno | ||
function volume()returns float | volume | ||
function voxels()returns Vector | voxelsReturns a Vector of Pt3D objects from a regular 3D grid (sampled according to ModelGeometry.geom_density) that are inside of the Model body (Parts and Joints). | ||
function wrldchg()doesn't return a value | Trigger world update |
Global context |