Ignore:
Timestamp:
01/26/15 06:22:27 (10 years ago)
Author:
sz
Message:
  • Updated to the most recent Framsticks release
  • <element> ordering reflects the origina Framsticksl objects (previously sorted by name)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • java/FramclipsePlugin/src/main/resources/framscript.xml

    r266 r309  
    44<framscript>
    55        <type name="expdef" context="expdef file">
     6                <element name="name" type="string"/>
     7                <element name="info" type="string"/>
    68                <element name="code" type="string"/>
    7                 <element name="info" type="string"/>
    8                 <element name="name" type="string"/>
    99                <element name="neurons" type="string"/>
    1010        </type>
    1111        <type name="prop" context="properties file">
    12                 <element name="flags" type="integer"/>
    13                 <element name="group" type="string"/>
    14                 <element name="help" type="string"/>
    1512                <element name="id" type="string"/>
    1613                <element name="name" type="string"/>
    1714                <element name="type" type="string"/>
     15                <element name="flags" type="integer"/>
     16                <element name="help" type="string"/>
     17                <element name="group" type="string"/>
    1818        </type>
    1919        <type name="stat" context="state file">
    20                 <element name="flags" type="integer"/>
    21                 <element name="group" type="string"/>
    22                 <element name="help" type="string"/>
    2320                <element name="id" type="string"/>
    2421                <element name="name" type="string"/>
    2522                <element name="type" type="string"/>
     23                <element name="flags" type="integer"/>
     24                <element name="help" type="string"/>
     25                <element name="group" type="string"/>
    2626        </type>
    2727        <type name="style" context="style file">
    2828<description><![CDATA[General visual style properties.]]></description>
     29                <element name="style" type="string"/>
     30                <element name="name" type="string"/>
     31                <element name="info" type="string"/>
    2932                <element name="code" type="string"/>
    30                 <element name="info" type="string"/>
    31                 <element name="name" type="string"/>
     33                <element name="streload" function="true"/>
     34                <element name="rebuild" function="true"/>
     35                <element name="tex" type="integer" min="0" max="2" default="1"/>
     36                <element name="smooth" type="integer" min="0" max="1" default="1"/>
    3237                <element name="neurons" type="integer" min="0" max="1" default="1"/>
    33                 <element name="smooth" type="integer" min="0" max="1" default="1"/>
    34                 <element name="style" type="string"/>
    35                 <element name="tex" type="integer" min="0" max="2" default="1"/>
    36                 <element name="rebuild" function="true"/>
    37                 <element name="streload" function="true"/>
    3838        </type>
    3939        <type name="show" context="show file">
    4040<description><![CDATA[Properties of a show for the Framsticks Theater (from the *.show file).]]></description>
     41                <element name="show" type="string"/>
     42                <element name="name" type="string"/>
     43                <element name="info" type="string"/>
     44                <element name="dispinfo" type="integer" min="0" max="2"/>
     45                <element name="userspeed" type="integer" min="0" max="5" default="3"/>
     46                <element name="showlog" type="integer" min="0" max="1"/>
    4147                <element name="code" type="string"/>
    42                 <element name="dispinfo" type="integer" min="0" max="2"/>
     48                <element name="expdef" type="string"/>
     49                <element name="reload" function="true"/>
     50                <element name="dummy" function="true">
     51                        <description><![CDATA[This is the empty item in the Theater's menu]]></description>
     52                </element>
     53                <element name="about" function="true"/>
     54                <element name="regname" type="string"/>
     55                <element name="prev_show" type="string"/>
     56                <element name="mode" type="integer" min="0" max="2"/>
     57                <element name="switchmode" type="integer" min="0" max="3"/>
     58                <element name="switchtime" type="integer" min="0" max="9999">
     59                        <description><![CDATA[time between switching (seconds)]]></description>
     60                </element>
     61                <element name="switchshows" type="string">
     62                        <description><![CDATA[names of the shows participating in automatic switching (comma separated). Use * as a wildcard.]]></description>
     63                </element>
     64                <element name="includeshows" type="string">
     65                        <description><![CDATA[names of shows included in the show menu. Use * as a wildcard.]]></description>
     66                </element>
    4367                <element name="excludeshows" type="string">
    4468                        <description><![CDATA[names of shows excluded from the show menu. Use * as a wildcard.]]></description>
    4569                </element>
    46                 <element name="expdef" type="string"/>
    47                 <element name="includeshows" type="string">
    48                         <description><![CDATA[names of shows included in the show menu. Use * as a wildcard.]]></description>
    49                 </element>
    50                 <element name="info" type="string"/>
    51                 <element name="mode" type="integer" min="0" max="2"/>
     70        </type>
     71        <type name="class" context="neuro file">
    5272                <element name="name" type="string"/>
    53                 <element name="prev_show" type="string"/>
    54                 <element name="regname" type="string"/>
    55                 <element name="show" type="string"/>
    56                 <element name="showlog" type="integer" min="0" max="1"/>
    57                 <element name="switchmode" type="integer" min="0" max="3"/>
    58                 <element name="switchshows" type="string">
    59                         <description><![CDATA[names of the shows participating in automatic switching (comma separated). Use * as a wildcard.]]></description>
    60                 </element>
    61                 <element name="switchtime" type="integer" min="0" max="9999">
    62                         <description><![CDATA[time between switching (seconds)]]></description>
    63                 </element>
    64                 <element name="userspeed" type="integer" min="0" max="5" default="3"/>
    65                 <element name="about" function="true"/>
    66                 <element name="dummy" function="true">
    67                         <description><![CDATA[This is the empty item in the Theater's menu]]></description>
    68                 </element>
    69                 <element name="reload" function="true"/>
    70         </type>
    71         <type name="class" context="neuro file">
     73                <element name="longname" type="string"/>
     74                <element name="description" type="string"/>
    7275                <element name="code" type="string"/>
    73                 <element name="description" type="string"/>
     76                <element name="prefinputs" type="integer"/>
     77                <element name="prefoutput" type="integer" min="0" max="1"/>
     78                <element name="preflocation" type="integer" min="0" max="2"/>
    7479                <element name="icon" type="string"/>
    75                 <element name="longname" type="string"/>
     80                <element name="vhints" type="integer"/>
     81        </type>
     82        <type name="script" context="script file">
    7683                <element name="name" type="string"/>
    77                 <element name="prefinputs" type="integer"/>
    78                 <element name="preflocation" type="integer" min="0" max="2"/>
    79                 <element name="prefoutput" type="integer" min="0" max="1"/>
    80                 <element name="vhints" type="integer"/>
    81         </type>
    82         <type name="script" context="script file">
    8384                <element name="code" type="string"/>
     85                <element name="help" type="string"/>
    8486                <element name="group" type="string"/>
    85                 <element name="help" type="string"/>
    86                 <element name="name" type="string"/>
    8787        </type>
    8888        <type name="CheckpointEvent" context="Global context">
    8989<description><![CDATA[CheckpointEvent]]></description>
    90                 <element name="data" type="untyped"/>
    9190                <element name="index" type="integer"/>
    9291                <element name="slave" type="Simulator"/>
    9392                <element name="ticks" type="integer"/>
     93                <element name="data" type="untyped"/>
    9494        </type>
    9595        <type name="Collision" context="Global context">
    9696<description><![CDATA[Used in collision handlers (On___Collision). Contains the detailed information about the colliding parts (Part1,Part2 and their associated MechParts and Creatures). See the onFoodCollision() function in standard.expdef]]></description>
     97                <element name="Part1" type="Object"/>
     98                <element name="Part2" type="Object"/>
     99                <element name="MechPart1" type="Object"/>
     100                <element name="MechPart2" type="Object"/>
    97101                <element name="Creature1" type="Object"/>
    98102                <element name="Creature2" type="Object"/>
    99                 <element name="MechPart1" type="Object"/>
    100                 <element name="MechPart2" type="Object"/>
    101                 <element name="Part1" type="Object"/>
    102                 <element name="Part2" type="Object"/>
    103103        </type>
    104104        <type name="CrCollision" context="Global context">
     
    112112function onDied(cr) {Simulator.print("Creature "+cr.name+" has died");}
    113113See also: Population.]]></description>
     114                <element name="name" type="string"/>
     115                <element name="genotype" type="string"/>
     116                <element name="info" type="string">
     117                        <description><![CDATA[Additional info or comments]]></description>
     118                </element>
     119                <element name="group" type="untyped" deprecated="true">
     120                        <description><![CDATA[Deprecated. Use population instead.]]></description>
     121                </element>
     122                <element name="population" type="untyped"/>
     123                <element name="index" type="integer">
     124                        <description><![CDATA[Note that the index changes depending on the current creature position in the population. Use Creature.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
     125                </element>
     126                <element name="gnum" type="integer"/>
     127                <element name="buildproblems" type="integer"/>
     128                <element name="energ0" type="float"/>
     129                <element name="idleen" type="float"/>
     130                <element name="energy" type="float"/>
     131                <element name="energy_p" type="float"/>
     132                <element name="energy_m" type="float"/>
     133                <element name="energy_b" type="float"/>
     134                <element name="perf" type="integer" min="0" max="2">
     135                        <description><![CDATA[Initial value of this property is taken from Population.enableperf]]></description>
     136                </element>
     137                <element name="nnenabled" type="integer" min="0" max="1"/>
    114138                <element name="bodysim" type="integer" min="0" max="1" default="1">
    115139                        <description><![CDATA[(Physical) body simulation can be disabled for individual objects which makes them immovable. Disabled objects can still participate in collisions depending on their collisions masks.
     
    117141Bugs: the standard collision handler does not work for disabled objects when ODE simulation is used. It means that these objects won't physically interact with other objects. The custom (scripting) handlers work as expected.]]></description>
    118142                </element>
    119                 <element name="buildproblems" type="integer"/>
     143                <element name="selfcol" type="integer" min="0" max="1">
     144                        <description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
     145                </element>
     146                <element name="selfcolstate" function="true" type="integer">
     147                        <description><![CDATA[Current self-collision state. In old versions this was a field, not a function.]]></description>
     148<arguments/></element>
     149                <element name="lifespan" type="integer"/>
     150                <element name="distance" type="float"/>
    120151                <element name="c_velocity" type="float"/>
     152                <element name="c_vertvelocity" type="float"/>
    121153                <element name="c_vertpos" type="float"/>
    122                 <element name="c_vertvelocity" type="float"/>
     154                <element name="velocity" type="float"/>
     155                <element name="vertpos" type="float"/>
     156                <element name="vertvel" type="float"/>
     157                <element name="pos_x" type="float">
     158                        <description><![CDATA[(pos_x,pos_y,pos_z) is the point of minimal coordinates ("bottom left corner") of the creature, including imaginary Part sizes (Part.s, usually 1.0). See also: Creature.moveAbs]]></description>
     159                </element>
     160                <element name="pos_y" type="float">
     161                        <description><![CDATA[See Creature.pos_x]]></description>
     162                </element>
     163                <element name="pos_z" type="float">
     164                        <description><![CDATA[See Creature.pos_x]]></description>
     165                </element>
     166                <element name="size_x" type="float">
     167                        <description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including the imaginary part sizes (Part.s, usually 1.0). A creature consisting of a single default Part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
     168See also: Creature.moveAbs]]></description>
     169                </element>
     170                <element name="size_y" type="float">
     171                        <description><![CDATA[See Creature.size_x]]></description>
     172                </element>
     173                <element name="size_z" type="float">
     174                        <description><![CDATA[See Creature.size_x]]></description>
     175                </element>
    123176                <element name="center_x" type="float">
    124177                        <description><![CDATA[Center of gravity]]></description>
     
    130183                        <description><![CDATA[Center of gravity]]></description>
    131184                </element>
    132                 <element name="distance" type="float"/>
     185                <element name="numparts" type="integer"/>
     186                <element name="numjoints" type="integer"/>
     187                <element name="numneurons" type="integer"/>
     188                <element name="user1" type="untyped"/>
     189                <element name="user2" type="untyped"/>
     190                <element name="user3" type="untyped"/>
     191                <element name="move" function="true" type="void">
     192                        <description><![CDATA[Shift the creature by a given vector.]]></description>
     193                        <arguments>
     194                                <argument name="x" type="float"/>
     195                                <argument name="y" type="float"/>
     196                                <argument name="z" type="float"/>
     197                        </arguments>
     198                </element>
     199                <element name="moveAbs" function="true" type="void">
     200                        <description><![CDATA[Moves the creature so that its origin (pos_x,pos_y,pos_z) is placed at the given location. The origin is the point of minimal coordinates ("bottom left corner"), including imaginary part sizes (Part.s, usually 1.0).
     201Assuming a simple single-stick creature "X" having parts at (0,0,0) and (1,0,0),
     202
     203origin (pos_x,pos_y,pos_z) = (-1,-1,-1)
     204size (size_x,size_y,size_z) = (3,2,2)
     205
     206The following example places the bottom of a creature at a given location (x,y,z):
     207Creature.moveAbs(x-(Creature.size_x/2),y-(Creature.size_y/2),z-1.0)
     208(assuming that the part size is 1.0)]]></description>
     209                        <arguments>
     210                                <argument name="x" type="float"/>
     211                                <argument name="y" type="float"/>
     212                                <argument name="z" type="float"/>
     213                        </arguments>
     214                </element>
     215                <element name="moveLocal" function="true" type="void">
     216                        <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
     217                        <arguments>
     218                                <argument name="x" type="float"/>
     219                                <argument name="y" type="float"/>
     220                                <argument name="z" type="float"/>
     221                        </arguments>
     222                </element>
     223                <element name="localToWorld" function="true" type="XYZ">
     224                        <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
     225                        <arguments>
     226                                <argument name="x" type="float"/>
     227                                <argument name="y" type="float"/>
     228                                <argument name="z" type="float"/>
     229                        </arguments>
     230                </element>
     231                <element name="worldToLocal" function="true" type="XYZ">
     232                        <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
     233                        <arguments>
     234                                <argument name="x" type="float"/>
     235                                <argument name="y" type="float"/>
     236                                <argument name="z" type="float"/>
     237                        </arguments>
     238                </element>
     239                <element name="orient" type="Orient">
     240                        <description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
     241                </element>
     242                <element name="rotate" function="true" type="void">
     243                        <description><![CDATA[Rotate the creature around X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
     244                        <arguments>
     245                                <argument name="x" type="float"/>
     246                                <argument name="y" type="float"/>
     247                                <argument name="z" type="float"/>
     248                        </arguments>
     249                </element>
     250                <element name="rotateLocal" function="true" type="void">
     251                        <description><![CDATA[Rotate the creature around (local) X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
     252                        <arguments>
     253                                <argument name="x" type="float"/>
     254                                <argument name="y" type="float"/>
     255                                <argument name="z" type="float"/>
     256                        </arguments>
     257                </element>
    133258                <element name="drive" type="XYZ">
    134259                        <description><![CDATA[Measured in global coordinates]]></description>
    135                 </element>
    136                 <element name="energ0" type="float"/>
    137                 <element name="energy" type="float"/>
    138                 <element name="energy_b" type="float"/>
    139                 <element name="energy_m" type="float"/>
    140                 <element name="energy_p" type="float"/>
    141                 <element name="geno" type="Geno">
    142                         <description><![CDATA[Source genotype for this creature]]></description>
    143                 </element>
    144                 <element name="genotype" type="string"/>
    145                 <element name="gnum" type="integer"/>
    146                 <element name="group" type="untyped" deprecated="true">
    147                         <description><![CDATA[Deprecated. Use population instead.]]></description>
    148                 </element>
    149                 <element name="idleen" type="float"/>
    150                 <element name="index" type="integer">
    151                         <description><![CDATA[Note that the index changes depending on the current creature position in the population. Use Creature.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
    152                 </element>
    153                 <element name="info" type="string">
    154                         <description><![CDATA[Additional info or comments]]></description>
    155                 </element>
    156                 <element name="lifespan" type="integer"/>
    157                 <element name="liveModel" type="Model">
    158                         <description><![CDATA[A Model object that is a copy of the current (temporary) geometry of this creature]]></description>
    159260                </element>
    160261                <element name="localDrive" type="XYZ">
     
    162263See also: Creature.orient]]></description>
    163264                </element>
     265                <element name="getPart" function="true" type="Part">
     266                        <arguments>
     267                                <argument name="index" type="integer"/>
     268                        </arguments>
     269                </element>
     270                <element name="getJoint" function="true" type="Joint">
     271                        <arguments>
     272                                <argument name="index" type="integer"/>
     273                        </arguments>
     274                </element>
     275                <element name="getNeuroDef" function="true" type="NeuroDef">
     276                        <arguments>
     277                                <argument name="index" type="integer"/>
     278                        </arguments>
     279                </element>
     280                <element name="getMechPart" function="true" type="MechPart">
     281                        <arguments>
     282                                <argument name="index" type="integer"/>
     283                        </arguments>
     284                </element>
     285                <element name="getMechJoint" function="true" type="MechJoint">
     286                        <arguments>
     287                                <argument name="index" type="integer"/>
     288                        </arguments>
     289                </element>
     290                <element name="getNeuro" function="true" type="Neuro">
     291                        <arguments>
     292                                <argument name="index" type="integer"/>
     293                        </arguments>
     294                </element>
     295                <element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
     296                <element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
     297                <element name="currentGeometryAsF0" function="true" type="string"><arguments/></element>
     298                <element name="geno" type="Geno">
     299                        <description><![CDATA[Source genotype for this creature]]></description>
     300                </element>
    164301                <element name="model" type="Model">
    165302                        <description><![CDATA[Source Model for this creature]]></description>
    166303                </element>
    167                 <element name="name" type="string"/>
    168                 <element name="nnenabled" type="integer" min="0" max="1"/>
    169                 <element name="numjoints" type="integer"/>
    170                 <element name="numneurons" type="integer"/>
    171                 <element name="numparts" type="integer"/>
    172                 <element name="orient" type="Orient">
    173                         <description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
    174                 </element>
    175                 <element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
    176                 <element name="perf" type="integer" min="0" max="2">
    177                         <description><![CDATA[Initial value of this property is taken from Population.enableperf]]></description>
    178                 </element>
    179                 <element name="population" type="untyped"/>
    180                 <element name="pos_x" type="float">
    181                         <description><![CDATA[(pos_x,pos_y,pos_z) is the point of minimal coordinates ("bottom left corner") of the creature, including imaginary Part sizes (Part.s, usually 1.0). See also: Creature.moveAbs]]></description>
    182                 </element>
    183                 <element name="pos_y" type="float">
    184                         <description><![CDATA[See Creature.pos_x]]></description>
    185                 </element>
    186                 <element name="pos_z" type="float">
    187                         <description><![CDATA[See Creature.pos_x]]></description>
    188                 </element>
    189                 <element name="selfcol" type="integer" min="0" max="1">
    190                         <description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
    191                 </element>
    192                 <element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
     304                <element name="liveModel" type="Model">
     305                        <description><![CDATA[A Model object that is a copy of the current (temporary) geometry of this creature]]></description>
     306                </element>
     307                <element name="uid" type="string"/>
    193308                <element name="signals" type="CreatureSignals"/>
    194                 <element name="size_x" type="float">
    195                         <description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including the imaginary part sizes (Part.s, usually 1.0). A creature consisting of a single default Part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
    196 See also: Creature.moveAbs]]></description>
    197                 </element>
    198                 <element name="size_y" type="float">
    199                         <description><![CDATA[See Creature.size_x]]></description>
    200                 </element>
    201                 <element name="size_z" type="float">
    202                         <description><![CDATA[See Creature.size_x]]></description>
    203                 </element>
    204                 <element name="uid" type="string"/>
    205                 <element name="user1" type="untyped"/>
    206                 <element name="user2" type="untyped"/>
    207                 <element name="user3" type="untyped"/>
    208                 <element name="velocity" type="float"/>
    209                 <element name="vertpos" type="float"/>
    210                 <element name="vertvel" type="float"/>
    211309                <element name="boundingBoxCollisions" function="true" type="integer">
    212310                        <description><![CDATA[Checks approximate collisions for the selected creature.
     
    217315                        </arguments>
    218316                </element>
    219                 <element name="currentGeometryAsF0" function="true" type="string"><arguments/></element>
    220                 <element name="getJoint" function="true" type="Joint">
    221                         <arguments>
    222                                 <argument name="index" type="integer"/>
    223                         </arguments>
    224                 </element>
    225                 <element name="getMechJoint" function="true" type="MechJoint">
    226                         <arguments>
    227                                 <argument name="index" type="integer"/>
    228                         </arguments>
    229                 </element>
    230                 <element name="getMechPart" function="true" type="MechPart">
    231                         <arguments>
    232                                 <argument name="index" type="integer"/>
    233                         </arguments>
    234                 </element>
    235                 <element name="getNeuro" function="true" type="Neuro">
    236                         <arguments>
    237                                 <argument name="index" type="integer"/>
    238                         </arguments>
    239                 </element>
    240                 <element name="getNeuroDef" function="true" type="NeuroDef">
    241                         <arguments>
    242                                 <argument name="index" type="integer"/>
    243                         </arguments>
    244                 </element>
    245                 <element name="getPart" function="true" type="Part">
    246                         <arguments>
    247                                 <argument name="index" type="integer"/>
    248                         </arguments>
    249                 </element>
    250                 <element name="localToWorld" function="true" type="XYZ">
    251                         <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
    252                         <arguments>
    253                                 <argument name="x" type="float"/>
    254                                 <argument name="y" type="float"/>
    255                                 <argument name="z" type="float"/>
    256                         </arguments>
    257                 </element>
    258                 <element name="move" function="true" type="void">
    259                         <description><![CDATA[Shift the creature by a given vector.]]></description>
    260                         <arguments>
    261                                 <argument name="x" type="float"/>
    262                                 <argument name="y" type="float"/>
    263                                 <argument name="z" type="float"/>
    264                         </arguments>
    265                 </element>
    266                 <element name="moveAbs" function="true" type="void">
    267                         <description><![CDATA[Moves the creature so that its origin (pos_x,pos_y,pos_z) is placed at the given location. The origin is the point of minimal coordinates ("bottom left corner"), including imaginary part sizes (Part.s, usually 1.0).
    268 Assuming a simple single-stick creature "X" having parts at (0,0,0) and (1,0,0),
    269 
    270 origin (pos_x,pos_y,pos_z) = (-1,-1,-1)
    271 size (size_x,size_y,size_z) = (3,2,2)
    272 
    273 The following example places the bottom of a creature at a given location (x,y,z):
    274 Creature.moveAbs(x-(Creature.size_x/2),y-(Creature.size_y/2),z-1.0)
    275 (assuming that the part size is 1.0)]]></description>
    276                         <arguments>
    277                                 <argument name="x" type="float"/>
    278                                 <argument name="y" type="float"/>
    279                                 <argument name="z" type="float"/>
    280                         </arguments>
    281                 </element>
    282                 <element name="moveLocal" function="true" type="void">
    283                         <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
    284                         <arguments>
    285                                 <argument name="x" type="float"/>
    286                                 <argument name="y" type="float"/>
    287                                 <argument name="z" type="float"/>
    288                         </arguments>
    289                 </element>
    290                 <element name="rotate" function="true" type="void">
    291                         <description><![CDATA[Rotate the creature around X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
    292                         <arguments>
    293                                 <argument name="x" type="float"/>
    294                                 <argument name="y" type="float"/>
    295                                 <argument name="z" type="float"/>
    296                         </arguments>
    297                 </element>
    298                 <element name="rotateLocal" function="true" type="void">
    299                         <description><![CDATA[Rotate the creature around (local) X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
    300                         <arguments>
    301                                 <argument name="x" type="float"/>
    302                                 <argument name="y" type="float"/>
    303                                 <argument name="z" type="float"/>
    304                         </arguments>
    305                 </element>
    306                 <element name="selfcolstate" function="true" type="integer">
    307                         <description><![CDATA[Current self-collision state. In old versions this was a field, not a function.]]></description>
    308 <arguments/></element>
    309                 <element name="worldToLocal" function="true" type="XYZ">
    310                         <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
    311                         <arguments>
    312                                 <argument name="x" type="float"/>
    313                                 <argument name="y" type="float"/>
    314                                 <argument name="z" type="float"/>
    315                         </arguments>
    316                 </element>
    317317        </type>
    318318        <type name="CreatureSettings" context="Global context">
    319319<description><![CDATA[Creature building parameters]]></description>
     320                <element name="minjoint" type="float" min="0" max="100" default="0.0"/>
     321                <element name="maxjoint" type="float" min="0" max="100" default="2.0"/>
     322                <element name="randinit" type="float" min="0" max="10" default="0.01">
     323                        <description><![CDATA[Allowed range for initializing all neuron states with uniform distribution random numbers and zero mean. Set to 0 for deterministic initialization.]]></description>
     324                </element>
     325                <element name="nnoise" type="float" min="0" max="1" default="0.0">
     326                        <description><![CDATA[Gaussian 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.]]></description>
     327                </element>
     328                <element name="touchrange" type="float" min="0" max="100" default="1.0"/>
    320329                <element name="bnoise_struct" type="float" min="0" max="10" default="0.0">
    321330                        <description><![CDATA[When >0, body constructs of creatures (position of Parts) will be randomly disturbed when they are created.]]></description>
     
    324333                        <description><![CDATA[Random velocities will be applied to all body Parts (in MechaStick) or rigid segments (in ODE) of newly created creatures.]]></description>
    325334                </element>
    326                 <element name="maxjoint" type="float" min="0" max="100" default="2.0"/>
    327                 <element name="minjoint" type="float" min="0" max="100" default="0.0"/>
    328                 <element name="nnoise" type="float" min="0" max="1" default="0.0">
    329                         <description><![CDATA[Gaussian 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.]]></description>
    330                 </element>
    331                 <element name="randinit" type="float" min="0" max="10" default="0.01">
    332                         <description><![CDATA[Allowed range for initializing all neuron states with uniform distribution random numbers and zero mean. Set to 0 for deterministic initialization.]]></description>
    333                 </element>
    334                 <element name="touchrange" type="float" min="0" max="100" default="1.0"/>
    335335        </type>
    336336        <type name="CreatureSignals" context="Global context">
    337337<description><![CDATA[Signal sources associated with a creature. See also: Signal, WorldSignals, NeuroSignals.]]></description>
    338                 <element name="size" type="integer"/>
    339338                <element name="add" function="true" type="Signal">
    340339                        <arguments>
     
    351350                        </arguments>
    352351                </element>
    353                 <element name="clear" function="true" type="void"><arguments/></element>
    354                 <element name="get" function="true" type="Signal">
    355                         <arguments>
    356                                 <argument name="index" type="integer"/>
    357                         </arguments>
    358                 </element>
    359352                <element name="receive" function="true" type="float">
    360353                        <description><![CDATA[Receive the aggregated signal power in a given channel.]]></description>
    361354                        <arguments>
    362355                                <argument name="channel" type="string"/>
     356                        </arguments>
     357                </element>
     358                <element name="receiveSet" function="true" type="Vector">
     359                        <description><![CDATA[Get all signals in the specified range. Returns a read-only vector object containing Signal objects - individual signals can be accessed as result[0], .., result[result.size-1].]]></description>
     360                        <arguments>
     361                                <argument name="channel" type="string"/>
     362                                <argument name="max distance" type="float"/>
    363363                        </arguments>
    364364                </element>
     
    376376                        </arguments>
    377377                </element>
    378                 <element name="receiveSet" function="true" type="Vector">
    379                         <description><![CDATA[Get all signals in the specified range. Returns a read-only vector object containing Signal objects - individual signals can be accessed as result[0], .., result[result.size-1].]]></description>
     378                <element name="receiveSingle" function="true" type="Signal">
     379                        <description><![CDATA[Find the signal source that has the highest signal power (taking into account distance).]]></description>
    380380                        <arguments>
    381381                                <argument name="channel" type="string"/>
     
    383383                        </arguments>
    384384                </element>
    385                 <element name="receiveSingle" function="true" type="Signal">
    386                         <description><![CDATA[Find the signal source that has the highest signal power (taking into account distance).]]></description>
    387                         <arguments>
    388                                 <argument name="channel" type="string"/>
    389                                 <argument name="max distance" type="float"/>
    390                         </arguments>
    391                 </element>
     385                <element name="get" function="true" type="Signal">
     386                        <arguments>
     387                                <argument name="index" type="integer"/>
     388                        </arguments>
     389                </element>
     390                <element name="size" type="integer"/>
     391                <element name="clear" function="true" type="void"><arguments/></element>
     392        </type>
     393        <type name="CreatureSnapshot" context="Global context">
     394<description><![CDATA[A data object consisting of the same fields as the serialized Creature. Typically used for reading a Creature back from a file, then Population.add(snapshot_object) creates the Creature object from the snapshot.]]></description>
     395                <element name="name" type="string"/>
     396                <element name="genotype" type="string"/>
     397                <element name="info" type="string">
     398                        <description><![CDATA[Additional info or comments]]></description>
     399                </element>
     400                <element name="gnum" type="integer"/>
     401                <element name="energ0" type="float"/>
     402                <element name="idleen" type="float"/>
     403                <element name="energy" type="float"/>
     404                <element name="energy_p" type="float"/>
     405                <element name="energy_m" type="float"/>
     406                <element name="energy_b" type="float"/>
     407                <element name="perf" type="integer" min="0" max="2">
     408                        <description><![CDATA[Initial value of this property is taken from Population.enableperf]]></description>
     409                </element>
     410                <element name="nnenabled" type="integer" min="0" max="1"/>
     411                <element name="bodysim" type="integer" min="0" max="1" default="1">
     412                        <description><![CDATA[(Physical) body simulation can be disabled for individual objects which makes them immovable. Disabled objects can still participate in collisions depending on their collisions masks.
     413
     414Bugs: the standard collision handler does not work for disabled objects when ODE simulation is used. It means that these objects won't physically interact with other objects. The custom (scripting) handlers work as expected.]]></description>
     415                </element>
     416                <element name="selfcol" type="integer" min="0" max="1">
     417                        <description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
     418                </element>
     419                <element name="lifespan" type="integer"/>
     420                <element name="distance" type="float"/>
     421                <element name="c_velocity" type="float"/>
     422                <element name="c_vertvelocity" type="float"/>
     423                <element name="c_vertpos" type="float"/>
     424                <element name="velocity" type="float"/>
     425                <element name="vertpos" type="float"/>
     426                <element name="vertvel" type="float"/>
     427                <element name="center_x" type="float">
     428                        <description><![CDATA[Center of gravity]]></description>
     429                </element>
     430                <element name="center_y" type="float">
     431                        <description><![CDATA[Center of gravity]]></description>
     432                </element>
     433                <element name="center_z" type="float">
     434                        <description><![CDATA[Center of gravity]]></description>
     435                </element>
     436                <element name="user1" type="untyped"/>
     437                <element name="user2" type="untyped"/>
     438                <element name="user3" type="untyped"/>
     439                <element name="orient" type="Orient">
     440                        <description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
     441                </element>
     442                <element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
     443                <element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
     444                <element name="uid" type="string"/>
    392445        </type>
    393446        <type name="Dictionary" context="Global context">
     
    397450var i;
    398451for(i=0;i<d.size;i++) Simulator.print(d.getKey(i)+" is "+d.get(i));]]></description>
     452                <element name="clear" function="true" type="void"><arguments/></element>
    399453                <element name="size" type="integer"/>
    400                 <element name="toString" type="string"/>
    401                 <element name="clear" function="true" type="void"><arguments/></element>
     454                <element name="remove" function="true" type="void">
     455                        <arguments>
     456                                <argument name="key" type="untyped"/>
     457                        </arguments>
     458                </element>
     459                <element name="get" function="true" type="untyped">
     460                        <arguments>
     461                                <argument name="key" type="untyped"/>
     462                        </arguments>
     463                </element>
     464                <element name="getKey" function="true" type="string">
     465                        <arguments>
     466                                <argument name="index" type="integer"/>
     467                        </arguments>
     468                </element>
     469                <element name="set" function="true" type="void">
     470                        <arguments>
     471                                <argument name="key" type="untyped"/>
     472                                <argument name="value" type="untyped"/>
     473                        </arguments>
     474                </element>
    402475                <element name="find" function="true" type="string">
    403476                        <description><![CDATA[returns the element key or null if not found]]></description>
     
    406479                        </arguments>
    407480                </element>
    408                 <element name="get" function="true" type="untyped">
    409                         <arguments>
    410                                 <argument name="key" type="untyped"/>
    411                         </arguments>
    412                 </element>
    413                 <element name="getKey" function="true" type="string">
    414                         <arguments>
    415                                 <argument name="index" type="integer"/>
    416                         </arguments>
    417                 </element>
    418481                <element name="new" function="true" type="Dictionary"><arguments/></element>
    419                 <element name="remove" function="true" type="void">
    420                         <arguments>
    421                                 <argument name="key" type="untyped"/>
    422                         </arguments>
    423                 </element>
    424                 <element name="set" function="true" type="void">
    425                         <arguments>
    426                                 <argument name="key" type="untyped"/>
    427                                 <argument name="value" type="untyped"/>
    428                         </arguments>
    429                 </element>
     482                <element name="toString" type="string"/>
    430483        </type>
    431484        <type name="File" context="Global context">
    432 <description><![CDATA[Provides read/write access to the filesystem. Can be used in the experiment definition to save the experiment state (onExpSave). Files are created in the "scripts_output" subdirectory of the directory where the Framsticks executable is located.]]></description>
    433                 <element name="EOF" type="integer" min="0" max="1"/>
    434                 <element name="info" type="string"/>
     485<description><![CDATA[Provides read/write access to the filesystem. Can be used in the experiment definition to save the experiment state (onExpSave) or any other information. Files are created in the "data/scripts_output" subdirectory, which is either near the Framsticks executable (if this subdirectory is writable) or in your user Documents directory.]]></description>
    435486                <element name="name" type="string"/>
    436487                <element name="path" type="string"/>
    437                 <element name="pathseparator" type="string"/>
    438                 <element name="append" function="true" type="File ">
     488                <element name="info" type="string"/>
     489                <element name="writeNameObject" function="true" type="void">
     490                        <arguments>
     491                                <argument name="name" type="string"/>
     492                                <argument type="Object"/>
     493                        </arguments>
     494                </element>
     495                <element name="writeObject" function="true" type="void">
     496                        <arguments>
     497                                <argument type="Object"/>
     498                        </arguments>
     499                </element>
     500                <element name="writeObjectBegin" function="true" type="void">
     501                        <arguments>
     502                                <argument type="Object"/>
     503                        </arguments>
     504                </element>
     505                <element name="writeObjectField" function="true" type="void">
     506                        <arguments>
     507                                <argument type="Object"/>
     508                                <argument name="field index or name" type="untyped"/>
     509                        </arguments>
     510                </element>
     511                <element name="writeObjectFields" function="true" type="void">
     512                        <arguments>
     513                                <argument type="Object"/>
     514                        </arguments>
     515                </element>
     516                <element name="writeObjectFieldForce" function="true" type="void">
     517                        <arguments>
     518                                <argument type="Object"/>
     519                                <argument name="field index or name" type="untyped"/>
     520                        </arguments>
     521                </element>
     522                <element name="writeObjectFieldsForce" function="true" type="void">
     523                        <arguments>
     524                                <argument type="Object"/>
     525                        </arguments>
     526                </element>
     527                <element name="writeObjectEnd" function="true" type="void"><arguments/></element>
     528                <element name="writeString" function="true" type="void">
     529                        <arguments>
     530                                <argument name="anything" type="untyped"/>
     531                        </arguments>
     532                </element>
     533                <element name="writeComment" function="true" type="void">
     534                        <arguments>
     535                                <argument name="anything" type="string"/>
     536                        </arguments>
     537                </element>
     538                <element name="readLine" function="true" type="string"><arguments/></element>
     539                <element name="readObject" function="true" type="void">
     540                        <arguments>
     541                                <argument type="Object"/>
     542                        </arguments>
     543                </element>
     544                <element name="EOF" type="integer" min="0" max="1"/>
     545                <element name="readUntilEOF" function="true" type="string"><arguments/></element>
     546                <element name="getContents" function="true" type="string">
     547                        <description><![CDATA[Shortcut to: var f=File.open(filename); c=f.readUntilEOF(); f.close(); return c;]]></description>
     548                        <arguments>
     549                                <argument name="filename" type="string"/>
     550                        </arguments>
     551                </element>
     552                <element name="create" function="true" type="File">
    439553                        <arguments>
    440554                                <argument name="filename" type="string"/>
     
    442556                        </arguments>
    443557                </element>
    444                 <element name="appendDirect" function="true" type="File ">
     558                <element name="createDirect" function="true" type="File">
    445559                        <arguments>
    446560                                <argument name="filename" type="string"/>
    447561                                <argument name="description" type="string"/>
     562                        </arguments>
     563                </element>
     564                <element name="append" function="true" type="File ">
     565                        <arguments>
     566                                <argument name="filename" type="string"/>
     567                                <argument name="description" type="string"/>
     568                        </arguments>
     569                </element>
     570                <element name="appendDirect" function="true" type="File ">
     571                        <arguments>
     572                                <argument name="filename" type="string"/>
     573                                <argument name="description" type="string"/>
     574                        </arguments>
     575                </element>
     576                <element name="flush" function="true" type="void">
     577                        <description><![CDATA[Useful for unbuffered disk files only (openDirect, appendDirect)]]></description>
     578<arguments/></element>
     579                <element name="open" function="true" type="File ">
     580                        <arguments>
     581                                <argument name="filename" type="string"/>
     582                        </arguments>
     583                </element>
     584                <element name="new" function="true" type="File "><arguments/></element>
     585                <element name="newFromString" function="true" type="File ">
     586                        <arguments>
     587                                <argument name="text" type="string"/>
    448588                        </arguments>
    449589                </element>
     
    451591                        <description><![CDATA[returns file contents if it has been buffered]]></description>
    452592<arguments/></element>
    453                 <element name="create" function="true" type="File">
    454                         <arguments>
    455                                 <argument name="filename" type="string"/>
    456                                 <argument name="description" type="string"/>
    457                         </arguments>
    458                 </element>
    459                 <element name="createDirect" function="true" type="File">
    460                         <arguments>
    461                                 <argument name="filename" type="string"/>
    462                                 <argument name="description" type="string"/>
    463                         </arguments>
    464                 </element>
    465593                <element name="exists" function="true" type="integer" min="0" max="1">
    466594                        <description><![CDATA[Sample:
    467595File.exists("default.sim") -> return 0 or 1]]></description>
    468596<arguments/></element>
    469                 <element name="flush" function="true" type="void">
    470                         <description><![CDATA[Useful for unbuffered disk files only (openDirect, appendDirect)]]></description>
    471 <arguments/></element>
    472                 <element name="getContents" function="true" type="string">
    473                         <description><![CDATA[Shortcut to: var f=File.open(filename); c=f.readUntilEOF(); f.close(); return c;]]></description>
    474                         <arguments>
    475                                 <argument name="filename" type="string"/>
    476                         </arguments>
    477                 </element>
    478                 <element name="new" function="true" type="File "><arguments/></element>
    479                 <element name="newFromString" function="true" type="File ">
    480                         <arguments>
    481                                 <argument name="text" type="string"/>
    482                         </arguments>
    483                 </element>
    484                 <element name="open" function="true" type="File ">
    485                         <arguments>
    486                                 <argument name="filename" type="string"/>
    487                         </arguments>
    488                 </element>
    489                 <element name="readLine" function="true" type="string"><arguments/></element>
    490                 <element name="readObject" function="true" type="void">
    491                         <arguments>
    492                                 <argument type="Object"/>
    493                         </arguments>
    494                 </element>
    495                 <element name="readUntilEOF" function="true" type="string"><arguments/></element>
     597                <element name="pathseparator" type="string"/>
    496598                <element name="system" function="true" type="integer">
    497599                        <description><![CDATA[Invokes a system command and returns its exit code (0 usually means the command was completed successfully).
     
    504606                        </arguments>
    505607                </element>
    506                 <element name="writeComment" function="true" type="void">
    507                         <arguments>
    508                                 <argument name="anything" type="string"/>
    509                         </arguments>
    510                 </element>
    511                 <element name="writeNameObject" function="true" type="void">
    512                         <arguments>
    513                                 <argument name="name" type="string"/>
    514                                 <argument type="Object"/>
    515                         </arguments>
    516                 </element>
    517                 <element name="writeObject" function="true" type="void">
    518                         <arguments>
    519                                 <argument type="Object"/>
    520                         </arguments>
    521                 </element>
    522                 <element name="writeObjectBegin" function="true" type="void">
    523                         <arguments>
    524                                 <argument type="Object"/>
    525                         </arguments>
    526                 </element>
    527                 <element name="writeObjectEnd" function="true" type="void"><arguments/></element>
    528                 <element name="writeObjectField" function="true" type="void">
    529                         <arguments>
    530                                 <argument type="Object"/>
    531                                 <argument name="field index or name" type="untyped"/>
    532                         </arguments>
    533                 </element>
    534                 <element name="writeObjectFieldForce" function="true" type="void">
    535                         <arguments>
    536                                 <argument type="Object"/>
    537                                 <argument name="field index or name" type="untyped"/>
    538                         </arguments>
    539                 </element>
    540                 <element name="writeObjectFields" function="true" type="void">
    541                         <arguments>
    542                                 <argument type="Object"/>
    543                         </arguments>
    544                 </element>
    545                 <element name="writeObjectFieldsForce" function="true" type="void">
    546                         <arguments>
    547                                 <argument type="Object"/>
    548                         </arguments>
    549                 </element>
    550                 <element name="writeString" function="true" type="void">
    551                         <arguments>
    552                                 <argument name="anything" type="untyped"/>
    553                         </arguments>
    554                 </element>
    555608        </type>
    556609        <type name="GenePool" context="Global context">
    557610<description><![CDATA[GenePool objects are accessed by GenePools[index], or Genotype.genepool and created by GenePools.addGroup(). Usage of the static GenePool object is no longer recommended. See also: GenePools]]></description>
     611                <element name="name" type="string"/>
     612                <element name="index" type="integer"/>
     613                <element name="size" type="integer">
     614                        <description><![CDATA[In standard.expdef, this is equivalent to the number of unique genotypes. Standard experiment definition uses the Genotype.instances field to indicate that some genotypes exist in multiple instances despite having only one item in the group. Other experiment definitions may create multiple copies of the same genotype.]]></description>
     615                </element>
     616                <element name="totalpop" type="integer">
     617                        <description><![CDATA[Takes into account the Genotype.instances field (which may give the total number of instances depending on the experiment definition).]]></description>
     618                </element>
     619                <element name="fitness" type="string">
     620                        <description><![CDATA[(intended for advanced users)]]></description>
     621                </element>
    558622                <element name="fitfun" type="integer" min="0" max="1" default="0">
    559623                        <description><![CDATA[Enables fitness scaling.]]></description>
     
    567631better than the average one.]]></description>
    568632                </element>
    569                 <element name="fitness" type="string">
    570                         <description><![CDATA[(intended for advanced users)]]></description>
    571                 </element>
    572                 <element name="index" type="integer"/>
    573                 <element name="iterator" type="Object"/>
    574                 <element name="name" type="string"/>
    575                 <element name="size" type="integer">
    576                         <description><![CDATA[In standard.expdef, this is equivalent to the number of unique genotypes. Standard experiment definition uses the Genotype.instances field to indicate that some genotypes exist in multiple instances despite having only one item in the group. Other experiment definitions may create multiple copies of the same genotype.]]></description>
    577                 </element>
    578                 <element name="totalpop" type="integer">
    579                         <description><![CDATA[Takes into account the Genotype.instances field (which may give the total number of instances depending on the experiment definition).]]></description>
    580                 </element>
    581                 <element name="add" function="true" type="Genotype">
    582                         <description><![CDATA[Creates a new Genotype from the supplied Genotype, Geno or string.
    583 Returns the created Genotype.]]></description>
     633                <element name="get" function="true" type="Genotype">
     634                        <arguments>
     635                                <argument name="index" type="integer"/>
     636                        </arguments>
     637                </element>
     638                <element name="findGeno" function="true" type="integer" deprecated="true">
     639                        <description><![CDATA[Finds the Genotype matching the supplied Geno object.
     640returns genotype index or -1 if not found.
     641Deprecated. Use the more versatile find() instead of this function.]]></description>
     642                        <arguments>
     643                                <argument type="Geno"/>
     644                        </arguments>
     645                </element>
     646                <element name="findGenotype" function="true" type="Genotype">
     647                        <description><![CDATA[Finds the Genotype matching the supplied Genotype object, Geno object, or genotype string.
     648returns genotype object or null if not found.]]></description>
    584649                        <arguments>
    585650                                <argument name="genotype object or geno object or string genotype" type="untyped"/>
     651                        </arguments>
     652                </element>
     653                <element name="findUID" function="true" type="integer">
     654                        <arguments>
     655                                <argument name="uid" type="string"/>
    586656                        </arguments>
    587657                </element>
     
    594664                        </arguments>
    595665                </element>
    596                 <element name="best" function="true" type="Genotype">
    597                         <description><![CDATA[Returns the genotype object having the highest fitness. Unrated genotypes (instances==0) are ranked lower than those having at least one instance.]]></description>
    598 <arguments/></element>
    599                 <element name="clear" function="true" type="void">
    600                         <description><![CDATA[Delete all genotypes. GenePools[group].clear() is equivalent to GenePools.clearGroup(group)]]></description>
    601 <arguments/></element>
    602666                <element name="createFromGeno" function="true" type="Genotype" deprecated="true">
    603667                        <description><![CDATA[same as addGeno (to comply with createFrom... convention)
     
    614678                        </arguments>
    615679                </element>
    616                 <element name="delete" function="true" type="void">
    617                         <description><![CDATA[Deletes a genotype.]]></description>
    618                         <arguments>
    619                                 <argument name="genotype object or index" type="untyped"/>
    620                         </arguments>
    621                 </element>
    622                 <element name="deleteOne" function="true" type="void">
    623                         <description><![CDATA[Deletes one individual, i.e. decreases its 'instances' and deletes the genotype if the 'instances' goes to 0.]]></description>
    624                         <arguments>
    625                                 <argument name="genotype object or index" type="untyped"/>
    626                         </arguments>
    627                 </element>
    628                 <element name="findGeno" function="true" type="integer" deprecated="true">
    629                         <description><![CDATA[Finds the Genotype matching the supplied Geno object.
    630 returns genotype index or -1 if not found.
    631 Deprecated. Use the more versatile find() instead of this function.]]></description>
    632                         <arguments>
    633                                 <argument type="Geno"/>
    634                         </arguments>
    635                 </element>
    636                 <element name="findGenotype" function="true" type="Genotype">
    637                         <description><![CDATA[Finds the Genotype matching the supplied Genotype object, Geno object, or genotype string.
    638 returns genotype object or null if not found.]]></description>
     680                <element name="add" function="true" type="Genotype">
     681                        <description><![CDATA[Creates a new Genotype from the supplied Genotype, Geno or string.
     682Returns the created Genotype.]]></description>
    639683                        <arguments>
    640684                                <argument name="genotype object or geno object or string genotype" type="untyped"/>
    641685                        </arguments>
    642686                </element>
    643                 <element name="findUID" function="true" type="integer">
    644                         <arguments>
    645                                 <argument name="uid" type="string"/>
    646                         </arguments>
    647                 </element>
    648                 <element name="get" function="true" type="Genotype">
    649                         <arguments>
    650                                 <argument name="index" type="integer"/>
    651                         </arguments>
    652                 </element>
    653                 <element name="getStatsAvg" function="true" type="float">
    654                         <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
    655                         <arguments>
    656                                 <argument name="field name" type="string"/>
    657                         </arguments>
    658                 </element>
    659                 <element name="getStatsMax" function="true" type="float">
    660                         <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
    661                         <arguments>
    662                                 <argument name="field name" type="string"/>
    663                         </arguments>
    664                 </element>
    665                 <element name="getStatsMin" function="true" type="float">
    666                         <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
    667                         <arguments>
    668                                 <argument name="field name" type="string"/>
    669                         </arguments>
    670                 </element>
    671                 <element name="mergeInstances" function="true" type="void">
    672                         <description><![CDATA[Merge instances of the same genotype]]></description>
     687                <element name="worst" function="true" type="Genotype">
     688                        <description><![CDATA[Returns the genotype object having the lowest fitness. Unrated genotypes (instances==0) are ranked lower than those having at least one instance.]]></description>
     689<arguments/></element>
     690                <element name="best" function="true" type="Genotype">
     691                        <description><![CDATA[Returns the genotype object having the highest fitness. Unrated genotypes (instances==0) are ranked lower than those having at least one instance.]]></description>
    673692<arguments/></element>
    674693                <element name="random" function="true" type="Genotype">
    675694                        <description><![CDATA[Returns a random genotype object]]></description>
    676695<arguments/></element>
    677                 <element name="randomLikeGeno" function="true" type="Genotype">
    678                         <description><![CDATA[Returns a random genotype index similar to the target genotype.]]></description>
    679                         <arguments>
    680                                 <argument name="minimum similarity" type="float"/>
    681                                 <argument name="target geno" type="Geno"/>
    682                         </arguments>
    683                 </element>
     696                <element name="roulette" function="true" type="Genotype">
     697                        <description><![CDATA[Returns a fitness-proportional genotype object]]></description>
     698<arguments/></element>
    684699                <element name="revroulette" function="true" type="Genotype">
    685700                        <description><![CDATA[Returns a reverse fitness-proportional genotype object]]></description>
    686701<arguments/></element>
    687                 <element name="roulette" function="true" type="Genotype">
    688                         <description><![CDATA[Returns a fitness-proportional genotype object]]></description>
    689 <arguments/></element>
    690                 <element name="rouletteLikeGeno" function="true" type="Genotype">
    691                         <description><![CDATA[Returns a random genotype similar to the target genotype, fitness-proportional.]]></description>
     702                <element name="tournament" function="true" type="Genotype">
     703                        <description><![CDATA[Returns a tournament winner genotype object]]></description>
     704                        <arguments>
     705                                <argument name="genotypes in tournament" type="integer"/>
     706                        </arguments>
     707                </element>
     708                <element name="randomLikeGeno" function="true" type="Genotype">
     709                        <description><![CDATA[Returns a random genotype index similar to the target genotype. Read about details:
     710http://www.framsticks.com/node/795
     711http://www.framsticks.com/node/890]]></description>
    692712                        <arguments>
    693713                                <argument name="minimum similarity" type="float"/>
     
    695715                        </arguments>
    696716                </element>
     717                <element name="rouletteLikeGeno" function="true" type="Genotype">
     718                        <description><![CDATA[Returns a random genotype similar to the target genotype, fitness-proportional. Read about details:
     719http://www.framsticks.com/node/795
     720http://www.framsticks.com/node/890]]></description>
     721                        <arguments>
     722                                <argument name="minimum similarity" type="float"/>
     723                                <argument name="target geno" type="Geno"/>
     724                        </arguments>
     725                </element>
     726                <element name="delete" function="true" type="void">
     727                        <description><![CDATA[Deletes a genotype.]]></description>
     728                        <arguments>
     729                                <argument name="genotype object or index" type="untyped"/>
     730                        </arguments>
     731                </element>
     732                <element name="deleteOne" function="true" type="void">
     733                        <description><![CDATA[Deletes one individual, i.e. decreases its 'instances' and deletes the genotype if the 'instances' goes to 0.]]></description>
     734                        <arguments>
     735                                <argument name="genotype object or index" type="untyped"/>
     736                        </arguments>
     737                </element>
     738                <element name="clear" function="true" type="void">
     739                        <description><![CDATA[Delete all genotypes. GenePools[group].clear() is equivalent to GenePools.clearGroup(group)]]></description>
     740<arguments/></element>
     741                <element name="mergeInstances" function="true" type="void">
     742                        <description><![CDATA[Merge instances of the same genotype]]></description>
     743<arguments/></element>
    697744                <element name="splitInstances" function="true" type="void">
    698745                        <description><![CDATA[Split genotype instances]]></description>
    699746<arguments/></element>
    700                 <element name="tournament" function="true" type="Genotype">
    701                         <description><![CDATA[Returns a tournament winner genotype object]]></description>
    702                         <arguments>
    703                                 <argument name="genotypes in tournament" type="integer"/>
    704                         </arguments>
    705                 </element>
    706                 <element name="worst" function="true" type="Genotype">
    707                         <description><![CDATA[Returns the genotype object having the lowest fitness. Unrated genotypes (instances==0) are ranked lower than those having at least one instance.]]></description>
    708 <arguments/></element>
     747                <element name="iterator" type="Object"/>
     748                <element name="getStatsMin" function="true" type="float">
     749                        <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
     750                        <arguments>
     751                                <argument name="field name" type="string"/>
     752                        </arguments>
     753                </element>
     754                <element name="getStatsAvg" function="true" type="float">
     755                        <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
     756                        <arguments>
     757                                <argument name="field name" type="string"/>
     758                        </arguments>
     759                </element>
     760                <element name="getStatsMax" function="true" type="float">
     761                        <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Genotype fields).]]></description>
     762                        <arguments>
     763                                <argument name="field name" type="string"/>
     764                        </arguments>
     765                </element>
    709766        </type>
    710767        <type name="GenePools" context="Global context">
     
    722779g.info="my favorite genotype";
    723780g.moveTo(GenePools[0]);]]></description>
     781                <element name="group" type="integer" deprecated="true">
     782                        <description><![CDATA[Index of the currently selected group (GenePool).]]></description>
     783                </element>
     784                <element name="size" type="integer"/>
    724785                <element name="genotype" type="integer" deprecated="true">
    725786                        <description><![CDATA[Index of the currently selected genotype or -1 if no genotype is selected.]]></description>
    726787                </element>
    727                 <element name="group" type="integer" deprecated="true">
    728                         <description><![CDATA[Index of the currently selected group (GenePool).]]></description>
    729                 </element>
    730                 <element name="iterator" type="Object"/>
    731                 <element name="size" type="integer"/>
    732                 <element name="addGroup" function="true" type="GenePool">
    733                         <description><![CDATA[Adds a new gene pool.]]></description>
    734                         <arguments>
    735                                 <argument name="name" type="string"/>
     788                <element name="newGenotype" function="true" type="void" deprecated="true">
     789                        <description><![CDATA[Makes a new genotype from the supplied string and select the genotype. The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected. (call "copySelected" if you want to add this gentype to the genotype group).]]></description>
     790                        <arguments>
     791                                <argument name="genotype" type="string"/>
     792                        </arguments>
     793                </element>
     794                <element name="deleteSelected" function="true" type="void" deprecated="true">
     795                        <description><![CDATA[Deletes selected genotype from the gene pool (uses the selected genotype object).]]></description>
     796<arguments/></element>
     797                <element name="deleteOne" function="true" type="void" deprecated="true">
     798                        <description><![CDATA[Deletes one individual from the gene pool = decreases 'instances' and deletes the genotype if the 'instances' goes to 0.]]></description>
     799                        <arguments>
     800                                <argument name="genotype index" type="integer"/>
     801                        </arguments>
     802                </element>
     803                <element name="copySelected" function="true" type="void" deprecated="true">
     804                        <description><![CDATA[Copies the selected genotype to another group.]]></description>
     805                        <arguments>
     806                                <argument name="groupindex" type="integer"/>
     807                        </arguments>
     808                </element>
     809                <element name="getFromCreature" function="true" type="void" deprecated="true">
     810                        <description><![CDATA[Copies a genotype from the selected creature. The resulting genotype is stored in the static Genotype object detached from the genotype group.]]></description>
     811<arguments/></element>
     812                <element name="getFromCreatureObject" function="true" type="void" deprecated="true">
     813                        <description><![CDATA[Copies a genotype from the creature object passed in argument. The resulting genotype is stored in the static Genotype object detached from the genotype group.]]></description>
     814                        <arguments>
     815                                <argument type="Creature"/>
    736816                        </arguments>
    737817                </element>
     
    739819                        <description><![CDATA[Updates the current Genotype's performance values merging them with the current Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
    740820<arguments/></element>
    741                 <element name="clear" function="true" type="void">
    742                         <description><![CDATA[Removes all gene pools except the first one.]]></description>
     821                <element name="mutateSelected" function="true" type="void" deprecated="true">
     822                        <description><![CDATA[Mutates the selected genotype. The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected.]]></description>
    743823<arguments/></element>
    744                 <element name="clearGroup" function="true" type="void" deprecated="true">
    745                         <description><![CDATA[GenePools[group].clear() is more "object oriented" than GenePools.clearGroup(group)]]></description>
    746                         <arguments>
    747                                 <argument name="index" type="integer"/>
    748                         </arguments>
    749                 </element>
    750                 <element name="copySelected" function="true" type="void" deprecated="true">
    751                         <description><![CDATA[Copies the selected genotype to another group.]]></description>
    752                         <arguments>
    753                                 <argument name="groupindex" type="integer"/>
    754                         </arguments>
    755                 </element>
    756824                <element name="crossoverSelected" function="true" type="void" deprecated="true">
    757825                        <description><![CDATA[Crossovers the selected genotype with another one (from the genotype group). The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected.]]></description>
     
    760828                        </arguments>
    761829                </element>
    762                 <element name="deleteGroup" function="true" type="void">
    763                         <description><![CDATA[Removes a gene pool.]]></description>
    764                         <arguments>
    765                                 <argument name="index" type="integer"/>
    766                         </arguments>
    767                 </element>
    768                 <element name="deleteOne" function="true" type="void" deprecated="true">
    769                         <description><![CDATA[Deletes one individual from the gene pool = decreases 'instances' and deletes the genotype if the 'instances' goes to 0.]]></description>
    770                         <arguments>
    771                                 <argument name="genotype index" type="integer"/>
    772                         </arguments>
    773                 </element>
    774                 <element name="deleteSelected" function="true" type="void" deprecated="true">
    775                         <description><![CDATA[Deletes selected genotype from the gene pool (uses the selected genotype object).]]></description>
     830                <element name="worst" function="true" type="integer" deprecated="true">
     831                        <description><![CDATA[Gets worst genotype index.]]></description>
    776832<arguments/></element>
     833                <element name="random" function="true" type="integer" deprecated="true">
     834                        <description><![CDATA[Gets random genotype index.]]></description>
     835<arguments/></element>
     836                <element name="roulette" function="true" type="integer" deprecated="true">
     837                        <description><![CDATA[Gets fitness-proportional genotype index.]]></description>
     838<arguments/></element>
     839                <element name="revroulette" function="true" type="integer" deprecated="true">
     840                        <description><![CDATA[Get reverse fitness-proportional genotype index.]]></description>
     841<arguments/></element>
     842                <element name="tournament" function="true" type="integer" deprecated="true">
     843                        <description><![CDATA[Gets tournament winner genotype.]]></description>
     844                        <arguments>
     845                                <argument name="genotypes in tournament" type="integer"/>
     846                        </arguments>
     847                </element>
     848                <element name="randomLikeThis" function="true" type="integer" deprecated="true">
     849                        <description><![CDATA[Gets a random genotype index similar to the selected one.]]></description>
     850                        <arguments>
     851                                <argument name="minimum similarity" type="float"/>
     852                        </arguments>
     853                </element>
     854                <element name="likeThisRoulette" function="true" type="integer" deprecated="true">
     855                        <description><![CDATA[Gets a random genotype similar to the selected one, fitness-proportional.]]></description>
     856                        <arguments>
     857                                <argument name="minimum similarity" type="float"/>
     858                        </arguments>
     859                </element>
    777860                <element name="findGenotype" function="true" type="integer" deprecated="true">
    778861                        <description><![CDATA[Finds a genotype matching the current genotype. It only makes sense when the current genotype is a result of the genetic operator.]]></description>
     
    781864                        <description><![CDATA[Finds a genotype matching the selected creature.]]></description>
    782865<arguments/></element>
     866                <element name="addGroup" function="true" type="GenePool">
     867                        <description><![CDATA[Adds a new gene pool.]]></description>
     868                        <arguments>
     869                                <argument name="name" type="string"/>
     870                        </arguments>
     871                </element>
     872                <element name="deleteGroup" function="true" type="void">
     873                        <description><![CDATA[Removes a gene pool.]]></description>
     874                        <arguments>
     875                                <argument name="index" type="integer"/>
     876                        </arguments>
     877                </element>
     878                <element name="clear" function="true" type="void">
     879                        <description><![CDATA[Removes all gene pools except the first one.]]></description>
     880<arguments/></element>
     881                <element name="clearGroup" function="true" type="void" deprecated="true">
     882                        <description><![CDATA[GenePools[group].clear() is more "object oriented" than GenePools.clearGroup(group)]]></description>
     883                        <arguments>
     884                                <argument name="index" type="integer"/>
     885                        </arguments>
     886                </element>
    783887                <element name="get" function="true" type="GenePool">
    784888                        <arguments>
     
    786890                        </arguments>
    787891                </element>
    788                 <element name="getFromCreature" function="true" type="void" deprecated="true">
    789                         <description><![CDATA[Copies a genotype from the selected creature. The resulting genotype is stored in the static Genotype object detached from the genotype group.]]></description>
    790 <arguments/></element>
    791                 <element name="getFromCreatureObject" function="true" type="void" deprecated="true">
    792                         <description><![CDATA[Copies a genotype from the creature object passed in argument. The resulting genotype is stored in the static Genotype object detached from the genotype group.]]></description>
    793                         <arguments>
    794                                 <argument type="Creature"/>
    795                         </arguments>
    796                 </element>
    797                 <element name="likeThisRoulette" function="true" type="integer" deprecated="true">
    798                         <description><![CDATA[Gets a random genotype similar to the selected one, fitness-proportional.]]></description>
    799                         <arguments>
    800                                 <argument name="minimum similarity" type="float"/>
    801                         </arguments>
    802                 </element>
    803                 <element name="mutateSelected" function="true" type="void" deprecated="true">
    804                         <description><![CDATA[Mutates the selected genotype. The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected.]]></description>
    805 <arguments/></element>
    806                 <element name="newGenotype" function="true" type="void" deprecated="true">
    807                         <description><![CDATA[Makes a new genotype from the supplied string and select the genotype. The resulting genotype is stored in the static Genotype object detached from the genotype group. After calling this function GenePools.genotype is -1 indicating that no genotype from the group is selected. (call "copySelected" if you want to add this gentype to the genotype group).]]></description>
    808                         <arguments>
    809                                 <argument name="genotype" type="string"/>
    810                         </arguments>
    811                 </element>
    812                 <element name="random" function="true" type="integer" deprecated="true">
    813                         <description><![CDATA[Gets random genotype index.]]></description>
    814 <arguments/></element>
    815                 <element name="randomLikeThis" function="true" type="integer" deprecated="true">
    816                         <description><![CDATA[Gets a random genotype index similar to the selected one.]]></description>
    817                         <arguments>
    818                                 <argument name="minimum similarity" type="float"/>
    819                         </arguments>
    820                 </element>
    821                 <element name="revroulette" function="true" type="integer" deprecated="true">
    822                         <description><![CDATA[Get reverse fitness-proportional genotype index.]]></description>
    823 <arguments/></element>
    824                 <element name="roulette" function="true" type="integer" deprecated="true">
    825                         <description><![CDATA[Gets fitness-proportional genotype index.]]></description>
    826 <arguments/></element>
    827                 <element name="tournament" function="true" type="integer" deprecated="true">
    828                         <description><![CDATA[Gets tournament winner genotype.]]></description>
    829                         <arguments>
    830                                 <argument name="genotypes in tournament" type="integer"/>
    831                         </arguments>
    832                 </element>
    833                 <element name="worst" function="true" type="integer" deprecated="true">
    834                         <description><![CDATA[Gets worst genotype index.]]></description>
    835 <arguments/></element>
     892                <element name="iterator" type="Object"/>
    836893        </type>
    837894        <type name="GenMan" context="Global context">
    838895<description><![CDATA[Manages various genetic operations, using appropriate operators for the argument genotype format.]]></description>
    839                 <element name="changedProperty" type="integer"/>
    840                 <element name="changedPropertyId" type="string"/>
    841                 <element name="f0_c_del" type="float" min="0" max="100" default="5.0">
    842                         <description><![CDATA[]]></description>
    843                 </element>
    844                 <element name="f0_c_new" type="float" min="0" max="100" default="5.0">
    845                         <description><![CDATA[]]></description>
    846                 </element>
    847                 <element name="f0_c_wei" type="float" min="0" max="100" default="10.0">
    848                         <description><![CDATA[]]></description>
    849                 </element>
    850                 <element name="f0_j_del" type="float" min="0" max="100" default="5.0">
    851                         <description><![CDATA[]]></description>
    852                 </element>
    853                 <element name="f0_j_new" type="float" min="0" max="100" default="5.0">
    854                         <description><![CDATA[]]></description>
    855                 </element>
    856                 <element name="f0_j_rsf" type="float" min="0" max="100" default="10.0">
    857                         <description><![CDATA[]]></description>
    858                 </element>
    859                 <element name="f0_j_stf" type="float" min="0" max="100" default="10.0">
    860                         <description><![CDATA[]]></description>
    861                 </element>
    862                 <element name="f0_j_stm" type="float" min="0" max="100" default="10.0">
    863                         <description><![CDATA[]]></description>
    864                 </element>
    865                 <element name="f0_j_vblu" type="float" min="0" max="100" default="0.0">
    866                         <description><![CDATA[]]></description>
    867                 </element>
    868                 <element name="f0_j_vgrn" type="float" min="0" max="100" default="0.0">
    869                         <description><![CDATA[]]></description>
    870                 </element>
    871                 <element name="f0_j_vred" type="float" min="0" max="100" default="0.0">
    872                         <description><![CDATA[]]></description>
    873                 </element>
    874                 <element name="f0_n_del" type="float" min="0" max="100" default="5.0">
    875                         <description><![CDATA[]]></description>
    876                 </element>
    877                 <element name="f0_n_new" type="float" min="0" max="100" default="5.0">
    878                         <description><![CDATA[]]></description>
    879                 </element>
    880                 <element name="f0_n_prp" type="float" min="0" max="100" default="10.0">
    881                         <description><![CDATA[]]></description>
    882                 </element>
    883                 <element name="f0_nodel_tag" type="integer" min="0" max="1" default="1">
    884                         <description><![CDATA[You can tag elements using their 'i' field and the i="mi=d" tag.
    885 Mutations will not delete such elements.
    886 The i="mi=dm" combination is allowed.]]></description>
    887                 </element>
    888                 <element name="f0_nomod_tag" type="integer" min="0" max="1" default="1">
    889                         <description><![CDATA[You can tag elements using their 'i' field and the i="mi=m" tag.
    890 Mutations will not modify properties of such elements.
    891 The i="mi=md" combination is allowed.]]></description>
    892                 </element>
    893                 <element name="f0_p_asm" type="float" min="0" max="100" default="10.0">
    894                         <description><![CDATA[]]></description>
    895                 </element>
    896                 <element name="f0_p_del" type="float" min="0" max="100" default="5.0">
    897                         <description><![CDATA[]]></description>
    898                 </element>
    899                 <element name="f0_p_frc" type="float" min="0" max="100" default="10.0">
    900                         <description><![CDATA[]]></description>
    901                 </element>
    902                 <element name="f0_p_ing" type="float" min="0" max="100" default="10.0">
    903                         <description><![CDATA[]]></description>
    904                 </element>
    905                 <element name="f0_p_mas" type="float" min="0" max="100" default="10.0">
    906                         <description><![CDATA[]]></description>
    907                 </element>
    908                 <element name="f0_p_new" type="float" min="0" max="100" default="5.0">
    909                         <description><![CDATA[]]></description>
    910                 </element>
    911                 <element name="f0_p_pos" type="float" min="0" max="100" default="10.0">
    912                         <description><![CDATA[]]></description>
    913                 </element>
    914                 <element name="f0_p_swp" type="float" min="0" max="100" default="10.0">
    915                         <description><![CDATA[]]></description>
    916                 </element>
    917                 <element name="f0_p_vsiz" type="float" min="0" max="100" default="0.0">
    918                         <description><![CDATA[]]></description>
    919                 </element>
    920                 <element name="f1_mut_exmod" type="string">
    921                         <description><![CDATA[Modifiers that will not be added nor deleted during mutation
    922 (all: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh)]]></description>
    923                 </element>
    924                 <element name="f1_nmConn" type="float" min="0" max="100" default="0.1">
    925                         <description><![CDATA[]]></description>
    926                 </element>
    927                 <element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
    928                         <description><![CDATA[Adds a (connected) neuron or removes a neuron]]></description>
    929                 </element>
    930                 <element name="f1_nmProp" type="float" min="0" max="100" default="0.1">
    931                         <description><![CDATA[]]></description>
    932                 </element>
    933                 <element name="f1_nmVal" type="float" min="0" max="100" default="0.05"/>
    934                 <element name="f1_nmWei" type="float" min="0" max="100" default="1.0"/>
    935                 <element name="f1_smComma" type="float" min="0" max="100" default="0.02"/>
    936                 <element name="f1_smJunct" type="float" min="0" max="100" default="0.02"/>
    937                 <element name="f1_smModif" type="float" min="0" max="100" default="0.1">
    938                         <description><![CDATA[Modifiers: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh]]></description>
    939                 </element>
    940                 <element name="f1_smX" type="float" min="0" max="100" default="0.05"/>
    941                 <element name="f1_xo_propor" type="integer" min="0" max="1" default="1">
    942                         <description><![CDATA[Cross over (exchange) corresponding segments of the two parent genotypes?
    943 
    944 f1 uses a two-point crossing over.
    945 If this option is turned on, cut points will be selected proportionally to neural genes.
    946 Thus, if both parents have the same number of neurons, then this will be preserved in their children.]]></description>
    947                 </element>
    948                 <element name="f2_mutAddOper" type="float" min="0" max="1" default="0.4">
    949                         <description><![CDATA[]]></description>
    950                 </element>
    951                 <element name="f2_mutConnElem" type="float" min="0" max="1" default="0.33">
    952                         <description><![CDATA[]]></description>
    953                 </element>
    954                 <element name="f2_mutDelOper" type="float" min="0" max="1" default="0.1">
    955                         <description><![CDATA[]]></description>
    956                 </element>
    957                 <element name="f2_mutHandleOper" type="float" min="0" max="1" default="0.3">
    958                         <description><![CDATA[]]></description>
    959                 </element>
    960                 <element name="f2_mutJointElem" type="float" min="0" max="1" default="0.33">
    961                         <description><![CDATA[]]></description>
    962                 </element>
    963                 <element name="f2_mutNeuroElem" type="float" min="0" max="1" default="0.33">
    964                         <description><![CDATA[]]></description>
    965                 </element>
    966                 <element name="f2_mutPropOper" type="float" min="0" max="1" default="0.2">
    967                         <description><![CDATA[]]></description>
    968                 </element>
    969                 <element name="f3_mutDelIns" type="float" min="0" max="1" default="0.1">
    970                         <description><![CDATA[]]></description>
    971                 </element>
    972                 <element name="f3_mutDelInsLength" type="integer" min="1" max="100" default="5">
    973                         <description><![CDATA[]]></description>
    974                 </element>
    975                 <element name="f3_mutDelInsPerChar" type="float" min="0" max="1" default="0.05">
    976                         <description><![CDATA[]]></description>
    977                 </element>
    978                 <element name="f3_mutDuplication" type="float" min="0" max="1" default="0.05">
    979                         <description><![CDATA[]]></description>
    980                 </element>
    981                 <element name="f3_mutSubstitution" type="float" min="0" max="1" default="0.6">
    982                         <description><![CDATA[]]></description>
    983                 </element>
    984                 <element name="f3_mutSubstPerChar" type="float" min="0" max="1" default="0.1">
    985                         <description><![CDATA[]]></description>
    986                 </element>
    987                 <element name="f3_mutTranslocation" type="float" min="0" max="1" default="0.15">
    988                         <description><![CDATA[]]></description>
    989                 </element>
    990                 <element name="f3_xovCrossingOver" type="float" min="0" max="1" default="0.2">
    991                         <description><![CDATA[]]></description>
    992                 </element>
    993                 <element name="f3_xovGeneTransfer" type="float" min="0" max="1" default="0.8">
    994                         <description><![CDATA[]]></description>
    995                 </element>
    996                 <element name="f4_mut_add" type="float" min="0" max="100" default="50.0">
    997                         <description><![CDATA[mutation: probability of adding a node]]></description>
    998                 </element>
    999                 <element name="f4_mut_add_conn" type="float" min="0" max="100" default="15.0">
    1000                         <description><![CDATA[add node mutation: probability of adding a neural connection]]></description>
    1001                 </element>
    1002                 <element name="f4_mut_add_div" type="float" min="0" max="100" default="20.0">
    1003                         <description><![CDATA[add node mutation: probability of adding a division]]></description>
    1004                 </element>
    1005                 <element name="f4_mut_add_neupar" type="float" min="0" max="100" default="5.0">
    1006                         <description><![CDATA[add node mutation: probability of adding a neuron property/modifier]]></description>
    1007                 </element>
    1008                 <element name="f4_mut_add_rep" type="float" min="0" max="100" default="10.0">
    1009                         <description><![CDATA[add node mutation: probability of adding a repetition]]></description>
    1010                 </element>
    1011                 <element name="f4_mut_add_simp" type="float" min="0" max="100" default="50.0">
    1012                         <description><![CDATA[add node mutation: probability of adding a random, simple gene]]></description>
    1013                 </element>
    1014                 <element name="f4_mut_del" type="float" min="0" max="100" default="20.0">
    1015                         <description><![CDATA[mutation: probability of deleting a node]]></description>
    1016                 </element>
    1017                 <element name="f4_mut_mod" type="float" min="0" max="100" default="30.0">
    1018                         <description><![CDATA[mutation: probability of changing a node]]></description>
    1019                 </element>
    1020                 <element name="f9_mut" type="float" min="0" max="1" default="0.1">
    1021                         <description><![CDATA[How many genes should be mutated during single mutation (1=all genes, 0.1=ten percent)]]></description>
    1022                 </element>
    1023                 <element name="fF_xover" type="float" min="0" max="0.5" default="0.5">
    1024                         <description><![CDATA[0.5 => children are averaged parents.
    1025 0.2 => children are only 20% different from parents.
    1026 0 => each child is identical to one parent (no crossover).]]></description>
    1027                 </element>
    1028                 <element name="gen_extmutinfo" type="integer" min="0" max="2" default="0">
    1029                         <description><![CDATA[If active, information about employed mutation method will be stored in the 'info' field of each mutated genotype.]]></description>
     896                <element name="gen_hist" type="integer" min="0" max="1" default="0">
     897                        <description><![CDATA[Required for phylogenetic analysis]]></description>
    1030898                </element>
    1031899                <element name="gen_hilite" type="integer" min="0" max="1" default="1">
     
    1033901(slows down viewing/editing of huge genotypes)]]></description>
    1034902                </element>
    1035                 <element name="gen_hist" type="integer" min="0" max="1" default="0">
    1036                         <description><![CDATA[Required for phylogenetic analysis]]></description>
    1037                 </element>
     903                <element name="gen_extmutinfo" type="integer" min="0" max="2" default="0">
     904                        <description><![CDATA[If active, information about employed mutation method will be stored in the 'info' field of each mutated genotype.]]></description>
     905                </element>
     906                <element name="operReport" function="true" type="void">
     907                        <description><![CDATA[Show available genetic operators]]></description>
     908<arguments/></element>
     909                <element name="toHTML" function="true" type="string">
     910                        <description><![CDATA[returns genotype expressed as colored HTML]]></description>
     911                        <arguments>
     912                                <argument type="string"/>
     913                        </arguments>
     914                </element>
     915                <element name="toHTMLshort" function="true" type="string">
     916                        <description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
     917                        <arguments>
     918                                <argument type="string"/>
     919                        </arguments>
     920                </element>
     921                <element name="validate" function="true" type="Geno">
     922                        <description><![CDATA[returns validated (if possible) Geno object from supplied Geno]]></description>
     923                        <arguments>
     924                                <argument type="Geno"/>
     925                        </arguments>
     926                </element>
     927                <element name="mutate" function="true" type="Geno">
     928                        <description><![CDATA[returns mutated Geno object from supplied Geno]]></description>
     929                        <arguments>
     930                                <argument type="Geno"/>
     931                        </arguments>
     932                </element>
     933                <element name="crossOver" function="true" type="Geno">
     934                        <description><![CDATA[returns crossed over genotype]]></description>
     935                        <arguments>
     936                                <argument type="Geno"/>
     937                                <argument type="Geno"/>
     938                        </arguments>
     939                </element>
     940                <element name="getSimplest" function="true" type="Geno">
     941                        <description><![CDATA[returns the simplest genotype for a given encoding (format). 0 means f0, 4 means f4, etc.]]></description>
     942                        <arguments>
     943                                <argument name="format" type="integer"/>
     944                        </arguments>
     945                </element>
     946                <element name="clear" function="true"/>
     947                <element name="add" function="true"/>
     948                <element name="remove" function="true"/>
     949                <element name="addGroup" function="true"/>
     950                <element name="removeGroup" function="true"/>
     951                <element name="changedProperty" type="integer"/>
     952                <element name="changedPropertyId" type="string"/>
    1038953                <element name="genoper_f0" type="integer" min="0" max="0">
    1039954                        <description><![CDATA[]]></description>
     
    13031218   time (t) float 0..6.28319]]></description>
    13041219                </element>
    1305                 <element name="add" function="true"/>
    1306                 <element name="addGroup" function="true"/>
    1307                 <element name="clear" function="true"/>
    1308                 <element name="crossOver" function="true" type="Geno">
    1309                         <description><![CDATA[returns crossed over genotype]]></description>
    1310                         <arguments>
    1311                                 <argument type="Geno"/>
    1312                                 <argument type="Geno"/>
    1313                         </arguments>
    1314                 </element>
    1315                 <element name="getSimplest" function="true" type="Geno">
    1316                         <description><![CDATA[returns the simplest genotype for a given encoding (format). 0 means f0, 4 means f4, etc.]]></description>
    1317                         <arguments>
    1318                                 <argument name="format" type="integer"/>
    1319                         </arguments>
    1320                 </element>
    1321                 <element name="mutate" function="true" type="Geno">
    1322                         <description><![CDATA[returns mutated Geno object from supplied Geno]]></description>
    1323                         <arguments>
    1324                                 <argument type="Geno"/>
    1325                         </arguments>
    1326                 </element>
    1327                 <element name="operReport" function="true" type="void">
    1328                         <description><![CDATA[Show available genetic operators]]></description>
    1329 <arguments/></element>
    1330                 <element name="remove" function="true"/>
    1331                 <element name="removeGroup" function="true"/>
    1332                 <element name="toHTML" function="true" type="string">
    1333                         <description><![CDATA[returns genotype expressed as colored HTML]]></description>
    1334                         <arguments>
    1335                                 <argument type="string"/>
    1336                         </arguments>
    1337                 </element>
    1338                 <element name="toHTMLshort" function="true" type="string">
    1339                         <description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
    1340                         <arguments>
    1341                                 <argument type="string"/>
    1342                         </arguments>
    1343                 </element>
    1344                 <element name="validate" function="true" type="Geno">
    1345                         <description><![CDATA[returns validated (if possible) Geno object from supplied Geno]]></description>
    1346                         <arguments>
    1347                                 <argument type="Geno"/>
    1348                         </arguments>
     1220                <element name="f0_nodel_tag" type="integer" min="0" max="1" default="1">
     1221                        <description><![CDATA[You can tag elements using their 'i' field and the i="mi=d" tag.
     1222Mutations will not delete such elements.
     1223The i="mi=dm" combination is allowed.]]></description>
     1224                </element>
     1225                <element name="f0_nomod_tag" type="integer" min="0" max="1" default="1">
     1226                        <description><![CDATA[You can tag elements using their 'i' field and the i="mi=m" tag.
     1227Mutations will not modify properties of such elements.
     1228The i="mi=md" combination is allowed.]]></description>
     1229                </element>
     1230                <element name="f0_p_new" type="float" min="0" max="100" default="5.0">
     1231                        <description><![CDATA[]]></description>
     1232                </element>
     1233                <element name="f0_p_del" type="float" min="0" max="100" default="5.0">
     1234                        <description><![CDATA[]]></description>
     1235                </element>
     1236                <element name="f0_p_swp" type="float" min="0" max="100" default="10.0">
     1237                        <description><![CDATA[]]></description>
     1238                </element>
     1239                <element name="f0_p_pos" type="float" min="0" max="100" default="10.0">
     1240                        <description><![CDATA[]]></description>
     1241                </element>
     1242                <element name="f0_p_mas" type="float" min="0" max="100" default="10.0">
     1243                        <description><![CDATA[]]></description>
     1244                </element>
     1245                <element name="f0_p_frc" type="float" min="0" max="100" default="10.0">
     1246                        <description><![CDATA[]]></description>
     1247                </element>
     1248                <element name="f0_p_ing" type="float" min="0" max="100" default="10.0">
     1249                        <description><![CDATA[]]></description>
     1250                </element>
     1251                <element name="f0_p_asm" type="float" min="0" max="100" default="10.0">
     1252                        <description><![CDATA[]]></description>
     1253                </element>
     1254                <element name="f0_p_vsiz" type="float" min="0" max="100" default="0.0">
     1255                        <description><![CDATA[]]></description>
     1256                </element>
     1257                <element name="f0_j_new" type="float" min="0" max="100" default="5.0">
     1258                        <description><![CDATA[]]></description>
     1259                </element>
     1260                <element name="f0_j_del" type="float" min="0" max="100" default="5.0">
     1261                        <description><![CDATA[]]></description>
     1262                </element>
     1263                <element name="f0_j_stm" type="float" min="0" max="100" default="10.0">
     1264                        <description><![CDATA[]]></description>
     1265                </element>
     1266                <element name="f0_j_stf" type="float" min="0" max="100" default="10.0">
     1267                        <description><![CDATA[]]></description>
     1268                </element>
     1269                <element name="f0_j_rsf" type="float" min="0" max="100" default="10.0">
     1270                        <description><![CDATA[]]></description>
     1271                </element>
     1272                <element name="f0_j_vred" type="float" min="0" max="100" default="0.0">
     1273                        <description><![CDATA[]]></description>
     1274                </element>
     1275                <element name="f0_j_vgrn" type="float" min="0" max="100" default="0.0">
     1276                        <description><![CDATA[]]></description>
     1277                </element>
     1278                <element name="f0_j_vblu" type="float" min="0" max="100" default="0.0">
     1279                        <description><![CDATA[]]></description>
     1280                </element>
     1281                <element name="f0_n_new" type="float" min="0" max="100" default="5.0">
     1282                        <description><![CDATA[]]></description>
     1283                </element>
     1284                <element name="f0_n_del" type="float" min="0" max="100" default="5.0">
     1285                        <description><![CDATA[]]></description>
     1286                </element>
     1287                <element name="f0_n_prp" type="float" min="0" max="100" default="10.0">
     1288                        <description><![CDATA[]]></description>
     1289                </element>
     1290                <element name="f0_c_new" type="float" min="0" max="100" default="5.0">
     1291                        <description><![CDATA[]]></description>
     1292                </element>
     1293                <element name="f0_c_del" type="float" min="0" max="100" default="5.0">
     1294                        <description><![CDATA[]]></description>
     1295                </element>
     1296                <element name="f0_c_wei" type="float" min="0" max="100" default="10.0">
     1297                        <description><![CDATA[]]></description>
     1298                </element>
     1299                <element name="f1_xo_propor" type="integer" min="0" max="1" default="1">
     1300                        <description><![CDATA[Cross over (exchange) corresponding segments of the two parent genotypes?
     1301
     1302f1 uses a two-point crossing over.
     1303If this option is turned on, cut points will be selected proportionally to neural genes.
     1304Thus, if both parents have the same number of neurons, then this will be preserved in their children.]]></description>
     1305                </element>
     1306                <element name="f1_smX" type="float" min="0" max="100" default="0.05"/>
     1307                <element name="f1_smJunct" type="float" min="0" max="100" default="0.02"/>
     1308                <element name="f1_smComma" type="float" min="0" max="100" default="0.02"/>
     1309                <element name="f1_smModif" type="float" min="0" max="100" default="0.1">
     1310                        <description><![CDATA[Modifiers: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh]]></description>
     1311                </element>
     1312                <element name="f1_mut_exmod" type="string">
     1313                        <description><![CDATA[Modifiers that will not be added nor deleted during mutation
     1314(all: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh)]]></description>
     1315                </element>
     1316                <element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
     1317                        <description><![CDATA[Adds a (connected) neuron or removes a neuron]]></description>
     1318                </element>
     1319                <element name="f1_nmConn" type="float" min="0" max="100" default="0.1">
     1320                        <description><![CDATA[]]></description>
     1321                </element>
     1322                <element name="f1_nmProp" type="float" min="0" max="100" default="0.1">
     1323                        <description><![CDATA[]]></description>
     1324                </element>
     1325                <element name="f1_nmWei" type="float" min="0" max="100" default="1.0"/>
     1326                <element name="f1_nmVal" type="float" min="0" max="100" default="0.05"/>
     1327                <element name="f2_mutAddOper" type="float" min="0" max="1" default="0.4">
     1328                        <description><![CDATA[]]></description>
     1329                </element>
     1330                <element name="f2_mutJointElem" type="float" min="0" max="1" default="0.33">
     1331                        <description><![CDATA[]]></description>
     1332                </element>
     1333                <element name="f2_mutNeuroElem" type="float" min="0" max="1" default="0.33">
     1334                        <description><![CDATA[]]></description>
     1335                </element>
     1336                <element name="f2_mutConnElem" type="float" min="0" max="1" default="0.33">
     1337                        <description><![CDATA[]]></description>
     1338                </element>
     1339                <element name="f2_mutDelOper" type="float" min="0" max="1" default="0.1">
     1340                        <description><![CDATA[]]></description>
     1341                </element>
     1342                <element name="f2_mutHandleOper" type="float" min="0" max="1" default="0.3">
     1343                        <description><![CDATA[]]></description>
     1344                </element>
     1345                <element name="f2_mutPropOper" type="float" min="0" max="1" default="0.2">
     1346                        <description><![CDATA[]]></description>
     1347                </element>
     1348                <element name="f3_mutSubstitution" type="float" min="0" max="1" default="0.6">
     1349                        <description><![CDATA[]]></description>
     1350                </element>
     1351                <element name="f3_mutSubstPerChar" type="float" min="0" max="1" default="0.1">
     1352                        <description><![CDATA[]]></description>
     1353                </element>
     1354                <element name="f3_mutDelIns" type="float" min="0" max="1" default="0.1">
     1355                        <description><![CDATA[]]></description>
     1356                </element>
     1357                <element name="f3_mutDelInsPerChar" type="float" min="0" max="1" default="0.05">
     1358                        <description><![CDATA[]]></description>
     1359                </element>
     1360                <element name="f3_mutDelInsLength" type="integer" min="1" max="100" default="5">
     1361                        <description><![CDATA[]]></description>
     1362                </element>
     1363                <element name="f3_mutDuplication" type="float" min="0" max="1" default="0.05">
     1364                        <description><![CDATA[]]></description>
     1365                </element>
     1366                <element name="f3_mutTranslocation" type="float" min="0" max="1" default="0.15">
     1367                        <description><![CDATA[]]></description>
     1368                </element>
     1369                <element name="f3_xovGeneTransfer" type="float" min="0" max="1" default="0.8">
     1370                        <description><![CDATA[]]></description>
     1371                </element>
     1372                <element name="f3_xovCrossingOver" type="float" min="0" max="1" default="0.2">
     1373                        <description><![CDATA[]]></description>
     1374                </element>
     1375                <element name="f4_mut_add" type="float" min="0" max="100" default="50.0">
     1376                        <description><![CDATA[mutation: probability of adding a node]]></description>
     1377                </element>
     1378                <element name="f4_mut_add_div" type="float" min="0" max="100" default="20.0">
     1379                        <description><![CDATA[add node mutation: probability of adding a division]]></description>
     1380                </element>
     1381                <element name="f4_mut_add_conn" type="float" min="0" max="100" default="15.0">
     1382                        <description><![CDATA[add node mutation: probability of adding a neural connection]]></description>
     1383                </element>
     1384                <element name="f4_mut_add_neupar" type="float" min="0" max="100" default="5.0">
     1385                        <description><![CDATA[add node mutation: probability of adding a neuron property/modifier]]></description>
     1386                </element>
     1387                <element name="f4_mut_add_rep" type="float" min="0" max="100" default="10.0">
     1388                        <description><![CDATA[add node mutation: probability of adding a repetition]]></description>
     1389                </element>
     1390                <element name="f4_mut_add_simp" type="float" min="0" max="100" default="50.0">
     1391                        <description><![CDATA[add node mutation: probability of adding a random, simple gene]]></description>
     1392                </element>
     1393                <element name="f4_mut_del" type="float" min="0" max="100" default="20.0">
     1394                        <description><![CDATA[mutation: probability of deleting a node]]></description>
     1395                </element>
     1396                <element name="f4_mut_mod" type="float" min="0" max="100" default="30.0">
     1397                        <description><![CDATA[mutation: probability of changing a node]]></description>
     1398                </element>
     1399                <element name="f9_mut" type="float" min="0" max="1" default="0.1">
     1400                        <description><![CDATA[How many genes should be mutated during single mutation (1=all genes, 0.1=ten percent)]]></description>
     1401                </element>
     1402                <element name="fF_xover" type="float" min="0" max="0.5" default="0.5">
     1403                        <description><![CDATA[0.5 => children are averaged parents.
     14040.2 => children are only 20% different from parents.
     14050 => each child is identical to one parent (no crossover).]]></description>
    13491406                </element>
    13501407        </type>
     
    13541411                        <description><![CDATA[]]></description>
    13551412                </element>
     1413                <element name="gen_mvalid" type="integer">
     1414                        <description><![CDATA[]]></description>
     1415                </element>
     1416                <element name="gen_mvalidated" type="integer">
     1417                        <description><![CDATA[]]></description>
     1418                </element>
     1419                <element name="gen_minvalid" type="integer">
     1420                        <description><![CDATA[couldn't be repaired]]></description>
     1421                </element>
    13561422                <element name="gen_mfailed" type="integer">
    13571423                        <description><![CDATA[couldn't be performed]]></description>
    13581424                </element>
    1359                 <element name="gen_minvalid" type="integer">
     1425                <element name="gen_xovalid" type="integer">
     1426                        <description><![CDATA[]]></description>
     1427                </element>
     1428                <element name="gen_xovalidated" type="integer">
     1429                        <description><![CDATA[]]></description>
     1430                </element>
     1431                <element name="gen_xoinvalid" type="integer">
    13601432                        <description><![CDATA[couldn't be repaired]]></description>
     1433                </element>
     1434                <element name="gen_xofailed" type="integer">
     1435                        <description><![CDATA[couldn't be performed]]></description>
    13611436                </element>
    13621437                <element name="gen_mutimpr" type="float">
    13631438                        <description><![CDATA[total cumulative mutation change]]></description>
    13641439                </element>
    1365                 <element name="gen_mvalid" type="integer">
    1366                         <description><![CDATA[]]></description>
    1367                 </element>
    1368                 <element name="gen_mvalidated" type="integer">
    1369                         <description><![CDATA[]]></description>
    1370                 </element>
    1371                 <element name="gen_xofailed" type="integer">
    1372                         <description><![CDATA[couldn't be performed]]></description>
    1373                 </element>
    13741440                <element name="gen_xoimpr" type="float">
    13751441                        <description><![CDATA[total cumulative crossover change]]></description>
    1376                 </element>
    1377                 <element name="gen_xoinvalid" type="integer">
    1378                         <description><![CDATA[couldn't be repaired]]></description>
    1379                 </element>
    1380                 <element name="gen_xovalid" type="integer">
    1381                         <description><![CDATA[]]></description>
    1382                 </element>
    1383                 <element name="gen_xovalidated" type="integer">
    1384                         <description><![CDATA[]]></description>
    13851442                </element>
    13861443                <element name="clrstats" function="true" type="void">
     
    13911448<description><![CDATA[All information about a single genotype.
    13921449This is a genetics-only object which does not contain any performance data. See also: Genotype class]]></description>
    1393                 <element name="autoname" type="string"/>
    1394                 <element name="f0genotype" type="string">
    1395                         <description><![CDATA[converted to f0 genotype]]></description>
    1396                 </element>
    1397                 <element name="format" type="integer">
    1398                         <description><![CDATA[Genotype format]]></description>
    1399                 </element>
    1400                 <element name="genotype" type="string"/>
    1401                 <element name="info" type="string">
    1402                         <description><![CDATA[Additional information or comments]]></description>
    1403                 </element>
    1404                 <element name="isValid" type="integer" min="0" max="1"/>
    14051450                <element name="name" type="string"/>
    14061451                <element name="rawgenotype" type="string">
    14071452                        <description><![CDATA[Genotype, excluding the format specifier]]></description>
    14081453                </element>
    1409                 <element name="toVector" type="Vector"/>
     1454                <element name="info" type="string">
     1455                        <description><![CDATA[Additional information or comments]]></description>
     1456                </element>
     1457                <element name="format" type="integer">
     1458                        <description><![CDATA[Genotype format]]></description>
     1459                </element>
     1460                <element name="genotype" type="string"/>
     1461                <element name="isValid" type="integer" min="0" max="1"/>
    14101462                <element name="getConverted" function="true" type="Geno">
    14111463                        <arguments>
     
    14131465                        </arguments>
    14141466                </element>
     1467                <element name="f0genotype" type="string">
     1468                        <description><![CDATA[converted to f0 genotype]]></description>
     1469                </element>
    14151470                <element name="new" function="true" type="Geno"><arguments/></element>
     1471                <element name="newFromString" function="true" type="Geno">
     1472                        <arguments>
     1473                                <argument name="genotype" type="string"/>
     1474                        </arguments>
     1475                </element>
    14161476                <element name="newFrom" function="true" type="Geno">
    14171477                        <arguments>
     
    14221482                        </arguments>
    14231483                </element>
    1424                 <element name="newFromString" function="true" type="Geno">
    1425                         <arguments>
    1426                                 <argument name="genotype" type="string"/>
    1427                         </arguments>
    1428                 </element>
     1484                <element name="autoname" type="string"/>
     1485                <element name="toVector" type="Vector"/>
    14291486                <element name="newFromVector" function="true" type="Geno">
    14301487                        <arguments>
     
    14361493<description><![CDATA[A Genotype with the associated performance information. Adding genotypes to GenePool makes them accessible in Framsticks GUI and enables the use of GenePool selection methods.
    14371494Before version 4.0rc4 the static Genotype object was used in functions operating on the "selected" genotype. This is now deprecated as all operations can be performed using the more convenient direct access (see GenePools).]]></description>
    1438                 <element name="convtrace1" type="string"/>
     1495                <element name="name" type="string"/>
     1496                <element name="genotype" type="string"/>
     1497                <element name="info" type="string">
     1498                        <description><![CDATA[Additional information or comments]]></description>
     1499                </element>
     1500                <element name="simi" type="float">
     1501                        <description><![CDATA[Read about details:
     1502http://www.framsticks.com/node/795
     1503http://www.framsticks.com/node/890]]></description>
     1504                </element>
     1505                <element name="energ0" type="float"/>
     1506                <element name="strsiz" type="float"/>
     1507                <element name="strjoints" type="float"/>
     1508                <element name="nnsiz" type="float"/>
     1509                <element name="nncon" type="float"/>
     1510                <element name="numparts" type="float"/>
     1511                <element name="numjoints" type="float"/>
     1512                <element name="numneurons" type="float"/>
     1513                <element name="numconnections" type="float"/>
     1514                <element name="num" type="integer"/>
     1515                <element name="gnum" type="integer"/>
     1516                <element name="popsiz" type="integer"/>
     1517                <element name="instances" type="integer">
     1518                        <description><![CDATA[Copies of this genotype]]></description>
     1519                </element>
     1520                <element name="lifespan" type="float">
     1521                        <description><![CDATA[Average life span]]></description>
     1522                </element>
     1523                <element name="velocity" type="float">
     1524                        <description><![CDATA[Average velocity]]></description>
     1525                </element>
    14391526                <element name="distance" type="float"/>
    1440                 <element name="energ0" type="float"/>
    1441                 <element name="f0genotype" type="string">
    1442                         <description><![CDATA[converted to f0 genotype]]></description>
    1443                 </element>
     1527                <element name="vertvel" type="float"/>
     1528                <element name="vertpos" type="float"/>
    14441529                <element name="fit" type="float"/>
    14451530                <element name="fit2" type="float">
    14461531                        <description><![CDATA[Fitness shifted by (avg-n*stddev)]]></description>
    14471532                </element>
     1533                <element name="f0genotype" type="string">
     1534                        <description><![CDATA[converted to f0 genotype]]></description>
     1535                </element>
     1536                <element name="convtrace1" type="string"/>
     1537                <element name="user1" type="untyped"/>
     1538                <element name="user2" type="untyped"/>
     1539                <element name="user3" type="untyped"/>
     1540                <element name="mutate" function="true" type="void"><arguments/></element>
     1541                <element name="isValid" type="integer" min="0" max="1"/>
     1542                <element name="getNormalized" function="true" type="float">
     1543                        <arguments>
     1544                                <argument name="property name or index" type="untyped"/>
     1545                        </arguments>
     1546                </element>
     1547                <element name="geno" type="Geno">
     1548                        <description><![CDATA[Geno object for this Genotype]]></description>
     1549                </element>
     1550                <element name="uid" type="string">
     1551                        <description><![CDATA[Unique identifier]]></description>
     1552                </element>
     1553                <element name="getModel" function="true" type="Model"><arguments/></element>
     1554                <element name="splitInstances" function="true" type="void"><arguments/></element>
     1555                <element name="newFromString" function="true" type="Genotype">
     1556                        <arguments>
     1557                                <argument name="genotype" type="string"/>
     1558                        </arguments>
     1559                </element>
     1560                <element name="newFromGeno" function="true" type="Genotype">
     1561                        <arguments>
     1562                                <argument name="geno" type="Geno"/>
     1563                        </arguments>
     1564                </element>
     1565                <element name="newFromCreature" function="true" type="Genotype">
     1566                        <arguments>
     1567                                <argument name="creature" type="Creature"/>
     1568                        </arguments>
     1569                </element>
     1570                <element name="addPerformanceFromCreature" function="true" type="void">
     1571                        <description><![CDATA[Updates the Genotype's performance values merging them with the supplied Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
     1572                        <arguments>
     1573                                <argument type="Creature"/>
     1574                        </arguments>
     1575                </element>
     1576                <element name="moveTo" function="true" type="void">
     1577                        <description><![CDATA[the genotype is removed from its current pool when pool=null]]></description>
     1578                        <arguments>
     1579                                <argument name="pool" type="GenePool"/>
     1580                        </arguments>
     1581                </element>
     1582                <element name="copyTo" function="true" type="Genotype">
     1583                        <description><![CDATA[returns the duplicate genotype, created in the target pool]]></description>
     1584                        <arguments>
     1585                                <argument name="pool" type="GenePool"/>
     1586                        </arguments>
     1587                </element>
     1588                <element name="delete" function="true" type="void"><arguments/></element>
     1589                <element name="deleteOne" function="true" type="void">
     1590                        <description><![CDATA[]]></description>
     1591<arguments/></element>
    14481592                <element name="genepool" type="untyped">
    14491593                        <description><![CDATA[GenePool object or null when not in pool]]></description>
    14501594                </element>
    1451                 <element name="geno" type="Geno">
    1452                         <description><![CDATA[Geno object for this Genotype]]></description>
    1453                 </element>
    1454                 <element name="genotype" type="string"/>
    1455                 <element name="gnum" type="integer"/>
    14561595                <element name="index" type="integer">
    14571596                        <description><![CDATA[-1 when not in pool.
    14581597Note that the index changes depending on the current genotype position in the pool. Use Genotype.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
    14591598                </element>
    1460                 <element name="info" type="string">
    1461                         <description><![CDATA[Additional information or comments]]></description>
    1462                 </element>
    1463                 <element name="instances" type="integer">
    1464                         <description><![CDATA[Copies of this genotype]]></description>
    1465                 </element>
    1466                 <element name="isValid" type="integer" min="0" max="1"/>
    1467                 <element name="lifespan" type="float">
    1468                         <description><![CDATA[Average life span]]></description>
    1469                 </element>
    1470                 <element name="name" type="string"/>
    1471                 <element name="nncon" type="float"/>
    1472                 <element name="nnsiz" type="float"/>
    1473                 <element name="num" type="integer"/>
    1474                 <element name="numconnections" type="float"/>
    1475                 <element name="numjoints" type="float"/>
    1476                 <element name="numneurons" type="float"/>
    1477                 <element name="numparts" type="float"/>
    1478                 <element name="popsiz" type="integer"/>
    1479                 <element name="simi" type="float"/>
    1480                 <element name="strjoints" type="float"/>
    1481                 <element name="strsiz" type="float"/>
    1482                 <element name="uid" type="string">
    1483                         <description><![CDATA[Unique identifier]]></description>
    1484                 </element>
    1485                 <element name="user1" type="untyped"/>
    1486                 <element name="user2" type="untyped"/>
    1487                 <element name="user3" type="untyped"/>
    1488                 <element name="velocity" type="float">
    1489                         <description><![CDATA[Average velocity]]></description>
    1490                 </element>
    1491                 <element name="vertpos" type="float"/>
    1492                 <element name="vertvel" type="float"/>
    1493                 <element name="addPerformanceFromCreature" function="true" type="void">
    1494                         <description><![CDATA[Updates the Genotype's performance values merging them with the supplied Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
    1495                         <arguments>
    1496                                 <argument type="Creature"/>
    1497                         </arguments>
    1498                 </element>
    1499                 <element name="copyTo" function="true" type="Genotype">
    1500                         <description><![CDATA[returns the duplicate genotype, created in the target pool]]></description>
    1501                         <arguments>
    1502                                 <argument name="pool" type="GenePool"/>
    1503                         </arguments>
    1504                 </element>
    1505                 <element name="delete" function="true" type="void"><arguments/></element>
    1506                 <element name="deleteOne" function="true" type="void">
    1507                         <description><![CDATA[]]></description>
    1508 <arguments/></element>
    1509                 <element name="getModel" function="true" type="Model"><arguments/></element>
    1510                 <element name="getNormalized" function="true" type="float">
    1511                         <arguments>
    1512                                 <argument name="property name or index" type="untyped"/>
    1513                         </arguments>
    1514                 </element>
    1515                 <element name="moveTo" function="true" type="void">
    1516                         <description><![CDATA[the genotype is removed from its current pool when pool=null]]></description>
    1517                         <arguments>
    1518                                 <argument name="pool" type="GenePool"/>
    1519                         </arguments>
    1520                 </element>
    1521                 <element name="mutate" function="true" type="void"><arguments/></element>
    1522                 <element name="newFromCreature" function="true" type="Genotype">
    1523                         <arguments>
    1524                                 <argument name="creature" type="Creature"/>
    1525                         </arguments>
    1526                 </element>
    1527                 <element name="newFromGeno" function="true" type="Genotype">
    1528                         <arguments>
    1529                                 <argument name="geno" type="Geno"/>
    1530                         </arguments>
    1531                 </element>
    1532                 <element name="newFromString" function="true" type="Genotype">
    1533                         <arguments>
    1534                                 <argument name="genotype" type="string"/>
    1535                         </arguments>
    1536                 </element>
    1537                 <element name="splitInstances" function="true" type="void"><arguments/></element>
    15381599        </type>
    15391600        <type name="Interface" context="Global context">
    15401601<description><![CDATA[Used to query for object member descriptions. Example:
    15411602var iface=Interface.makeFrom(someobject); var description="this object has "+iface.properties+" properties, first property is "+iface.getId(0);]]></description>
    1542                 <element name="groups" type="integer"/>
    15431603                <element name="name" type="string"/>
    15441604                <element name="properties" type="integer"/>
     1605                <element name="groups" type="integer"/>
     1606                <element name="get" function="true" type="untyped">
     1607                        <arguments>
     1608                                <argument name="index" type="integer"/>
     1609                        </arguments>
     1610                </element>
     1611                <element name="getId" function="true" type="string">
     1612                        <arguments>
     1613                                <argument name="index" type="integer"/>
     1614                        </arguments>
     1615                </element>
     1616                <element name="getName" function="true" type="string">
     1617                        <arguments>
     1618                                <argument name="index" type="integer"/>
     1619                        </arguments>
     1620                </element>
     1621                <element name="getGroup" function="true" type="integer">
     1622                        <arguments>
     1623                                <argument name="index" type="integer"/>
     1624                        </arguments>
     1625                </element>
     1626                <element name="getGroupName" function="true" type="string">
     1627                        <arguments>
     1628                                <argument name="index" type="integer"/>
     1629                        </arguments>
     1630                </element>
     1631                <element name="getType" function="true" type="string">
     1632                        <arguments>
     1633                                <argument name="index" type="integer"/>
     1634                        </arguments>
     1635                </element>
     1636                <element name="getFlags" function="true" type="integer">
     1637                        <arguments>
     1638                                <argument name="index" type="integer"/>
     1639                        </arguments>
     1640                </element>
     1641                <element name="getHelp" function="true" type="string">
     1642                        <arguments>
     1643                                <argument name="index" type="integer"/>
     1644                        </arguments>
     1645                </element>
     1646                <element name="findId" function="true" type="integer">
     1647                        <arguments>
     1648                                <argument name="name" type="string"/>
     1649                        </arguments>
     1650                </element>
    15451651                <element name="findGroupId" function="true" type="integer">
    1546                         <arguments>
    1547                                 <argument name="name" type="string"/>
    1548                         </arguments>
    1549                 </element>
    1550                 <element name="findId" function="true" type="integer">
    15511652                        <arguments>
    15521653                                <argument name="name" type="string"/>
     
    15591660                        </arguments>
    15601661                </element>
    1561                 <element name="get" function="true" type="untyped">
     1662                <element name="makeFrom" function="true" type="Interface">
     1663                        <arguments>
     1664                                <argument type="Object"/>
     1665                        </arguments>
     1666                </element>
     1667                <element name="set" function="true" type="void">
    15621668                        <arguments>
    15631669                                <argument name="index" type="integer"/>
    1564                         </arguments>
    1565                 </element>
    1566                 <element name="getFlags" function="true" type="integer">
     1670                                <argument name="value" type="untyped"/>
     1671                        </arguments>
     1672                </element>
     1673                <element name="setDefault" function="true" type="void">
    15671674                        <arguments>
    15681675                                <argument name="index" type="integer"/>
    15691676                        </arguments>
    15701677                </element>
    1571                 <element name="getGroup" function="true" type="integer">
    1572                         <arguments>
    1573                                 <argument name="index" type="integer"/>
    1574                         </arguments>
    1575                 </element>
    1576                 <element name="getGroupName" function="true" type="string">
    1577                         <arguments>
    1578                                 <argument name="index" type="integer"/>
    1579                         </arguments>
    1580                 </element>
    1581                 <element name="getHelp" function="true" type="string">
    1582                         <arguments>
    1583                                 <argument name="index" type="integer"/>
    1584                         </arguments>
    1585                 </element>
    1586                 <element name="getId" function="true" type="string">
    1587                         <arguments>
    1588                                 <argument name="index" type="integer"/>
    1589                         </arguments>
    1590                 </element>
    1591                 <element name="getName" function="true" type="string">
    1592                         <arguments>
    1593                                 <argument name="index" type="integer"/>
    1594                         </arguments>
    1595                 </element>
    1596                 <element name="getType" function="true" type="string">
    1597                         <arguments>
    1598                                 <argument name="index" type="integer"/>
    1599                         </arguments>
    1600                 </element>
     1678                <element name="setAllDefault" function="true" type="void"><arguments/></element>
    16011679                <element name="invoke" function="true" type="void">
    16021680                        <arguments>
     
    16051683                        </arguments>
    16061684                </element>
    1607                 <element name="makeFrom" function="true" type="Interface">
    1608                         <arguments>
    1609                                 <argument type="Object"/>
    1610                         </arguments>
    1611                 </element>
    1612                 <element name="set" function="true" type="void">
    1613                         <arguments>
    1614                                 <argument name="index" type="integer"/>
    1615                                 <argument name="value" type="untyped"/>
    1616                         </arguments>
    1617                 </element>
    1618                 <element name="setAllDefault" function="true" type="void"><arguments/></element>
    1619                 <element name="setDefault" function="true" type="void">
    1620                         <arguments>
    1621                                 <argument name="index" type="integer"/>
    1622                         </arguments>
    1623                 </element>
    16241685        </type>
    16251686        <type name="Joint" context="Global context">
     1687                <element name="p1" type="integer" min="-1" max="999999" default="-1"/>
     1688                <element name="p2" type="integer" min="-1" max="999999" default="-1"/>
     1689                <element name="rx" type="float"/>
     1690                <element name="ry" type="float"/>
     1691                <element name="rz" type="float"/>
    16261692                <element name="dx" type="float" min="-2" max="2" default="0.0"/>
    16271693                <element name="dy" type="float" min="-2" max="2" default="0.0"/>
    16281694                <element name="dz" type="float" min="-2" max="2" default="0.0"/>
     1695                <element name="sh" type="integer" min="0" max="1" default="0"/>
     1696                <element name="stif" type="float" min="0" max="1" default="1.0"/>
     1697                <element name="rotstif" type="float" min="0" max="1" default="1.0"/>
     1698                <element name="stam" type="float" min="0" max="1" default="0.25"/>
    16291699                <element name="i" type="string"/>
    1630                 <element name="p1" type="integer" min="-1" max="999999" default="-1"/>
    1631                 <element name="p2" type="integer" min="-1" max="999999" default="-1"/>
    1632                 <element name="rotstif" type="float" min="0" max="1" default="1.0"/>
    1633                 <element name="rx" type="float"/>
    1634                 <element name="ry" type="float"/>
    1635                 <element name="rz" type="float"/>
    1636                 <element name="sh" type="integer" min="0" max="1" default="0"/>
    1637                 <element name="stam" type="float" min="0" max="1" default="0.25"/>
    1638                 <element name="stif" type="float" min="0" max="1" default="1.0"/>
     1700                <element name="Vstyle" type="string"/>
     1701                <element name="vr" type="float" min="0" max="1" default="0.5"/>
     1702                <element name="vg" type="float" min="0" max="1" default="0.5"/>
    16391703                <element name="vb" type="float" min="0" max="1" default="0.5"/>
    1640                 <element name="vg" type="float" min="0" max="1" default="0.5"/>
    1641                 <element name="vr" type="float" min="0" max="1" default="0.5"/>
    1642                 <element name="Vstyle" type="string"/>
    16431704        </type>
    16441705        <type name="Loader" context="Global context">
    16451706<description><![CDATA[Support for loading files in the Framsticks format. Used in the experiment definition to retrieve experiment state (see OnExpLoad function in standard.expdef). Registered objects (addClass) are handled automaticaly. Loader can call user functions defined by setBreakLabel.]]></description>
     1707                <element name="addClass" function="true" type="void">
     1708                        <arguments>
     1709                                <argument type="Object"/>
     1710                        </arguments>
     1711                </element>
     1712                <element name="removeClass" function="true" type="void">
     1713                        <arguments>
     1714                                <argument type="Object"/>
     1715                        </arguments>
     1716                </element>
     1717                <element name="clearClasses" function="true" type="void"><arguments/></element>
     1718                <element name="go" function="true" type="integer"><arguments/></element>
     1719                <element name="run" function="true" type="integer"><arguments/></element>
     1720                <element name="status" type="integer"/>
     1721                <element name="comment" type="string"/>
     1722                <element name="setBreak" function="true" type="void">
     1723                        <arguments>
     1724                                <argument name="break conditions" type="integer"/>
     1725                        </arguments>
     1726                </element>
     1727                <element name="setBreakLabel" function="true" type="void">
     1728                        <arguments>
     1729                                <argument name="break condition" type="integer"/>
     1730                                <argument name="label" type="string"/>
     1731                        </arguments>
     1732                </element>
     1733                <element name="abort" function="true" type="void"><arguments/></element>
     1734                <element name="currentObject" type="Object"/>
     1735                <element name="objectName" type="string"/>
     1736                <element name="loadObject" function="true" type="void"><arguments/></element>
     1737                <element name="skipObject" function="true" type="void"><arguments/></element>
     1738                <element name="firstComment" type="integer" min="0" max="1"/>
     1739                <element name="BeforeObject" type="integer"/>
    16461740                <element name="AfterObject" type="integer"/>
    1647                 <element name="BeforeObject" type="integer"/>
    16481741                <element name="BeforeUnknown" type="integer"/>
    1649                 <element name="comment" type="string"/>
    1650                 <element name="currentObject" type="Object"/>
    1651                 <element name="firstComment" type="integer" min="0" max="1"/>
    1652                 <element name="objectName" type="string"/>
    16531742                <element name="OnComment" type="integer"/>
    16541743                <element name="OnError" type="integer"/>
    1655                 <element name="status" type="integer"/>
    1656                 <element name="abort" function="true" type="void"><arguments/></element>
    1657                 <element name="addClass" function="true" type="void">
    1658                         <arguments>
    1659                                 <argument type="Object"/>
    1660                         </arguments>
    1661                 </element>
    1662                 <element name="clearClasses" function="true" type="void"><arguments/></element>
    1663                 <element name="go" function="true" type="integer"><arguments/></element>
    1664                 <element name="loadObject" function="true" type="void"><arguments/></element>
    1665                 <element name="removeClass" function="true" type="void">
    1666                         <arguments>
    1667                                 <argument type="Object"/>
    1668                         </arguments>
    1669                 </element>
    1670                 <element name="run" function="true" type="integer"><arguments/></element>
    1671                 <element name="setBreak" function="true" type="void">
    1672                         <arguments>
    1673                                 <argument name="break conditions" type="integer"/>
    1674                         </arguments>
    1675                 </element>
    1676                 <element name="setBreakLabel" function="true" type="void">
    1677                         <arguments>
    1678                                 <argument name="break condition" type="integer"/>
    1679                                 <argument name="label" type="string"/>
    1680                         </arguments>
    1681                 </element>
    1682                 <element name="skipObject" function="true" type="void"><arguments/></element>
    16831744        </type>
    16841745        <type name="Math" context="Global context">
    16851746<description><![CDATA[Mathematical functions library.]]></description>
    16861747                <element name="pi" type="float"/>
     1748                <element name="twopi" type="float"/>
    16871749                <element name="pi2" type="float"/>
    16881750                <element name="pi4" type="float"/>
     1751                <element name="random" function="true" type="integer">
     1752                        <description><![CDATA[0..num-1]]></description>
     1753                        <arguments>
     1754                                <argument name="num" type="integer"/>
     1755                        </arguments>
     1756                </element>
    16891757                <element name="rnd01" type="float"/>
     1758                <element name="rndUni" function="true" type="float">
     1759                        <description><![CDATA[[begin..end)]]></description>
     1760                        <arguments>
     1761                                <argument name="begin" type="float"/>
     1762                                <argument name="end" type="float"/>
     1763                        </arguments>
     1764                </element>
    16901765                <element name="rndGaussStd" type="float"/>
     1766                <element name="rndGauss" function="true" type="float">
     1767                        <description><![CDATA[rndGaussStd is rndGauss(0,1)]]></description>
     1768                        <arguments>
     1769                                <argument name="mean" type="float"/>
     1770                                <argument name="standard deviation" type="float"/>
     1771                        </arguments>
     1772                </element>
     1773                <element name="rndCustom" function="true" type="float">
     1774                        <description><![CDATA[the parameter describes the desired random distribution, being a sum of uniform distributions, eg. rndCustom([-10,-1, -1,1, 1,10]) defines 3 uniform distribution intervals [-1,10) [-1,1), [1,10)]]></description>
     1775                        <arguments>
     1776                                <argument type="Vector"/>
     1777                        </arguments>
     1778                </element>
    16911779                <element name="seed" type="integer">
    16921780                        <description><![CDATA[Random number generator seed.
     
    16941782Note #2: When read, the value behaves just like a regular variable that stores the previously assigned value. It does NOT reflect the internal random generator seed that changes every time a random number has been generated.]]></description>
    16951783                </element>
     1784                <element name="randomize" function="true">
     1785                        <description><![CDATA[Set random seed for the random number generator.]]></description>
     1786                </element>
    16961787                <element name="time" type="float">
    16971788                        <description><![CDATA[Number of seconds since the Epoch (00:00:00 UTC/GMT, January 1, 1970)]]></description>
    16981789                </element>
    1699                 <element name="twopi" type="float"/>
    17001790                <element name="abs" function="true" type="float">
    17011791                        <arguments>
     
    17031793                        </arguments>
    17041794                </element>
     1795                <element name="sign" function="true" type="integer">
     1796                        <arguments>
     1797                                <argument type="float"/>
     1798                        </arguments>
     1799                </element>
     1800                <element name="sin" function="true" type="float">
     1801                        <arguments>
     1802                                <argument type="float"/>
     1803                        </arguments>
     1804                </element>
     1805                <element name="cos" function="true" type="float">
     1806                        <arguments>
     1807                                <argument type="float"/>
     1808                        </arguments>
     1809                </element>
     1810                <element name="asin" function="true" type="float">
     1811                        <arguments>
     1812                                <argument type="float"/>
     1813                        </arguments>
     1814                </element>
    17051815                <element name="acos" function="true" type="float">
    1706                         <arguments>
    1707                                 <argument type="float"/>
    1708                         </arguments>
    1709                 </element>
    1710                 <element name="asin" function="true" type="float">
    17111816                        <arguments>
    17121817                                <argument type="float"/>
     
    17241829                        </arguments>
    17251830                </element>
    1726                 <element name="cos" function="true" type="float">
     1831                <element name="pow" function="true" type="float">
     1832                        <arguments>
     1833                                <argument name="a" type="float"/>
     1834                                <argument name="b" type="float"/>
     1835                        </arguments>
     1836                </element>
     1837                <element name="exp" function="true" type="float">
    17271838                        <arguments>
    17281839                                <argument type="float"/>
    17291840                        </arguments>
    17301841                </element>
    1731                 <element name="exp" function="true" type="float">
     1842                <element name="log" function="true" type="float">
    17321843                        <arguments>
    17331844                                <argument type="float"/>
    17341845                        </arguments>
    17351846                </element>
    1736                 <element name="log" function="true" type="float">
     1847                <element name="sqrt" function="true" type="float">
    17371848                        <arguments>
    17381849                                <argument type="float"/>
    17391850                        </arguments>
    17401851                </element>
    1741                 <element name="max" function="true" type="untyped">
     1852                <element name="sigmoid" function="true" type="float">
     1853                        <arguments>
     1854                                <argument type="float"/>
     1855                        </arguments>
     1856                </element>
     1857                <element name="min" function="true" type="untyped">
    17421858                        <arguments>
    17431859                                <argument type="untyped"/>
     
    17451861                        </arguments>
    17461862                </element>
    1747                 <element name="min" function="true" type="untyped">
     1863                <element name="max" function="true" type="untyped">
    17481864                        <arguments>
    17491865                                <argument type="untyped"/>
     
    17511867                        </arguments>
    17521868                </element>
    1753                 <element name="pow" function="true" type="float">
    1754                         <arguments>
    1755                                 <argument name="a" type="float"/>
    1756                                 <argument name="b" type="float"/>
    1757                         </arguments>
    1758                 </element>
    1759                 <element name="random" function="true" type="integer">
    1760                         <description><![CDATA[0..num-1]]></description>
    1761                         <arguments>
    1762                                 <argument name="num" type="integer"/>
    1763                         </arguments>
    1764                 </element>
    1765                 <element name="randomize" function="true">
    1766                         <description><![CDATA[Set random seed for the random number generator.]]></description>
    1767                 </element>
    1768                 <element name="rndCustom" function="true" type="float">
    1769                         <description><![CDATA[the parameter describes the desired random distribution, being a sum of uniform distributions, eg. rndCustom([-10,-1, -1,1, 1,10]) defines 3 uniform distribution intervals [-1,10) [-1,1), [1,10)]]></description>
    1770                         <arguments>
    1771                                 <argument type="Vector"/>
    1772                         </arguments>
    1773                 </element>
    1774                 <element name="rndGauss" function="true" type="float">
    1775                         <description><![CDATA[rndGaussStd is rndGauss(0,1)]]></description>
    1776                         <arguments>
    1777                                 <argument name="mean" type="float"/>
    1778                                 <argument name="standard deviation" type="float"/>
    1779                         </arguments>
    1780                 </element>
    1781                 <element name="rndUni" function="true" type="float">
    1782                         <description><![CDATA[[begin..end)]]></description>
    1783                         <arguments>
    1784                                 <argument name="begin" type="float"/>
    1785                                 <argument name="end" type="float"/>
    1786                         </arguments>
    1787                 </element>
    1788                 <element name="sigmoid" function="true" type="float">
    1789                         <arguments>
    1790                                 <argument type="float"/>
    1791                         </arguments>
    1792                 </element>
    1793                 <element name="sign" function="true" type="integer">
    1794                         <arguments>
    1795                                 <argument type="float"/>
    1796                         </arguments>
    1797                 </element>
    1798                 <element name="sin" function="true" type="float">
    1799                         <arguments>
    1800                                 <argument type="float"/>
    1801                         </arguments>
    1802                 </element>
    1803                 <element name="sqrt" function="true" type="float">
    1804                         <arguments>
    1805                                 <argument type="float"/>
    1806                         </arguments>
    1807                 </element>
    18081869        </type>
    18091870        <type name="MechJoint" context="Global context">
     1871                <element name="rx" type="float"/>
     1872                <element name="ry" type="float"/>
     1873                <element name="rz" type="float"/>
    18101874                <element name="dx" type="float"/>
    18111875                <element name="dy" type="float"/>
    18121876                <element name="dz" type="float"/>
     1877                <element name="stif" type="float"/>
     1878                <element name="rotstif" type="float"/>
    18131879                <element name="part1" type="MechPart"/>
    18141880                <element name="part2" type="MechPart"/>
    1815                 <element name="rotstif" type="float"/>
     1881                <element name="stress" type="float"/>
    18161882                <element name="rotstress" type="float"/>
    1817                 <element name="rx" type="float"/>
    1818                 <element name="ry" type="float"/>
    1819                 <element name="rz" type="float"/>
    1820                 <element name="stif" type="float"/>
    1821                 <element name="stress" type="float"/>
    18221883        </type>
    18231884        <type name="MechPart" context="Global context">
     1885                <element name="x" type="float"/>
     1886                <element name="y" type="float"/>
     1887                <element name="z" type="float"/>
     1888                <element name="pos" type="XYZ"/>
     1889                <element name="m" type="float"/>
     1890                <element name="s" type="float"/>
     1891                <element name="vol" type="float"/>
    18241892                <element name="fr" type="float"/>
    1825                 <element name="m" type="float"/>
     1893                <element name="vx" type="float"/>
     1894                <element name="vy" type="float"/>
     1895                <element name="vz" type="float"/>
     1896                <element name="v" type="XYZ"/>
    18261897                <element name="orient" type="Orient"/>
    18271898                <element name="oxx" type="float"/>
     
    18341905                <element name="ozy" type="float"/>
    18351906                <element name="ozz" type="float"/>
    1836                 <element name="pos" type="XYZ"/>
    1837                 <element name="s" type="float"/>
    1838                 <element name="v" type="XYZ"/>
    1839                 <element name="vol" type="float"/>
    1840                 <element name="vx" type="float"/>
    1841                 <element name="vy" type="float"/>
    1842                 <element name="vz" type="float"/>
    1843                 <element name="x" type="float"/>
    1844                 <element name="y" type="float"/>
    1845                 <element name="z" type="float"/>
    18461907                <element name="applyForce" function="true" type="void">
    18471908                        <arguments>
     
    18531914        </type>
    18541915        <type name="Model" context="Global context">
     1916                <element name="se" type="float"/>
     1917                <element name="Vstyle" type="string"/>
    18551918                <element name="geno" type="Geno"/>
    1856                 <element name="numconnections" type="integer"/>
     1919                <element name="newFromString" function="true" type="Model">
     1920                        <arguments>
     1921                                <argument name="genotype" type="string"/>
     1922                        </arguments>
     1923                </element>
     1924                <element name="newFromGeno" function="true" type="Model">
     1925                        <arguments>
     1926                                <argument type="Geno"/>
     1927                        </arguments>
     1928                </element>
     1929                <element name="numparts" type="integer"/>
    18571930                <element name="numjoints" type="integer"/>
    18581931                <element name="numneurons" type="integer"/>
    1859                 <element name="numparts" type="integer"/>
    1860                 <element name="se" type="float"/>
     1932                <element name="numconnections" type="integer"/>
     1933                <element name="getPart" function="true" type="Part">
     1934                        <arguments>
     1935                                <argument name="index" type="integer"/>
     1936                        </arguments>
     1937                </element>
     1938                <element name="getJoint" function="true" type="Joint">
     1939                        <arguments>
     1940                                <argument name="index" type="integer"/>
     1941                        </arguments>
     1942                </element>
     1943                <element name="getNeuroDef" function="true" type="NeuroDef">
     1944                        <arguments>
     1945                                <argument name="index" type="integer"/>
     1946                        </arguments>
     1947                </element>
    18611948                <element name="size_x" type="float">
    18621949                        <description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including imaginary Part sizes (Part.s, usually 1.0). A creature consisting of a single default part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
     
    18681955                <element name="size_z" type="float">
    18691956                        <description><![CDATA[See Model.size_x]]></description>
    1870                 </element>
    1871                 <element name="Vstyle" type="string"/>
    1872                 <element name="getJoint" function="true" type="Joint">
    1873                         <arguments>
    1874                                 <argument name="index" type="integer"/>
    1875                         </arguments>
    1876                 </element>
    1877                 <element name="getNeuroDef" function="true" type="NeuroDef">
    1878                         <arguments>
    1879                                 <argument name="index" type="integer"/>
    1880                         </arguments>
    1881                 </element>
    1882                 <element name="getPart" function="true" type="Part">
    1883                         <arguments>
    1884                                 <argument name="index" type="integer"/>
    1885                         </arguments>
    1886                 </element>
    1887                 <element name="newFromGeno" function="true" type="Model">
    1888                         <arguments>
    1889                                 <argument type="Geno"/>
    1890                         </arguments>
    1891                 </element>
    1892                 <element name="newFromString" function="true" type="Model">
    1893                         <arguments>
    1894                                 <argument name="genotype" type="string"/>
    1895                         </arguments>
    18961957                </element>
    18971958        </type>
     
    19071968                        <description><![CDATA[Affects the geometry calculation precision]]></description>
    19081969                </element>
    1909                 <element name="area" function="true" type="float"><arguments/></element>
    19101970                <element name="forModel" function="true" type="ModelGeometry">
    19111971                        <description><![CDATA[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.]]></description>
     
    19141974                        </arguments>
    19151975                </element>
     1976                <element name="volume" function="true" type="float"><arguments/></element>
     1977                <element name="area" function="true" type="float"><arguments/></element>
    19161978                <element name="sizesAndAxes" function="true" type="Vector">
    19171979                        <description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
    19181980<arguments/></element>
    1919                 <element name="volume" function="true" type="float"><arguments/></element>
    19201981        </type>
    19211982        <type name="Neuro" context="Global context">
    19221983<description><![CDATA[Live Neuron object.]]></description>
     1984                <element name="getInputState" function="true" type="float">
     1985                        <arguments>
     1986                                <argument name="input" type="integer"/>
     1987                        </arguments>
     1988                </element>
     1989                <element name="getInputWeight" function="true" type="float">
     1990                        <arguments>
     1991                                <argument name="input" type="integer"/>
     1992                        </arguments>
     1993                </element>
     1994                <element name="getWeightedInputState" function="true" type="float">
     1995                        <arguments>
     1996                                <argument name="input" type="integer"/>
     1997                        </arguments>
     1998                </element>
     1999                <element name="getInputSum" function="true" type="float">
     2000                        <arguments>
     2001                                <argument name="input" type="integer"/>
     2002                        </arguments>
     2003                </element>
     2004                <element name="getWeightedInputSum" function="true" type="float">
     2005                        <description><![CDATA[Uses any number of inputs starting with the specified input. getWeightedInputSum(0)=weightedInputSum]]></description>
     2006                        <arguments>
     2007                                <argument name="input" type="integer"/>
     2008                        </arguments>
     2009                </element>
     2010                <element name="getInputCount" type="integer"/>
     2011                <element name="inputSum" type="float"/>
     2012                <element name="weightedInputSum" type="float"/>
     2013                <element name="getInputChannelCount" function="true" type="integer">
     2014                        <arguments>
     2015                                <argument name="input" type="integer"/>
     2016                        </arguments>
     2017                </element>
     2018                <element name="getInputStateChannel" function="true" type="float">
     2019                        <arguments>
     2020                                <argument name="input" type="integer"/>
     2021                                <argument name="channel" type="integer"/>
     2022                        </arguments>
     2023                </element>
     2024                <element name="getWeightedInputStateChannel" function="true" type="float">
     2025                        <arguments>
     2026                                <argument name="input" type="integer"/>
     2027                                <argument name="channel" type="integer"/>
     2028                        </arguments>
     2029                </element>
     2030                <element name="state" type="float">
     2031                        <description><![CDATA[When read, returns the current neuron state.
     2032When written, sets the 'internal' neuron state that will become current in the next step.
     2033Typically you should use this field, and not currState.]]></description>
     2034                </element>
    19232035                <element name="channelCount" type="integer"/>
    1924                 <element name="classObject" type="NeuroClass"/>
    1925                 <element name="creature" type="Creature"/>
     2036                <element name="getStateChannel" function="true" type="float">
     2037                        <arguments>
     2038                                <argument name="channel" type="integer"/>
     2039                        </arguments>
     2040                </element>
     2041                <element name="setStateChannel" function="true" type="void">
     2042                        <arguments>
     2043                                <argument name="channel" type="integer"/>
     2044                                <argument name="value" type="float"/>
     2045                        </arguments>
     2046                </element>
     2047                <element name="hold" type="integer" min="0" max="1">
     2048                        <description><![CDATA["Holding" means keeping the neuron state as is, blocking the regular neuron operation. This is useful when your script needs to inject some control signals into the NN. Without "holding", live neurons would be constantly overwriting your changes, and the rest of the NN could see inconsistent states, depending on the connections. Setting hold=1 ensures the neuron state will be only set by you, and not by the neuron. The enforced signal value can be set using Neuro.currState before or after setting hold=1. Set hold=0 to resume normal operation.]]></description>
     2049                </element>
    19262050                <element name="currState" type="float">
    19272051                        <description><![CDATA[When read, it behaves just like the 'state' field.
     
    19292053This feature should only be used while controlling the neuron 'from outside' (like a neuro probe) and not in the neuron definition. See also: Neuro.hold]]></description>
    19302054                </element>
    1931                 <element name="def" type="NeuroDef"/>
     2055                <element name="setCurrStateChannel" function="true" type="void">
     2056                        <description><![CDATA[Analogous to "currState".]]></description>
     2057                        <arguments>
     2058                                <argument name="channel" type="integer"/>
     2059                                <argument name="value" type="float"/>
     2060                        </arguments>
     2061                </element>
     2062                <element name="position_x" type="float"/>
     2063                <element name="position_y" type="float"/>
     2064                <element name="position_z" type="float"/>
     2065                <element name="creature" type="Creature"/>
     2066                <element name="part" type="MechPart"/>
     2067                <element name="joint" type="MechJoint"/>
    19322068                <element name="fields" type="Fields">
    19332069                        <description><![CDATA[Neurons can have different fields depending on their class. Script neurons have their fields defined using the "prop:" syntax. If you develop a custom neuron script you should use the Fields object for accessing your own neuron fields. The Neuro.fields property is meant for accessing the neuron fields from the outside script.
     
    19452081 Simulator.print(iobj.getId(i)+" ("+iobj.getName(i)+")");]]></description>
    19462082                </element>
    1947                 <element name="getInputCount" type="integer"/>
    1948                 <element name="hold" type="integer" min="0" max="1">
    1949                         <description><![CDATA["Holding" means keeping the neuron state as is, blocking the regular neuron operation. This is useful when your script needs to inject some control signals into the NN. Without "holding", live neurons would be constantly overwriting your changes, and the rest of the NN could see inconsistent states, depending on the connections. Setting hold=1 ensures the neuron state will be only set by you, and not by the neuron. The enforced signal value can be set using Neuro.currState before or after setting hold=1. Set hold=0 to resume normal operation.]]></description>
    1950                 </element>
    1951                 <element name="inputSum" type="float"/>
    1952                 <element name="joint" type="MechJoint"/>
    1953                 <element name="part" type="MechPart"/>
    1954                 <element name="position_x" type="float"/>
    1955                 <element name="position_y" type="float"/>
    1956                 <element name="position_z" type="float"/>
     2083                <element name="def" type="NeuroDef"/>
     2084                <element name="classObject" type="NeuroClass"/>
    19572085                <element name="signals" type="NeuroSignals"/>
    1958                 <element name="state" type="float">
    1959                         <description><![CDATA[When read, returns the current neuron state.
    1960 When written, sets the 'internal' neuron state that will become current in the next step.
    1961 Typically you should use this field, and not currState.]]></description>
    1962                 </element>
    1963                 <element name="weightedInputSum" type="float"/>
    1964                 <element name="getInputChannelCount" function="true" type="integer">
    1965                         <arguments>
    1966                                 <argument name="input" type="integer"/>
    1967                         </arguments>
    1968                 </element>
    1969                 <element name="getInputState" function="true" type="float">
    1970                         <arguments>
    1971                                 <argument name="input" type="integer"/>
    1972                         </arguments>
    1973                 </element>
    1974                 <element name="getInputStateChannel" function="true" type="float">
    1975                         <arguments>
    1976                                 <argument name="input" type="integer"/>
    1977                                 <argument name="channel" type="integer"/>
    1978                         </arguments>
    1979                 </element>
    1980                 <element name="getInputSum" function="true" type="float">
    1981                         <arguments>
    1982                                 <argument name="input" type="integer"/>
    1983                         </arguments>
    1984                 </element>
    1985                 <element name="getInputWeight" function="true" type="float">
    1986                         <arguments>
    1987                                 <argument name="input" type="integer"/>
    1988                         </arguments>
    1989                 </element>
    1990                 <element name="getStateChannel" function="true" type="float">
    1991                         <arguments>
    1992                                 <argument name="channel" type="integer"/>
    1993                         </arguments>
    1994                 </element>
    1995                 <element name="getWeightedInputState" function="true" type="float">
    1996                         <arguments>
    1997                                 <argument name="input" type="integer"/>
    1998                         </arguments>
    1999                 </element>
    2000                 <element name="getWeightedInputStateChannel" function="true" type="float">
    2001                         <arguments>
    2002                                 <argument name="input" type="integer"/>
    2003                                 <argument name="channel" type="integer"/>
    2004                         </arguments>
    2005                 </element>
    2006                 <element name="getWeightedInputSum" function="true" type="float">
    2007                         <description><![CDATA[Uses any number of inputs starting with the specified input. getWeightedInputSum(0)=weightedInputSum]]></description>
    2008                         <arguments>
    2009                                 <argument name="input" type="integer"/>
    2010                         </arguments>
    2011                 </element>
    2012                 <element name="setCurrStateChannel" function="true" type="void">
    2013                         <description><![CDATA[Analogous to "currState".]]></description>
    2014                         <arguments>
    2015                                 <argument name="channel" type="integer"/>
    2016                                 <argument name="value" type="float"/>
    2017                         </arguments>
    2018                 </element>
    2019                 <element name="setStateChannel" function="true" type="void">
    2020                         <arguments>
    2021                                 <argument name="channel" type="integer"/>
    2022                                 <argument name="value" type="float"/>
    2023                         </arguments>
    2024                 </element>
    20252086        </type>
    20262087        <type name="NeuroClass" context="Global context">
    20272088<description><![CDATA[The static NeuroClass object refers to the class selected in the NeuroClassLibrary. Most, but not all, properties have direct counterparts in *.neuro files that define custom neuron classes.]]></description>
     2089                <element name="name" type="string">
     2090                        <description><![CDATA[Used in genotypes]]></description>
     2091                </element>
     2092                <element name="longname" type="string">
     2093                        <description><![CDATA[Used in hints]]></description>
     2094                </element>
    20282095                <element name="description" type="string"/>
     2096                <element name="prefinputs" type="integer">
     2097                        <description><![CDATA[-1 means "any number of inputs is OK"]]></description>
     2098                </element>
     2099                <element name="prefoutput" type="integer" min="0" max="1">
     2100                        <description><![CDATA[Should be 1 if the neuron provides meaningful output value, 0 otherwise]]></description>
     2101                </element>
     2102                <element name="preflocation" type="integer" min="0" max="2"/>
     2103                <element name="visualhints" type="integer">
     2104                        <description><![CDATA[This is a bitfield. Compute the value by adding the following bits:
     21051 = Invisible - don't draw neurons of this class
     21062 = No label - don't draw classname label (below the neuron symbol) for this neuron class
     21074 = First Part - draw the neuron at the first part when attached to a joint (default is in the middle)
     21088 = Second Part - draw the neuron at the second part when attached to a joint (default is in the middle)
     210916 = Effector - use muscle color when drawing this neuron
     211032 = Sensor - use receptor color when drawing this neuron
     2111Compatiblity: visualhints is called "vhints" in *.neuro files.]]></description>
     2112                </element>
    20292113                <element name="glyph" type="string">
    20302114                        <description><![CDATA[<html>The neuron icon for use in NN diagrams, encoded as a coma-separated sequence of integer numbers.<ul>
     
    20452129Compatibility: this field is called "icon" in *.neuro files.]]></description>
    20462130                </element>
    2047                 <element name="longname" type="string">
    2048                         <description><![CDATA[Used in hints]]></description>
    2049                 </element>
    2050                 <element name="name" type="string">
    2051                         <description><![CDATA[Used in genotypes]]></description>
    2052                 </element>
    2053                 <element name="prefinputs" type="integer">
    2054                         <description><![CDATA[-1 means "any number of inputs is OK"]]></description>
    2055                 </element>
    2056                 <element name="preflocation" type="integer" min="0" max="2"/>
    2057                 <element name="prefoutput" type="integer" min="0" max="1">
    2058                         <description><![CDATA[Should be 1 if the neuron provides meaningful output value, 0 otherwise]]></description>
    2059                 </element>
    20602131                <element name="properties" type="Interface">
    20612132                        <description><![CDATA[Compatibility: not preset in *.neuro files.]]></description>
     
    20652136Compatibility: not preset in *.neuro files.]]></description>
    20662137                </element>
    2067                 <element name="visualhints" type="integer">
    2068                         <description><![CDATA[This is a bitfield. Compute the value by adding the following bits:
    2069 1 = Invisible - don't draw neurons of this class
    2070 2 = No label - don't draw classname label (below the neuron symbol) for this neuron class
    2071 4 = First Part - draw the neuron at the first part when attached to a joint (default is in the middle)
    2072 8 = Second Part - draw the neuron at the second part when attached to a joint (default is in the middle)
    2073 16 = Effector - use muscle color when drawing this neuron
    2074 32 = Sensor - use receptor color when drawing this neuron
    2075 Compatiblity: visualhints is called "vhints" in *.neuro files.]]></description>
    2076                 </element>
    20772138        </type>
    20782139        <type name="NeuroClassLibrary" context="Global context">
    20792140<description><![CDATA[Set of Neuron classes. You can access the selected class in the static NeuroClass object.]]></description>
     2141                <element name="count" type="integer"/>
    20802142                <element name="class" type="integer">
    20812143                        <description><![CDATA[0 ... count-1]]></description>
    20822144                </element>
    2083                 <element name="count" type="integer"/>
    20842145                <element name="findClass" function="true" type="void">
    20852146                        <arguments>
     
    20942155        </type>
    20952156        <type name="NeuroDef" context="Global context">
     2157                <element name="p" type="integer" min="-1" max="999999" default="-1"/>
     2158                <element name="j" type="integer" min="-1" max="999999" default="-1"/>
     2159                <element name="d" type="string"/>
     2160                <element name="i" type="string"/>
     2161                <element name="Vstyle" type="string"/>
     2162                <element name="getInputCount" type="integer"/>
     2163                <element name="getInputNeuroDef" function="true" type="NeuroDef">
     2164                        <arguments>
     2165                                <argument type="integer"/>
     2166                        </arguments>
     2167                </element>
     2168                <element name="getInputNeuroIndex" function="true" type="integer">
     2169                        <arguments>
     2170                                <argument type="integer"/>
     2171                        </arguments>
     2172                </element>
     2173                <element name="getInputWeight" function="true" type="float">
     2174                        <arguments>
     2175                                <argument type="integer"/>
     2176                        </arguments>
     2177                </element>
    20962178                <element name="classObject" type="NeuroClass"/>
    2097                 <element name="d" type="string"/>
    2098                 <element name="getInputCount" type="integer"/>
    2099                 <element name="i" type="string"/>
    2100                 <element name="j" type="integer" min="-1" max="999999" default="-1"/>
    2101                 <element name="p" type="integer" min="-1" max="999999" default="-1"/>
    2102                 <element name="Vstyle" type="string"/>
    2103                 <element name="getInputNeuroDef" function="true" type="NeuroDef">
    2104                         <arguments>
    2105                                 <argument type="integer"/>
    2106                         </arguments>
    2107                 </element>
    2108                 <element name="getInputNeuroIndex" function="true" type="integer">
    2109                         <arguments>
    2110                                 <argument type="integer"/>
    2111                         </arguments>
    2112                 </element>
    2113                 <element name="getInputWeight" function="true" type="float">
    2114                         <arguments>
    2115                                 <argument type="integer"/>
    2116                         </arguments>
    2117                 </element>
    21182179        </type>
    21192180        <type name="NeuronsSimEnabled" context="Global context">
     
    23692430See also: Signal, WorldSignals, CreatureSignals.
    23702431scripts/light.neuro and scripts/seelight.neuro are simple custom neuron examples demonstrating how to send/receive signals between creatures.]]></description>
    2371                 <element name="size" type="integer"/>
    23722432                <element name="add" function="true" type="Signal">
    23732433                        <arguments>
    23742434                                <argument name="channel" type="string"/>
    2375                         </arguments>
    2376                 </element>
    2377                 <element name="clear" function="true" type="void"><arguments/></element>
    2378                 <element name="get" function="true" type="Signal">
    2379                         <arguments>
    2380                                 <argument name="index" type="integer"/>
    23812435                        </arguments>
    23822436                </element>
     
    23852439                        <arguments>
    23862440                                <argument name="channel" type="string"/>
     2441                        </arguments>
     2442                </element>
     2443                <element name="receiveSet" function="true" type="Vector">
     2444                        <description><![CDATA[Get all signals in the specified range. Returns a read-only vector object containing Signal objects - individual signals can be accessed as result[0], .., result[result.size-1].]]></description>
     2445                        <arguments>
     2446                                <argument name="channel" type="string"/>
     2447                                <argument name="max distance" type="float"/>
    23872448                        </arguments>
    23882449                </element>
     
    24002461                        </arguments>
    24012462                </element>
    2402                 <element name="receiveSet" function="true" type="Vector">
    2403                         <description><![CDATA[Get all signals in the specified range. Returns a read-only vector object containing Signal objects - individual signals can be accessed as result[0], .., result[result.size-1].]]></description>
     2463                <element name="receiveSingle" function="true" type="Signal">
     2464                        <description><![CDATA[Find the signal source that has the highest signal power (taking into account distance).]]></description>
    24042465                        <arguments>
    24052466                                <argument name="channel" type="string"/>
     
    24072468                        </arguments>
    24082469                </element>
    2409                 <element name="receiveSingle" function="true" type="Signal">
    2410                         <description><![CDATA[Find the signal source that has the highest signal power (taking into account distance).]]></description>
    2411                         <arguments>
    2412                                 <argument name="channel" type="string"/>
    2413                                 <argument name="max distance" type="float"/>
    2414                         </arguments>
    2415                 </element>
     2470                <element name="get" function="true" type="Signal">
     2471                        <arguments>
     2472                                <argument name="index" type="integer"/>
     2473                        </arguments>
     2474                </element>
     2475                <element name="size" type="integer"/>
     2476                <element name="clear" function="true" type="void"><arguments/></element>
    24162477        </type>
    24172478        <type name="ODE" context="Global context">
    24182479<description><![CDATA[ODE Parameters.]]></description>
     2480                <element name="odeshape" type="integer" min="0" max="1"/>
     2481                <element name="odestep" type="float" min="0.001" max="1" default="0.05"/>
     2482                <element name="odemusclemin" type="float" min="0" max="100" default="0.0">
     2483                        <description><![CDATA[i.e. "mmmmm" in f1]]></description>
     2484                </element>
     2485                <element name="odemusclemax" type="float" min="0" max="100" default="10.0">
     2486                        <description><![CDATA[i.e. "MMMMM" if f1]]></description>
     2487                </element>
     2488                <element name="odemusclespeed" type="float" min="0" max="10" default="1.0">
     2489                        <description><![CDATA[Muscle state cannot change faster than the supplied value]]></description>
     2490                </element>
    24192491                <element name="odeairdrag" type="float" min="0" max="0.5" default="0.01">
    24202492                        <description><![CDATA[A drag force ("air drag") proportional to the velocity of mass centers of moving parts]]></description>
    24212493                </element>
    2422                 <element name="odecol2bounce" type="float" min="0" max="1" default="0.1"/>
    2423                 <element name="odecol2bouncevel" type="float" min="0" max="1" default="0.01"/>
    2424                 <element name="odecol2mumax" type="float" min="0" max="10" default="1.0">
    2425                         <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
    2426                 </element>
    2427                 <element name="odecol2mumin" type="float" min="0" max="10" default="0.1">
    2428                         <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
    2429                 </element>
    2430                 <element name="odecol2softcfm" type="float" min="0" max="1" default="0.0"/>
    2431                 <element name="odecol2softerp" type="float" min="0" max="1" default="0.0"/>
    2432                 <element name="odecolbounce" type="float" min="0" max="1" default="0.1"/>
    2433                 <element name="odecolbouncevel" type="float" min="0" max="1" default="0.01"/>
    2434                 <element name="odecolmumax" type="float" min="0" max="10" default="5.0">
    2435                         <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
    2436                 </element>
    2437                 <element name="odecolmumin" type="float" min="0" max="10" default="0.1">
    2438                         <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
    2439                 </element>
    2440                 <element name="odecolsoftcfm" type="float" min="0" max="1" default="0.0"/>
    2441                 <element name="odecolsofterp" type="float" min="0" max="1" default="0.0"/>
    2442                 <element name="odemusclemax" type="float" min="0" max="100" default="10.0">
    2443                         <description><![CDATA[i.e. "MMMMM" if f1]]></description>
    2444                 </element>
    2445                 <element name="odemusclemin" type="float" min="0" max="100" default="0.0">
    2446                         <description><![CDATA[i.e. "mmmmm" in f1]]></description>
    2447                 </element>
    2448                 <element name="odemusclespeed" type="float" min="0" max="10" default="1.0">
    2449                         <description><![CDATA[Muscle state cannot change faster than the supplied value]]></description>
    2450                 </element>
     2494                <element name="odewaterdrag" type="float" min="0.001" max="1" default="0.5"/>
     2495                <element name="odewaterbuoy" type="float" min="0" max="2" default="1.0"/>
    24512496                <element name="odeseed" type="integer" min="0" max="2">
    24522497                        <description><![CDATA[Affects collisions.
     
    24592504                        <description><![CDATA[Each stick gets a separate ODE body (like in MechaStick)]]></description>
    24602505                </element>
    2461                 <element name="odeshape" type="integer" min="0" max="1"/>
    2462                 <element name="odestep" type="float" min="0.001" max="1" default="0.05"/>
    2463                 <element name="odewaterbuoy" type="float" min="0" max="2" default="1.0"/>
    2464                 <element name="odewaterdrag" type="float" min="0.001" max="1" default="0.5"/>
     2506                <element name="odeworlderp" type="float" min="0" max="1" default="0.2">
     2507                        <description><![CDATA[World ERP (error reduction parameter)]]></description>
     2508                </element>
    24652509                <element name="odeworldcfm" type="float" min="0" max="1" default="1e-05">
    24662510                        <description><![CDATA[World CFM (constraint force mixing)]]></description>
    24672511                </element>
    2468                 <element name="odeworlderp" type="float" min="0" max="1" default="0.2">
    2469                         <description><![CDATA[World ERP (error reduction parameter)]]></description>
    2470                 </element>
     2512                <element name="odecolmumin" type="float" min="0" max="10" default="0.1">
     2513                        <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
     2514                </element>
     2515                <element name="odecolmumax" type="float" min="0" max="10" default="5.0">
     2516                        <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
     2517                </element>
     2518                <element name="odecolbounce" type="float" min="0" max="1" default="0.1"/>
     2519                <element name="odecolbouncevel" type="float" min="0" max="1" default="0.01"/>
     2520                <element name="odecolsoftcfm" type="float" min="0" max="1" default="0.0"/>
     2521                <element name="odecolsofterp" type="float" min="0" max="1" default="0.0"/>
     2522                <element name="odecol2mumin" type="float" min="0" max="10" default="0.1">
     2523                        <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
     2524                </element>
     2525                <element name="odecol2mumax" type="float" min="0" max="10" default="1.0">
     2526                        <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
     2527                </element>
     2528                <element name="odecol2bounce" type="float" min="0" max="1" default="0.1"/>
     2529                <element name="odecol2bouncevel" type="float" min="0" max="1" default="0.01"/>
     2530                <element name="odecol2softcfm" type="float" min="0" max="1" default="0.0"/>
     2531                <element name="odecol2softerp" type="float" min="0" max="1" default="0.0"/>
    24712532                <element name="rayIntersection" function="true" type="float">
    24722533                        <arguments>
     
    24832544        <type name="Orient" context="Global context">
    24842545<description><![CDATA[3D orientation, stored as 3x3 matrix.]]></description>
    2485                 <element name="angles" type="XYZ"/>
    2486                 <element name="toString" type="string"/>
    2487                 <element name="toVector" type="Vector">
    2488                         <description><![CDATA[for serialization]]></description>
    2489                 </element>
    2490                 <element name="x" type="XYZ"/>
    24912546                <element name="xx" type="float"/>
    24922547                <element name="xy" type="float"/>
    24932548                <element name="xz" type="float"/>
    2494                 <element name="y" type="XYZ"/>
    24952549                <element name="yx" type="float"/>
    24962550                <element name="yy" type="float"/>
    24972551                <element name="yz" type="float"/>
    2498                 <element name="z" type="XYZ"/>
    24992552                <element name="zx" type="float"/>
    25002553                <element name="zy" type="float"/>
    25012554                <element name="zz" type="float"/>
     2555                <element name="x" type="XYZ"/>
     2556                <element name="y" type="XYZ"/>
     2557                <element name="z" type="XYZ"/>
     2558                <element name="new" function="true" type="Orient"><arguments/></element>
     2559                <element name="newFromVector" function="true" type="Orient">
     2560                        <arguments>
     2561                                <argument type="Vector"/>
     2562                        </arguments>
     2563                </element>
     2564                <element name="toVector" type="Vector">
     2565                        <description><![CDATA[for serialization]]></description>
     2566                </element>
     2567                <element name="clone" function="true" type="Orient"><arguments/></element>
     2568                <element name="set" function="true" type="void">
     2569                        <arguments>
     2570                                <argument type="Orient"/>
     2571                        </arguments>
     2572                </element>
     2573                <element name="reset" function="true" type="void"><arguments/></element>
     2574                <element name="rotate3" function="true" type="void">
     2575                        <arguments>
     2576                                <argument name="x" type="float"/>
     2577                                <argument name="y" type="float"/>
     2578                                <argument name="z" type="float"/>
     2579                        </arguments>
     2580                </element>
     2581                <element name="rotate" function="true" type="void">
     2582                        <arguments>
     2583                                <argument type="Orient"/>
     2584                        </arguments>
     2585                </element>
     2586                <element name="revRotate" function="true" type="void">
     2587                        <arguments>
     2588                                <argument type="Orient"/>
     2589                        </arguments>
     2590                </element>
     2591                <element name="lookAt" function="true" type="void">
     2592                        <arguments>
     2593                                <argument name="direction" type="XYZ"/>
     2594                                <argument name="up" type="XYZ"/>
     2595                        </arguments>
     2596                </element>
     2597                <element name="normalize" function="true" type="void"><arguments/></element>
    25022598                <element name="between2" function="true" type="void">
    25032599                        <description><![CDATA[The calling Orient receives the orientation interpolated from 2 input orientations.
     
    25292625                        </arguments>
    25302626                </element>
    2531                 <element name="clone" function="true" type="Orient"><arguments/></element>
    25322627                <element name="localToWorld" function="true" type="XYZ">
    25332628                        <arguments>
     
    25362631                        </arguments>
    25372632                </element>
    2538                 <element name="lookAt" function="true" type="void">
    2539                         <arguments>
    2540                                 <argument name="direction" type="XYZ"/>
    2541                                 <argument name="up" type="XYZ"/>
    2542                         </arguments>
    2543                 </element>
    2544                 <element name="new" function="true" type="Orient"><arguments/></element>
    2545                 <element name="newFromVector" function="true" type="Orient">
    2546                         <arguments>
    2547                                 <argument type="Vector"/>
    2548                         </arguments>
    2549                 </element>
    2550                 <element name="normalize" function="true" type="void"><arguments/></element>
    2551                 <element name="reset" function="true" type="void"><arguments/></element>
    2552                 <element name="revRotate" function="true" type="void">
    2553                         <arguments>
    2554                                 <argument type="Orient"/>
    2555                         </arguments>
    2556                 </element>
    2557                 <element name="rotate" function="true" type="void">
    2558                         <arguments>
    2559                                 <argument type="Orient"/>
    2560                         </arguments>
    2561                 </element>
    2562                 <element name="rotate3" function="true" type="void">
    2563                         <arguments>
    2564                                 <argument name="x" type="float"/>
    2565                                 <argument name="y" type="float"/>
    2566                                 <argument name="z" type="float"/>
    2567                         </arguments>
    2568                 </element>
    2569                 <element name="set" function="true" type="void">
    2570                         <arguments>
    2571                                 <argument type="Orient"/>
    2572                         </arguments>
    2573                 </element>
    25742633                <element name="worldToLocal" function="true" type="XYZ">
    25752634                        <arguments>
     
    25782637                        </arguments>
    25792638                </element>
     2639                <element name="angles" type="XYZ"/>
     2640                <element name="toString" type="string"/>
    25802641        </type>
    25812642        <type name="Part" context="Global context">
    2582                 <element name="as" type="float" min="0" max="1" default="0.25"/>
     2643                <element name="x" type="float"/>
     2644                <element name="y" type="float"/>
     2645                <element name="z" type="float"/>
     2646                <element name="m" type="float" min="0.1" max="999" default="1.0"/>
     2647                <element name="sh" type="integer" min="0" max="3" default="0"/>
     2648                <element name="s" type="float" min="0.1" max="10" default="1.0"/>
     2649                <element name="sx" type="float" min="0.001" max="1000" default="1.0"/>
     2650                <element name="sy" type="float" min="0.001" max="1000" default="1.0"/>
     2651                <element name="sz" type="float" min="0.001" max="1000" default="1.0"/>
     2652                <element name="h" type="float" min="0" max="1" default="0.0"/>
    25832653                <element name="dn" type="float" min="0.2" max="5" default="1.0"/>
    25842654                <element name="fr" type="float" min="0" max="4" default="0.4"/>
    2585                 <element name="h" type="float" min="0" max="1" default="0.0"/>
    2586                 <element name="i" type="string"/>
    25872655                <element name="ing" type="float" min="0" max="1" default="0.25"/>
    2588                 <element name="m" type="float" min="0.1" max="999" default="1.0"/>
     2656                <element name="as" type="float" min="0" max="1" default="0.25"/>
    25892657                <element name="rx" type="float"/>
    25902658                <element name="ry" type="float"/>
    25912659                <element name="rz" type="float"/>
    2592                 <element name="s" type="float" min="0.1" max="10" default="1.0"/>
    2593                 <element name="sh" type="integer" min="0" max="3" default="0"/>
    2594                 <element name="sx" type="float" min="0.001" max="1000" default="1.0"/>
    2595                 <element name="sy" type="float" min="0.001" max="1000" default="1.0"/>
    2596                 <element name="sz" type="float" min="0.001" max="1000" default="1.0"/>
     2660                <element name="i" type="string"/>
     2661                <element name="Vstyle" type="string"/>
     2662                <element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
     2663                <element name="vr" type="float" min="0" max="1" default="0.5"/>
     2664                <element name="vg" type="float" min="0" max="1" default="0.5"/>
    25972665                <element name="vb" type="float" min="0" max="1" default="0.5"/>
    2598                 <element name="vg" type="float" min="0" max="1" default="0.5"/>
    2599                 <element name="vr" type="float" min="0" max="1" default="0.5"/>
    2600                 <element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
    2601                 <element name="Vstyle" type="string"/>
    2602                 <element name="x" type="float"/>
    2603                 <element name="y" type="float"/>
    2604                 <element name="z" type="float"/>
    26052666        </type>
    26062667        <type name="Population" context="Global context">
    26072668<description><![CDATA[A set of Creature objects, sharing some high level simulation properties (performance calculation, NN simulation, collision detection, event handling). The groups usually have different roles in the experiment (Creatures groups and Food group in standard.expdef).]]></description>
    2608                 <element name="bodysim" type="integer" min="0" max="1" default="1">
    2609                         <description><![CDATA[Enable/disable physical body simulation. This is the initial value of Creature.bodysim for all objects created in this group. For details, see the documentation of Creature.bodysim.]]></description>
     2669                <element name="index" type="integer"/>
     2670                <element name="name" type="string"/>
     2671                <element name="size" type="integer"/>
     2672                <element name="energy" type="integer" min="0" max="1" default="1">
     2673                        <description><![CDATA[If turned off, creature's energy will be constant.]]></description>
     2674                </element>
     2675                <element name="death" type="integer" min="0" max="1" default="1">
     2676                        <description><![CDATA[Do creatures die when no energy?]]></description>
     2677                </element>
     2678                <element name="nnsim" type="integer" min="0" max="2" default="1">
     2679                        <description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
     2680                </element>
     2681                <element name="perfperiod" type="integer" min="0" max="1000000" default="100">
     2682                        <description><![CDATA[Defines how often onUpdate() events are called. Also used to compute partial performance of creatures (distance, speed, etc.) and to determine stabilization.]]></description>
     2683                </element>
     2684                <element name="stabilperiod" type="integer" min="0" max="1000000" default="100">
     2685                        <description><![CDATA["Performance sampling period" for the stabilization phase.]]></description>
     2686                </element>
     2687                <element name="killnostable" type="integer" min="0" max="10000000" default="1000000">
     2688                        <description><![CDATA[Creatures that fail to stabilize after the specified waiting period (e.g. because they are continuously rolling) will be killed. 0 disables this feature.]]></description>
     2689                </element>
     2690                <element name="stabledist" type="float" min="0" max="1" default="0.01">
     2691                        <description><![CDATA[A creature is considered stabilized when its center of gravity stays within the specified distance after the "Sampling period while waiting" has elapsed.]]></description>
     2692                </element>
     2693                <element name="enableperf" type="integer" min="0" max="2" default="1">
     2694                        <description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
    26102695                </element>
    26112696                <element name="colmask" type="integer" min="0" max="65535" default="0">
    26122697                        <description><![CDATA[DEPRECATED. You should use selfmask and othermask (these masks are also much easier to understand than the old colmask field).]]></description>
    2613                 </element>
    2614                 <element name="death" type="integer" min="0" max="1" default="1">
    2615                         <description><![CDATA[Do creatures die when no energy?]]></description>
    2616                 </element>
    2617                 <element name="em_dyn" type="float" min="0" max="1" default="0.0">
    2618                         <description><![CDATA[Energy requirements for a muscle
    2619 moving a stick]]></description>
    2620                 </element>
    2621                 <element name="em_stat" type="float" min="0" max="1" default="0.0">
    2622                         <description><![CDATA[Energy requirements for a muscle
    2623 resisting an external force]]></description>
    2624                 </element>
    2625                 <element name="en_assim" type="float" min="0" max="1" default="0.0">
    2626                         <description><![CDATA[Maximal energy gain produced by a vertical specialized stick.
    2627 Horizontal specialized sticks get half of this value.]]></description>
    2628                 </element>
    2629                 <element name="enableperf" type="integer" min="0" max="2" default="1">
    2630                         <description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
    2631                 </element>
    2632                 <element name="energy" type="integer" min="0" max="1" default="1">
    2633                         <description><![CDATA[If turned off, creature's energy will be constant.]]></description>
    2634                 </element>
    2635                 <element name="index" type="integer"/>
    2636                 <element name="iterator" type="Object"/>
    2637                 <element name="killnostable" type="integer" min="0" max="10000000" default="1000000">
    2638                         <description><![CDATA[Creatures that fail to stabilize after the specified waiting period (e.g. because they are continuously rolling) will be killed. 0 disables this feature.]]></description>
    2639                 </element>
    2640                 <element name="name" type="string"/>
    2641                 <element name="nnsim" type="integer" min="0" max="2" default="1">
    2642                         <description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
    2643                 </element>
    2644                 <element name="othermask" type="integer" min="0" max="2147483647" default="0">
    2645                         <description><![CDATA[See selfmask.]]></description>
    2646                 </element>
    2647                 <element name="perfperiod" type="integer" min="0" max="1000000" default="100">
    2648                         <description><![CDATA[Defines how often onUpdate() events are called. Also used to compute partial performance of creatures (distance, speed, etc.) and to determine stabilization.]]></description>
    2649                 </element>
    2650                 <element name="selfcol" type="integer" min="0" max="1" default="0">
    2651                         <description><![CDATA[Detect collisions within creature bodies (only applicable for the ODE simulation engine). This is the initial value of Creature.selfcol for all objects created in this group. If enabled, creatures with self-colliding genotypes are not born, and others will have their sticks collide during lifespan.]]></description>
    26522698                </element>
    26532699                <element name="selfmask" type="integer" min="0" max="2147483647" default="0">
     
    26812727]]></description>
    26822728                </element>
    2683                 <element name="size" type="integer"/>
    2684                 <element name="stabilperiod" type="integer" min="0" max="1000000" default="100">
    2685                         <description><![CDATA["Performance sampling period" for the stabilization phase.]]></description>
    2686                 </element>
    2687                 <element name="stabledist" type="float" min="0" max="1" default="0.01">
    2688                         <description><![CDATA[A creature is considered stabilized when its center of gravity stays within the specified distance after the "Sampling period while waiting" has elapsed.]]></description>
    2689                 </element>
    2690                 <element name="add" function="true" type="Creature">
    2691                         <arguments>
    2692                                 <argument name="genotype object or geno object or string genotype" type="untyped"/>
    2693                         </arguments>
    2694                 </element>
    2695                 <element name="clear" function="true" type="void">
    2696                         <description><![CDATA[Delete all creatures]]></description>
    2697 <arguments/></element>
    2698                 <element name="createFromGeno" function="true" type="Creature" deprecated="true">
    2699                         <description><![CDATA[Uses the supplied Geno object.
    2700 Deprecated. Use the more universal add() function.]]></description>
    2701                         <arguments>
    2702                                 <argument type="Geno"/>
    2703                         </arguments>
     2729                <element name="othermask" type="integer" min="0" max="2147483647" default="0">
     2730                        <description><![CDATA[See selfmask.]]></description>
     2731                </element>
     2732                <element name="bodysim" type="integer" min="0" max="1" default="1">
     2733                        <description><![CDATA[Enable/disable physical body simulation. This is the initial value of Creature.bodysim for all objects created in this group. For details, see the documentation of Creature.bodysim.]]></description>
     2734                </element>
     2735                <element name="selfcol" type="integer" min="0" max="1" default="0">
     2736                        <description><![CDATA[Detect collisions within creature bodies (only applicable for the ODE simulation engine). This is the initial value of Creature.selfcol for all objects created in this group. If enabled, creatures with self-colliding genotypes are not born, and others will have their sticks collide during lifespan.]]></description>
     2737                </element>
     2738                <element name="em_stat" type="float" min="0" max="1" default="0.0">
     2739                        <description><![CDATA[Energy requirements for a muscle
     2740resisting an external force]]></description>
     2741                </element>
     2742                <element name="em_dyn" type="float" min="0" max="1" default="0.0">
     2743                        <description><![CDATA[Energy requirements for a muscle
     2744moving a stick]]></description>
     2745                </element>
     2746                <element name="en_assim" type="float" min="0" max="1" default="0.0">
     2747                        <description><![CDATA[Maximal energy gain produced by a vertical specialized stick.
     2748Horizontal specialized sticks get half of this value.]]></description>
    27042749                </element>
    27052750                <element name="createFromGenotype" function="true" type="Creature" deprecated="true">
     
    27142759                        </arguments>
    27152760                </element>
    2716                 <element name="delete" function="true" type="void">
    2717                         <description><![CDATA[Delete the creature (remove it without executing the onKill event). Removing creatures inside some event handlers (e.g. onCollision) might be unsafe.]]></description>
    2718                         <arguments>
    2719                                 <argument name="creature object or index" type="untyped"/>
    2720                         </arguments>
    2721                 </element>
    2722                 <element name="findCreatureAt" function="true" type="Creature">
    2723                         <arguments>
    2724                                 <argument name="point" type="Vector"/>
    2725                                 <argument name="vector" type="Vector"/>
     2761                <element name="createFromGeno" function="true" type="Creature" deprecated="true">
     2762                        <description><![CDATA[Uses the supplied Geno object.
     2763Deprecated. Use the more universal add() function.]]></description>
     2764                        <arguments>
     2765                                <argument type="Geno"/>
     2766                        </arguments>
     2767                </element>
     2768                <element name="add" function="true" type="Creature">
     2769                        <arguments>
     2770                                <argument name="genotype object or geno object or string genotype" type="untyped"/>
    27262771                        </arguments>
    27272772                </element>
     
    27342779                        <arguments>
    27352780                                <argument name="index" type="integer"/>
    2736                         </arguments>
    2737                 </element>
    2738                 <element name="getStatsAvg" function="true" type="float">
    2739                         <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
    2740                         <arguments>
    2741                                 <argument name="field name" type="string"/>
    2742                         </arguments>
    2743                 </element>
    2744                 <element name="getStatsMax" function="true" type="float">
    2745                         <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
    2746                         <arguments>
    2747                                 <argument name="field name" type="string"/>
    2748                         </arguments>
    2749                 </element>
    2750                 <element name="getStatsMin" function="true" type="float">
    2751                         <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
    2752                         <arguments>
    2753                                 <argument name="field name" type="string"/>
    2754                         </arguments>
    2755                 </element>
    2756                 <element name="kill" function="true" type="void">
    2757                         <description><![CDATA[Kill the creature (remove it and execute its onKill handler). Killing creatures inside some event handlers (e.g. onCollision) might be unsafe. The recommended and safe way of killing a creature is by setting its energy to 0.]]></description>
    2758                         <arguments>
    2759                                 <argument name="creature object or index" type="integer"/>
    27602781                        </arguments>
    27612782                </element>
     
    27812802                        </arguments>
    27822803                </element>
     2804                <element name="findCreatureAt" function="true" type="Creature">
     2805                        <arguments>
     2806                                <argument name="point" type="Vector"/>
     2807                                <argument name="vector" type="Vector"/>
     2808                        </arguments>
     2809                </element>
     2810                <element name="delete" function="true" type="void">
     2811                        <description><![CDATA[Delete the creature (remove it without executing the onKill event). Removing creatures inside some event handlers (e.g. onCollision) might be unsafe.]]></description>
     2812                        <arguments>
     2813                                <argument name="creature object or index" type="untyped"/>
     2814                        </arguments>
     2815                </element>
     2816                <element name="kill" function="true" type="void">
     2817                        <description><![CDATA[Kill the creature (remove it and execute its onKill handler). Killing creatures inside some event handlers (e.g. onCollision) might be unsafe. The recommended and safe way of killing a creature is by setting its energy to 0.]]></description>
     2818                        <arguments>
     2819                                <argument name="creature object or index" type="integer"/>
     2820                        </arguments>
     2821                </element>
     2822                <element name="clear" function="true" type="void">
     2823                        <description><![CDATA[Delete all creatures]]></description>
     2824<arguments/></element>
     2825                <element name="iterator" type="Object"/>
     2826                <element name="getStatsMin" function="true" type="float">
     2827                        <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
     2828                        <arguments>
     2829                                <argument name="field name" type="string"/>
     2830                        </arguments>
     2831                </element>
     2832                <element name="getStatsAvg" function="true" type="float">
     2833                        <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
     2834                        <arguments>
     2835                                <argument name="field name" type="string"/>
     2836                        </arguments>
     2837                </element>
     2838                <element name="getStatsMax" function="true" type="float">
     2839                        <description><![CDATA[Retrieves data from stats.* object. Can only be used for fields covered by stats.* (subset of Creature fields).]]></description>
     2840                        <arguments>
     2841                                <argument name="field name" type="string"/>
     2842                        </arguments>
     2843                </element>
    27832844        </type>
    27842845        <type name="Populations" context="Global context">
     
    27962857
    27972858See also: Creature, Population.]]></description>
    2798                 <element name="creature" type="integer" deprecated="true">
    2799                         <description><![CDATA[Deprecated. Pass creature object to functions needing it, instead of the old "first select, then call" approach.]]></description>
    2800                 </element>
    28012859                <element name="group" type="integer" deprecated="true">
    28022860                        <description><![CDATA[Index of the currently selected group (Population).
    28032861Deprecated. Pass creature object to functions needing it, instead of the old "first select, then call" approach.]]></description>
    28042862                </element>
    2805                 <element name="iterator" type="Object"/>
    28062863                <element name="size" type="integer"/>
     2864                <element name="creature" type="integer" deprecated="true">
     2865                        <description><![CDATA[Deprecated. Pass creature object to functions needing it, instead of the old "first select, then call" approach.]]></description>
     2866                </element>
     2867                <element name="createFromGenotype" function="true" type="Creature" deprecated="true">
     2868                        <description><![CDATA[Uses the selected Genotype object.]]></description>
     2869<arguments/></element>
     2870                <element name="createFromString" function="true" type="Creature" deprecated="true">
     2871                        <description><![CDATA[Uses the supplied string argument.]]></description>
     2872                        <arguments>
     2873                                <argument name="genotype" type="string"/>
     2874                        </arguments>
     2875                </element>
     2876                <element name="killSelected" function="true" type="void" deprecated="true">
     2877                        <description><![CDATA[Applies to the selected Creature.]]></description>
     2878<arguments/></element>
     2879                <element name="deleteSelected" function="true" type="void" deprecated="true">
     2880                        <description><![CDATA[Applies to the selected Creature.]]></description>
     2881<arguments/></element>
    28072882                <element name="addGroup" function="true" type="Population">
    28082883                        <description><![CDATA[Adds a new population.]]></description>
    28092884                        <arguments>
    28102885                                <argument name="name" type="string"/>
     2886                        </arguments>
     2887                </element>
     2888                <element name="deleteGroup" function="true" type="void">
     2889                        <description><![CDATA[Removes a population.]]></description>
     2890                        <arguments>
     2891                                <argument name="index" type="integer"/>
    28112892                        </arguments>
    28122893                </element>
     
    28312912                        </arguments>
    28322913                </element>
    2833                 <element name="createFromGenotype" function="true" type="Creature" deprecated="true">
    2834                         <description><![CDATA[Uses the selected Genotype object.]]></description>
    2835 <arguments/></element>
    2836                 <element name="createFromString" function="true" type="Creature" deprecated="true">
    2837                         <description><![CDATA[Uses the supplied string argument.]]></description>
    2838                         <arguments>
    2839                                 <argument name="genotype" type="string"/>
    2840                         </arguments>
    2841                 </element>
    2842                 <element name="deleteGroup" function="true" type="void">
    2843                         <description><![CDATA[Removes a population.]]></description>
     2914                <element name="get" function="true" type="Population">
    28442915                        <arguments>
    28452916                                <argument name="index" type="integer"/>
    28462917                        </arguments>
    28472918                </element>
    2848                 <element name="deleteSelected" function="true" type="void" deprecated="true">
    2849                         <description><![CDATA[Applies to the selected Creature.]]></description>
    2850 <arguments/></element>
    28512919                <element name="findCreatureAt" function="true" type="Creature">
    28522920                        <arguments>
     
    28552923                        </arguments>
    28562924                </element>
    2857                 <element name="get" function="true" type="Population">
    2858                         <arguments>
    2859                                 <argument name="index" type="integer"/>
    2860                         </arguments>
    2861                 </element>
    2862                 <element name="killSelected" function="true" type="void" deprecated="true">
    2863                         <description><![CDATA[Applies to the selected Creature.]]></description>
    2864 <arguments/></element>
     2925                <element name="iterator" type="Object"/>
    28652926        </type>
    28662927        <type name="Ref" context="Global context">
     
    28742935function square(r)
    28752936{r.value=r.value*r.value;}
    2876 //square receives the Reference objects and changes its 'value' field]]></description>
    2877                 <element name="toString" type="string"/>
     2937//square receives the Reference object and changes its 'value' field]]></description>
    28782938                <element name="value" type="untyped"/>
     2939                <element name="newO" function="true">
     2940                        <description><![CDATA[(for internal use only) use &variablename to create Ref objects.]]></description>
     2941                </element>
    28792942                <element name="copyFrom" function="true" type="void">
    28802943                        <description><![CDATA[make the reference point to the same target,]]></description>
     
    28832946                        </arguments>
    28842947                </element>
    2885                 <element name="newO" function="true">
    2886                         <description><![CDATA[(for internal use only) use &variablename to create Ref objects.]]></description>
    2887                 </element>
     2948                <element name="toString" type="string"/>
    28882949        </type>
    28892950        <type name="Shapes" context="Global context">
    28902951<description><![CDATA[This object defines appearance of the elements of creatures (applies to the 'wireframe' display mode). Default shape definitions make food's "p:" look like a sphere, and manipulator's "p:" look like a robot hand. The model's Vstyle property is the name of the shape. Developers of experiment definitions can introduce new Vstyle(s) for their expdef and provide appropriate shape definitions by calling Shapes.set(...) in the onExpDefLoad() function.]]></description>
    2891                 <element name="clear" function="true" type="void"><arguments/></element>
    28922952                <element name="set" function="true" type="void">
    28932953                        <description><![CDATA[Arguments:
     
    29132973                        </arguments>
    29142974                </element>
     2975                <element name="clear" function="true" type="void"><arguments/></element>
    29152976        </type>
    29162977        <type name="Signal" context="Global context">
     
    29232984
    29242985Creating: Use "add" in Creature.signals, Neuro.signals, or World.signals.]]></description>
     2986                <element name="value" type="untyped">
     2987                        <description><![CDATA[Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating functions receive() and receiveFilter() ignore this attribute.]]></description>
     2988                </element>
     2989                <element name="power" type="float">
     2990                        <description><![CDATA[Signal power affects the aggregated signal value returned from receive() and receiveFilter().]]></description>
     2991                </element>
     2992                <element name="flavor" type="float">
     2993                        <description><![CDATA[Signal flavor can be used to differentiate between signals in a single channel.]]></description>
     2994                </element>
    29252995                <element name="channel" type="string">
    29262996                        <description><![CDATA[Channel name, read-only.]]></description>
    29272997                </element>
    2928                 <element name="flavor" type="float">
    2929                         <description><![CDATA[Signal flavor can be used to differentiate between signals in a single channel.]]></description>
    2930                 </element>
    29312998                <element name="pos" type="XYZ">
    29322999                        <description><![CDATA[Signal position, read-only.]]></description>
    29333000                </element>
    2934                 <element name="power" type="float">
    2935                         <description><![CDATA[Signal power affects the aggregated signal value returned from receive() and receiveFilter().]]></description>
    2936                 </element>
    2937                 <element name="value" type="untyped">
    2938                         <description><![CDATA[Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating functions receive() and receiveFilter() ignore this attribute.]]></description>
    2939                 </element>
    29403001                <element name="remove" function="true">
    29413002                        <description><![CDATA[Deletes the signal.]]></description>
     
    29433004        </type>
    29443005        <type name="SignalView" context="Global context">
     3006                <element name="clear" function="true">
     3007                        <description><![CDATA[Removes custom display settings that might have been defined by various scripts (expdef or show).]]></description>
     3008                </element>
     3009                <element name="mode" type="integer" min="0" max="2">
     3010                        <description><![CDATA["Automatic" labels all signal sources in all channels and shows the intensity map of the first channel. This is sufficient for many simple setups, but as the number of signals and channels grows, the display becomes cluttered. In such cases, the experiment definition can define "Custom" signal visualization tailored for the particular experiment.]]></description>
     3011                </element>
    29453012                <element name="labels" type="string">
    29463013                        <description><![CDATA[The label formula should return text to be displayed over the signal source, presumably by reading some values from the supplied Signal object. It is especially useful for more sophisticated signal usage scenarios, when Signal.value keeps a reference to an object (the default signal label only shows <XXX Object at xxxxx> in such cases).
     
    29513018return "val="+Signal.value;
    29523019return "power="+Signal.power;]]></description>
    2953                 </element>
    2954                 <element name="mode" type="integer" min="0" max="2">
    2955                         <description><![CDATA["Automatic" labels all signal sources in all channels and shows the intensity map of the first channel. This is sufficient for many simple setups, but as the number of signals and channels grows, the display becomes cluttered. In such cases, the experiment definition can define "Custom" signal visualization tailored for the particular experiment.]]></description>
    29563020                </element>
    29573021                <element name="addMap" function="true" type="void">
     
    29813045                        </arguments>
    29823046                </element>
    2983                 <element name="clear" function="true">
    2984                         <description><![CDATA[Removes custom display settings that might have been defined by various scripts (expdef or show).]]></description>
    2985                 </element>
    29863047        </type>
    29873048        <type name="sim_params" context="Global context">
    29883049<description><![CDATA[This object groups all simulator parameters so they can be loaded or saved with a single call (see scripts/standard_loadsave.inc). For other purposes please use specific objects, like Simulator, World, Populations, etc.]]></description>
    2989                 <element name="autosaveperiod" type="integer" min="0" max="100000">
    2990                         <description><![CDATA[Save simulation state once every n-th event
    2991 (events are defined by the script. For 'standard.expdef' it is after each death).
    2992 Save EXPT file first to initialize name for autosave files.
    2993 Slave simulators (in multithreaded experiments) ignore this setting and never create autosave files.]]></description>
    2994                 </element>
    2995                 <element name="bnoise_struct" type="float" min="0" max="10" default="0.0">
    2996                         <description><![CDATA[When >0, body constructs of creatures (position of Parts) will be randomly disturbed when they are created.]]></description>
    2997                 </element>
    2998                 <element name="bnoise_vel" type="float" min="0" max="10" default="0.0">
    2999                         <description><![CDATA[Random velocities will be applied to all body Parts (in MechaStick) or rigid segments (in ODE) of newly created creatures.]]></description>
    3000                 </element>
    3001                 <element name="changedProperty" type="integer"/>
    3002                 <element name="changedPropertyId" type="string"/>
    3003                 <element name="cpus" type="integer"/>
    3004                 <element name="createrr" type="integer" min="0" max="2" default="1"/>
    3005                 <element name="creatwarnfail" type="integer" min="0" max="1">
    3006                         <description><![CDATA[Creatures grown with warnings will not be simulated.]]></description>
    3007                 </element>
    3008                 <element name="expdef" type="string">
    3009                         <description><![CDATA[Choose the experiment framework
    3010 (in Windows GUI, confirm by pressing 'Apply')
    3011 
    3012 Stop the simulation before selecting another experiment definition.
    3013 It is a good practice to initialize the experiment before running the simulation.]]></description>
    3014                 </element>
    3015                 <element name="expdef_info" type="string"/>
    3016                 <element name="expdef_title" type="string"/>
    3017                 <element name="expparams" type="ExpParams"/>
    3018                 <element name="expstate" type="ExpState"/>
    3019                 <element name="f0_c_del" type="float" min="0" max="100" default="5.0">
    3020                         <description><![CDATA[]]></description>
    3021                 </element>
    3022                 <element name="f0_c_new" type="float" min="0" max="100" default="5.0">
    3023                         <description><![CDATA[]]></description>
    3024                 </element>
    3025                 <element name="f0_c_wei" type="float" min="0" max="100" default="10.0">
    3026                         <description><![CDATA[]]></description>
    3027                 </element>
    3028                 <element name="f0_j_del" type="float" min="0" max="100" default="5.0">
    3029                         <description><![CDATA[]]></description>
    3030                 </element>
    3031                 <element name="f0_j_new" type="float" min="0" max="100" default="5.0">
    3032                         <description><![CDATA[]]></description>
    3033                 </element>
    3034                 <element name="f0_j_rsf" type="float" min="0" max="100" default="10.0">
    3035                         <description><![CDATA[]]></description>
    3036                 </element>
    3037                 <element name="f0_j_stf" type="float" min="0" max="100" default="10.0">
    3038                         <description><![CDATA[]]></description>
    3039                 </element>
    3040                 <element name="f0_j_stm" type="float" min="0" max="100" default="10.0">
    3041                         <description><![CDATA[]]></description>
    3042                 </element>
    3043                 <element name="f0_j_vblu" type="float" min="0" max="100" default="0.0">
    3044                         <description><![CDATA[]]></description>
    3045                 </element>
    3046                 <element name="f0_j_vgrn" type="float" min="0" max="100" default="0.0">
    3047                         <description><![CDATA[]]></description>
    3048                 </element>
    3049                 <element name="f0_j_vred" type="float" min="0" max="100" default="0.0">
    3050                         <description><![CDATA[]]></description>
    3051                 </element>
    3052                 <element name="f0_n_del" type="float" min="0" max="100" default="5.0">
    3053                         <description><![CDATA[]]></description>
    3054                 </element>
    3055                 <element name="f0_n_new" type="float" min="0" max="100" default="5.0">
    3056                         <description><![CDATA[]]></description>
    3057                 </element>
    3058                 <element name="f0_n_prp" type="float" min="0" max="100" default="10.0">
    3059                         <description><![CDATA[]]></description>
    3060                 </element>
    3061                 <element name="f0_nodel_tag" type="integer" min="0" max="1" default="1">
    3062                         <description><![CDATA[You can tag elements using their 'i' field and the i="mi=d" tag.
    3063 Mutations will not delete such elements.
    3064 The i="mi=dm" combination is allowed.]]></description>
    3065                 </element>
    3066                 <element name="f0_nomod_tag" type="integer" min="0" max="1" default="1">
    3067                         <description><![CDATA[You can tag elements using their 'i' field and the i="mi=m" tag.
    3068 Mutations will not modify properties of such elements.
    3069 The i="mi=md" combination is allowed.]]></description>
    3070                 </element>
    3071                 <element name="f0_p_asm" type="float" min="0" max="100" default="10.0">
    3072                         <description><![CDATA[]]></description>
    3073                 </element>
    3074                 <element name="f0_p_del" type="float" min="0" max="100" default="5.0">
    3075                         <description><![CDATA[]]></description>
    3076                 </element>
    3077                 <element name="f0_p_frc" type="float" min="0" max="100" default="10.0">
    3078                         <description><![CDATA[]]></description>
    3079                 </element>
    3080                 <element name="f0_p_ing" type="float" min="0" max="100" default="10.0">
    3081                         <description><![CDATA[]]></description>
    3082                 </element>
    3083                 <element name="f0_p_mas" type="float" min="0" max="100" default="10.0">
    3084                         <description><![CDATA[]]></description>
    3085                 </element>
    3086                 <element name="f0_p_new" type="float" min="0" max="100" default="5.0">
    3087                         <description><![CDATA[]]></description>
    3088                 </element>
    3089                 <element name="f0_p_pos" type="float" min="0" max="100" default="10.0">
    3090                         <description><![CDATA[]]></description>
    3091                 </element>
    3092                 <element name="f0_p_swp" type="float" min="0" max="100" default="10.0">
    3093                         <description><![CDATA[]]></description>
    3094                 </element>
    3095                 <element name="f0_p_vsiz" type="float" min="0" max="100" default="0.0">
    3096                         <description><![CDATA[]]></description>
    3097                 </element>
    3098                 <element name="f1_mut_exmod" type="string">
    3099                         <description><![CDATA[Modifiers that will not be added nor deleted during mutation
    3100 (all: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh)]]></description>
    3101                 </element>
    3102                 <element name="f1_nmConn" type="float" min="0" max="100" default="0.1">
    3103                         <description><![CDATA[]]></description>
    3104                 </element>
    3105                 <element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
    3106                         <description><![CDATA[Adds a (connected) neuron or removes a neuron]]></description>
    3107                 </element>
    3108                 <element name="f1_nmProp" type="float" min="0" max="100" default="0.1">
    3109                         <description><![CDATA[]]></description>
    3110                 </element>
    3111                 <element name="f1_nmVal" type="float" min="0" max="100" default="0.05"/>
    3112                 <element name="f1_nmWei" type="float" min="0" max="100" default="1.0"/>
    3113                 <element name="f1_smComma" type="float" min="0" max="100" default="0.02"/>
    3114                 <element name="f1_smJunct" type="float" min="0" max="100" default="0.02"/>
    3115                 <element name="f1_smModif" type="float" min="0" max="100" default="0.1">
    3116                         <description><![CDATA[Modifiers: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh]]></description>
    3117                 </element>
    3118                 <element name="f1_smX" type="float" min="0" max="100" default="0.05"/>
    3119                 <element name="f1_xo_propor" type="integer" min="0" max="1" default="1">
    3120                         <description><![CDATA[Cross over (exchange) corresponding segments of the two parent genotypes?
    3121 
    3122 f1 uses a two-point crossing over.
    3123 If this option is turned on, cut points will be selected proportionally to neural genes.
    3124 Thus, if both parents have the same number of neurons, then this will be preserved in their children.]]></description>
    3125                 </element>
    3126                 <element name="f2_mutAddOper" type="float" min="0" max="1" default="0.4">
    3127                         <description><![CDATA[]]></description>
    3128                 </element>
    3129                 <element name="f2_mutConnElem" type="float" min="0" max="1" default="0.33">
    3130                         <description><![CDATA[]]></description>
    3131                 </element>
    3132                 <element name="f2_mutDelOper" type="float" min="0" max="1" default="0.1">
    3133                         <description><![CDATA[]]></description>
    3134                 </element>
    3135                 <element name="f2_mutHandleOper" type="float" min="0" max="1" default="0.3">
    3136                         <description><![CDATA[]]></description>
    3137                 </element>
    3138                 <element name="f2_mutJointElem" type="float" min="0" max="1" default="0.33">
    3139                         <description><![CDATA[]]></description>
    3140                 </element>
    3141                 <element name="f2_mutNeuroElem" type="float" min="0" max="1" default="0.33">
    3142                         <description><![CDATA[]]></description>
    3143                 </element>
    3144                 <element name="f2_mutPropOper" type="float" min="0" max="1" default="0.2">
    3145                         <description><![CDATA[]]></description>
    3146                 </element>
    3147                 <element name="f3_mutDelIns" type="float" min="0" max="1" default="0.1">
    3148                         <description><![CDATA[]]></description>
    3149                 </element>
    3150                 <element name="f3_mutDelInsLength" type="integer" min="1" max="100" default="5">
    3151                         <description><![CDATA[]]></description>
    3152                 </element>
    3153                 <element name="f3_mutDelInsPerChar" type="float" min="0" max="1" default="0.05">
    3154                         <description><![CDATA[]]></description>
    3155                 </element>
    3156                 <element name="f3_mutDuplication" type="float" min="0" max="1" default="0.05">
    3157                         <description><![CDATA[]]></description>
    3158                 </element>
    3159                 <element name="f3_mutSubstitution" type="float" min="0" max="1" default="0.6">
    3160                         <description><![CDATA[]]></description>
    3161                 </element>
    3162                 <element name="f3_mutSubstPerChar" type="float" min="0" max="1" default="0.1">
    3163                         <description><![CDATA[]]></description>
    3164                 </element>
    3165                 <element name="f3_mutTranslocation" type="float" min="0" max="1" default="0.15">
    3166                         <description><![CDATA[]]></description>
    3167                 </element>
    3168                 <element name="f3_xovCrossingOver" type="float" min="0" max="1" default="0.2">
    3169                         <description><![CDATA[]]></description>
    3170                 </element>
    3171                 <element name="f3_xovGeneTransfer" type="float" min="0" max="1" default="0.8">
    3172                         <description><![CDATA[]]></description>
    3173                 </element>
    3174                 <element name="f4_mut_add" type="float" min="0" max="100" default="50.0">
    3175                         <description><![CDATA[mutation: probability of adding a node]]></description>
    3176                 </element>
    3177                 <element name="f4_mut_add_conn" type="float" min="0" max="100" default="15.0">
    3178                         <description><![CDATA[add node mutation: probability of adding a neural connection]]></description>
    3179                 </element>
    3180                 <element name="f4_mut_add_div" type="float" min="0" max="100" default="20.0">
    3181                         <description><![CDATA[add node mutation: probability of adding a division]]></description>
    3182                 </element>
    3183                 <element name="f4_mut_add_neupar" type="float" min="0" max="100" default="5.0">
    3184                         <description><![CDATA[add node mutation: probability of adding a neuron property/modifier]]></description>
    3185                 </element>
    3186                 <element name="f4_mut_add_rep" type="float" min="0" max="100" default="10.0">
    3187                         <description><![CDATA[add node mutation: probability of adding a repetition]]></description>
    3188                 </element>
    3189                 <element name="f4_mut_add_simp" type="float" min="0" max="100" default="50.0">
    3190                         <description><![CDATA[add node mutation: probability of adding a random, simple gene]]></description>
    3191                 </element>
    3192                 <element name="f4_mut_del" type="float" min="0" max="100" default="20.0">
    3193                         <description><![CDATA[mutation: probability of deleting a node]]></description>
    3194                 </element>
    3195                 <element name="f4_mut_mod" type="float" min="0" max="100" default="30.0">
    3196                         <description><![CDATA[mutation: probability of changing a node]]></description>
    3197                 </element>
    3198                 <element name="f9_mut" type="float" min="0" max="1" default="0.1">
    3199                         <description><![CDATA[How many genes should be mutated during single mutation (1=all genes, 0.1=ten percent)]]></description>
    3200                 </element>
    3201                 <element name="fF_xover" type="float" min="0" max="0.5" default="0.5">
    3202                         <description><![CDATA[0.5 => children are averaged parents.
    3203 0.2 => children are only 20% different from parents.
    3204 0 => each child is identical to one parent (no crossover).]]></description>
    3205                 </element>
    3206                 <element name="filecomm" type="integer" min="0" max="1" default="1">
    3207                         <description><![CDATA[Display comments encountered in opened files]]></description>
    3208                 </element>
    3209                 <element name="gen_extmutinfo" type="integer" min="0" max="2" default="0">
    3210                         <description><![CDATA[If active, information about employed mutation method will be stored in the 'info' field of each mutated genotype.]]></description>
    3211                 </element>
    3212                 <element name="gen_hilite" type="integer" min="0" max="1" default="1">
    3213                         <description><![CDATA[Use colors for genes?
    3214 (slows down viewing/editing of huge genotypes)]]></description>
    3215                 </element>
    3216                 <element name="gen_hist" type="integer" min="0" max="1" default="0">
    3217                         <description><![CDATA[Required for phylogenetic analysis]]></description>
    3218                 </element>
    3219                 <element name="genepools" type="GenePools"/>
    3220                 <element name="genkonw0" type="integer" min="0" max="1">
    3221                         <description><![CDATA[]]></description>
    3222                 </element>
    3223                 <element name="genkonw1" type="integer" min="0" max="1">
    3224                         <description><![CDATA[]]></description>
    3225                 </element>
    3226                 <element name="genkonw2" type="integer" min="0" max="1">
    3227                         <description><![CDATA[]]></description>
    3228                 </element>
    3229                 <element name="genkonw3" type="integer" min="0" max="1">
    3230                         <description><![CDATA[]]></description>
    3231                 </element>
    3232                 <element name="genkonw4" type="integer" min="0" max="1">
    3233                         <description><![CDATA[]]></description>
    3234                 </element>
    3235                 <element name="genkonw5" type="integer" min="0" max="1">
    3236                         <description><![CDATA[]]></description>
    3237                 </element>
    3238                 <element name="genoper_f0" type="integer" min="0" max="0">
    3239                         <description><![CDATA[]]></description>
    3240                 </element>
    3241                 <element name="genoper_f1" type="integer" min="0" max="0">
    3242                         <description><![CDATA[]]></description>
    3243                 </element>
    3244                 <element name="genoper_f2" type="integer" min="0" max="0">
    3245                         <description><![CDATA[]]></description>
    3246                 </element>
    3247                 <element name="genoper_f3" type="integer" min="0" max="0">
    3248                         <description><![CDATA[]]></description>
    3249                 </element>
    3250                 <element name="genoper_f4" type="integer" min="0" max="0">
    3251                         <description><![CDATA[]]></description>
    3252                 </element>
    3253                 <element name="genoper_f9" type="integer" min="0" max="0">
    3254                         <description><![CDATA[]]></description>
    3255                 </element>
    3256                 <element name="genoper_fF" type="integer" min="0" max="0">
    3257                         <description><![CDATA[]]></description>
    3258                 </element>
    3259                 <element name="geom_density" type="float" min="0.01" max="100" default="1.0">
    3260                         <description><![CDATA[Affects the geometry calculation precision]]></description>
    3261                 </element>
    3262                 <element name="groupchk" type="integer" min="0" max="1"/>
    3263                 <element name="identity" type="integer">
    3264                         <description><![CDATA[-1 for master simulator, 0...count-1 for slaves]]></description>
    3265                 </element>
    3266                 <element name="importchk" type="integer" min="0" max="1"/>
    3267                 <element name="lastCheckpoint" type="untyped">
    3268                         <description><![CDATA[Most recently reported by the experiment definition script.]]></description>
    3269                 </element>
    3270                 <element name="loadchk" type="integer" min="0" max="1"/>
    3271                 <element name="maxjoint" type="float" min="0" max="100" default="2.0"/>
    3272                 <element name="minjoint" type="float" min="0" max="100" default="0.0"/>
    3273                 <element name="neuadd_N" type="integer" min="0" max="1">
    3274                         <description><![CDATA[Standard neuron
    3275 
    3276 Characteristics:
    3277    supports any number of inputs
    3278    provides output value
    3279    does not require location in body
    3280 
    3281 
    3282 Properties:
    3283    Inertia (in) float 0..1
    3284    Force (fo) float 0..999
    3285    Sigmoid (si) float -99999..99999
    3286    State (s) float -1..1]]></description>
    3287                 </element>
    3288                 <element name="neuadd_Nu" type="integer" min="0" max="1">
    3289                         <description><![CDATA[Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1.
    3290 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.
    3291 
    3292 Characteristics:
    3293    supports any number of inputs
    3294    provides output value
    3295    does not require location in body
    3296 
    3297 
    3298 Properties:
    3299    Inertia (in) float 0..1
    3300    Force (fo) float 0..999
    3301    Sigmoid (si) float -99999..99999
    3302    State (s) float -1..1]]></description>
    3303                 </element>
    3304                 <element name="neuadd_G" type="integer" min="0" max="1">
    3305                         <description><![CDATA[Equilibrium sensor.
    3306 0=the stick is horizontal
    3307 +1/-1=the stick is vertical
    3308 
    3309 Characteristics:
    3310    does not use inputs
    3311    provides output value
    3312    should be located on a Joint
    3313 ]]></description>
    3314                 </element>
    3315                 <element name="neuadd_T" type="integer" min="0" max="1">
    3316                         <description><![CDATA[Touch sensor.
    3317 -1=no contact
    3318 0=just touching
    3319 >0=pressing, value depends on the force applied
    3320 
    3321 Characteristics:
    3322    does not use inputs
    3323    provides output value
    3324    should be located on a Part
    3325 
    3326 
    3327 Properties:
    3328    Range (r) float 0..1]]></description>
    3329                 </element>
    3330                 <element name="neuadd_S" type="integer" min="0" max="1">
    3331                         <description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
    3332 Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
    3333 
    3334 Characteristics:
    3335    does not use inputs
    3336    provides output value
    3337    should be located on a Part
    3338 ]]></description>
    3339                 </element>
    3340                 <element name="neuadd_Constant" type="integer" min="0" max="1">
    3341                         <description><![CDATA[Constant value
    3342 
    3343 Characteristics:
    3344    does not use inputs
    3345    provides output value
    3346    does not require location in body
    3347 ]]></description>
    3348                 </element>
    3349                 <element name="neuadd_Bend_muscle" type="integer" min="0" max="1">
    3350                         <description><![CDATA[Characteristics:
    3351    uses single input
    3352    does not provide output value
    3353    should be located on a Joint
    3354 
    3355 
    3356 Properties:
    3357    power (p) float 0.01..1
    3358    bending range (r) float 0..1]]></description>
    3359                 </element>
    3360                 <element name="neuadd_Rotation_muscle" type="integer" min="0" max="1">
    3361                         <description><![CDATA[Characteristics:
    3362    uses single input
    3363    does not provide output value
    3364    should be located on a Joint
    3365 
    3366 
    3367 Properties:
    3368    power (p) float 0.01..1]]></description>
    3369                 </element>
    3370                 <element name="neuadd_D" type="integer" min="0" max="1">
    3371                         <description><![CDATA[Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights
    3372 
    3373 Characteristics:
    3374    supports any number of inputs
    3375    provides output value
    3376    does not require location in body
    3377 ]]></description>
    3378                 </element>
    3379                 <element name="neuadd_Fuzzy" type="integer" min="0" max="1">
    3380                         <description><![CDATA[Refer to publications to learn more about this neuron.
    3381 
    3382 Characteristics:
    3383    supports any number of inputs
    3384    provides output value
    3385    does not require location in body
    3386 
    3387 
    3388 Properties:
    3389    number of fuzzy sets (ns) integer
    3390    number of rules (nr) integer
    3391    fuzzy sets (fs) string
    3392    fuzzy rules (fr) string]]></description>
    3393                 </element>
    3394                 <element name="neuadd_VEye" type="integer" min="0" max="1">
    3395                         <description><![CDATA[Refer to publications to learn more about this neuron.
    3396 
    3397 Characteristics:
    3398    uses single input
    3399    provides output value
    3400    should be located on a Part
    3401 
    3402 
    3403 Properties:
    3404    target.x (tx) float
    3405    target.y (ty) float
    3406    target.z (tz) float
    3407    target shape (ts) string
    3408    perspective (p) float 0.1..10
    3409    scale (s) float 0.1..100
    3410    show hidden lines (h) integer 0..1
    3411    output lines count (each line needs four channels) (o) integer 0..99
    3412    debug (d) integer 0..1]]></description>
    3413                 </element>
    3414                 <element name="neuadd_VMotor" type="integer" min="0" max="1">
    3415                         <description><![CDATA[Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron.
    3416 
    3417 Characteristics:
    3418    supports any number of inputs
    3419    provides output value
    3420    does not require location in body
    3421 
    3422 
    3423 Properties:
    3424    number of basic features (noIF) integer
    3425    number of degrees of freedom (noDim) integer
    3426    parameters (params) string]]></description>
    3427                 </element>
    3428                 <element name="neuadd_Sti" type="integer" min="0" max="1">
    3429                         <description><![CDATA[Characteristics:
    3430    uses single input
    3431    does not provide output value
    3432    should be located on a Part
    3433 ]]></description>
    3434                 </element>
    3435                 <element name="neuadd_LMu" type="integer" min="0" max="1">
    3436                         <description><![CDATA[Characteristics:
    3437    uses single input
    3438    does not provide output value
    3439    should be located on a Joint
    3440 
    3441 
    3442 Properties:
    3443    power (p) float 0.01..1]]></description>
    3444                 </element>
    3445                 <element name="neuadd_Water" type="integer" min="0" max="1">
    3446                         <description><![CDATA[Output signal:
    3447 0=on or above water surface
    3448 1=under water (deeper than 1)
    3449 0..1=in the transient area just below water surface
    3450 
    3451 Characteristics:
    3452    does not use inputs
    3453    provides output value
    3454    should be located on a Part
    3455 ]]></description>
    3456                 </element>
    3457                 <element name="neuadd_Energy" type="integer" min="0" max="1">
    3458                         <description><![CDATA[The current energy level divided by the initial energy level.
    3459 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
    3460 
    3461 Characteristics:
    3462    does not use inputs
    3463    provides output value
    3464    does not require location in body
    3465 ]]></description>
    3466                 </element>
    3467                 <element name="neuadd_Ch" type="integer" min="0" max="1">
    3468                         <description><![CDATA[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.
    3469 
    3470 Characteristics:
    3471    supports any number of inputs
    3472    provides output value
    3473    does not require location in body
    3474 ]]></description>
    3475                 </element>
    3476                 <element name="neuadd_ChMux" type="integer" min="0" max="1">
    3477                         <description><![CDATA[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)
    3478 
    3479 Characteristics:
    3480    uses 2 inputs
    3481    provides output value
    3482    does not require location in body
    3483 ]]></description>
    3484                 </element>
    3485                 <element name="neuadd_ChSel" type="integer" min="0" max="1">
    3486                         <description><![CDATA[Outputs a single channel (selected by the "ch" parameter) from multichannel input
    3487 
    3488 Characteristics:
    3489    uses single input
    3490    provides output value
    3491    does not require location in body
    3492 
    3493 
    3494 Properties:
    3495    channel (ch) integer]]></description>
    3496                 </element>
    3497                 <element name="neuadd_Rnd" type="integer" min="0" max="1">
    3498                         <description><![CDATA[Generates random noise (subsequent random values in the range of -1..+1)
    3499 
    3500 Characteristics:
    3501    does not use inputs
    3502    provides output value
    3503    does not require location in body
    3504 ]]></description>
    3505                 </element>
    3506                 <element name="neuadd_Sin" type="integer" min="0" max="1">
    3507                         <description><![CDATA[Output frequency = f0+input
    3508 
    3509 Characteristics:
    3510    uses single input
    3511    provides output value
    3512    does not require location in body
    3513 
    3514 
    3515 Properties:
    3516    base frequency (f0) float -1..1
    3517    time (t) float 0..6.28319]]></description>
    3518                 </element>
    3519                 <element name="ncl_N" type="integer" min="0" max="1">
    3520                         <description><![CDATA[Standard neuron
    3521 
    3522 Characteristics:
    3523    supports any number of inputs
    3524    provides output value
    3525    does not require location in body
    3526 
    3527 
    3528 Properties:
    3529    Inertia (in) float 0..1
    3530    Force (fo) float 0..999
    3531    Sigmoid (si) float -99999..99999
    3532    State (s) float -1..1]]></description>
    3533                 </element>
    3534                 <element name="ncl_Nu" type="integer" min="0" max="1">
    3535                         <description><![CDATA[Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1.
    3536 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.
    3537 
    3538 Characteristics:
    3539    supports any number of inputs
    3540    provides output value
    3541    does not require location in body
    3542 
    3543 
    3544 Properties:
    3545    Inertia (in) float 0..1
    3546    Force (fo) float 0..999
    3547    Sigmoid (si) float -99999..99999
    3548    State (s) float -1..1]]></description>
    3549                 </element>
    3550                 <element name="ncl_G" type="integer" min="0" max="1">
    3551                         <description><![CDATA[Equilibrium sensor.
    3552 0=the stick is horizontal
    3553 +1/-1=the stick is vertical
    3554 
    3555 Characteristics:
    3556    does not use inputs
    3557    provides output value
    3558    should be located on a Joint
    3559 ]]></description>
    3560                 </element>
    3561                 <element name="ncl_T" type="integer" min="0" max="1">
    3562                         <description><![CDATA[Touch sensor.
    3563 -1=no contact
    3564 0=just touching
    3565 >0=pressing, value depends on the force applied
    3566 
    3567 Characteristics:
    3568    does not use inputs
    3569    provides output value
    3570    should be located on a Part
    3571 
    3572 
    3573 Properties:
    3574    Range (r) float 0..1]]></description>
    3575                 </element>
    3576                 <element name="ncl_S" type="integer" min="0" max="1">
    3577                         <description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
    3578 Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
    3579 
    3580 Characteristics:
    3581    does not use inputs
    3582    provides output value
    3583    should be located on a Part
    3584 ]]></description>
    3585                 </element>
    3586                 <element name="ncl_Constant" type="integer" min="0" max="1">
    3587                         <description><![CDATA[Constant value
    3588 
    3589 Characteristics:
    3590    does not use inputs
    3591    provides output value
    3592    does not require location in body
    3593 ]]></description>
    3594                 </element>
    3595                 <element name="ncl_Bend_muscle" type="integer" min="0" max="1">
    3596                         <description><![CDATA[Characteristics:
    3597    uses single input
    3598    does not provide output value
    3599    should be located on a Joint
    3600 
    3601 
    3602 Properties:
    3603    power (p) float 0.01..1
    3604    bending range (r) float 0..1]]></description>
    3605                 </element>
    3606                 <element name="ncl_Rotation_muscle" type="integer" min="0" max="1">
    3607                         <description><![CDATA[Characteristics:
    3608    uses single input
    3609    does not provide output value
    3610    should be located on a Joint
    3611 
    3612 
    3613 Properties:
    3614    power (p) float 0.01..1]]></description>
    3615                 </element>
    3616                 <element name="ncl_D" type="integer" min="0" max="1">
    3617                         <description><![CDATA[Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights
    3618 
    3619 Characteristics:
    3620    supports any number of inputs
    3621    provides output value
    3622    does not require location in body
    3623 ]]></description>
    3624                 </element>
    3625                 <element name="ncl_Fuzzy" type="integer" min="0" max="1">
    3626                         <description><![CDATA[Refer to publications to learn more about this neuron.
    3627 
    3628 Characteristics:
    3629    supports any number of inputs
    3630    provides output value
    3631    does not require location in body
    3632 
    3633 
    3634 Properties:
    3635    number of fuzzy sets (ns) integer
    3636    number of rules (nr) integer
    3637    fuzzy sets (fs) string
    3638    fuzzy rules (fr) string]]></description>
    3639                 </element>
    3640                 <element name="ncl_VEye" type="integer" min="0" max="1">
    3641                         <description><![CDATA[Refer to publications to learn more about this neuron.
    3642 
    3643 Characteristics:
    3644    uses single input
    3645    provides output value
    3646    should be located on a Part
    3647 
    3648 
    3649 Properties:
    3650    target.x (tx) float
    3651    target.y (ty) float
    3652    target.z (tz) float
    3653    target shape (ts) string
    3654    perspective (p) float 0.1..10
    3655    scale (s) float 0.1..100
    3656    show hidden lines (h) integer 0..1
    3657    output lines count (each line needs four channels) (o) integer 0..99
    3658    debug (d) integer 0..1]]></description>
    3659                 </element>
    3660                 <element name="ncl_VMotor" type="integer" min="0" max="1">
    3661                         <description><![CDATA[Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron.
    3662 
    3663 Characteristics:
    3664    supports any number of inputs
    3665    provides output value
    3666    does not require location in body
    3667 
    3668 
    3669 Properties:
    3670    number of basic features (noIF) integer
    3671    number of degrees of freedom (noDim) integer
    3672    parameters (params) string]]></description>
    3673                 </element>
    3674                 <element name="ncl_Sti" type="integer" min="0" max="1">
    3675                         <description><![CDATA[Characteristics:
    3676    uses single input
    3677    does not provide output value
    3678    should be located on a Part
    3679 ]]></description>
    3680                 </element>
    3681                 <element name="ncl_LMu" type="integer" min="0" max="1">
    3682                         <description><![CDATA[Characteristics:
    3683    uses single input
    3684    does not provide output value
    3685    should be located on a Joint
    3686 
    3687 
    3688 Properties:
    3689    power (p) float 0.01..1]]></description>
    3690                 </element>
    3691                 <element name="ncl_Water" type="integer" min="0" max="1">
    3692                         <description><![CDATA[Output signal:
    3693 0=on or above water surface
    3694 1=under water (deeper than 1)
    3695 0..1=in the transient area just below water surface
    3696 
    3697 Characteristics:
    3698    does not use inputs
    3699    provides output value
    3700    should be located on a Part
    3701 ]]></description>
    3702                 </element>
    3703                 <element name="ncl_Energy" type="integer" min="0" max="1">
    3704                         <description><![CDATA[The current energy level divided by the initial energy level.
    3705 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
    3706 
    3707 Characteristics:
    3708    does not use inputs
    3709    provides output value
    3710    does not require location in body
    3711 ]]></description>
    3712                 </element>
    3713                 <element name="ncl_Ch" type="integer" min="0" max="1">
    3714                         <description><![CDATA[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.
    3715 
    3716 Characteristics:
    3717    supports any number of inputs
    3718    provides output value
    3719    does not require location in body
    3720 ]]></description>
    3721                 </element>
    3722                 <element name="ncl_ChMux" type="integer" min="0" max="1">
    3723                         <description><![CDATA[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)
    3724 
    3725 Characteristics:
    3726    uses 2 inputs
    3727    provides output value
    3728    does not require location in body
    3729 ]]></description>
    3730                 </element>
    3731                 <element name="ncl_ChSel" type="integer" min="0" max="1">
    3732                         <description><![CDATA[Outputs a single channel (selected by the "ch" parameter) from multichannel input
    3733 
    3734 Characteristics:
    3735    uses single input
    3736    provides output value
    3737    does not require location in body
    3738 
    3739 
    3740 Properties:
    3741    channel (ch) integer]]></description>
    3742                 </element>
    3743                 <element name="ncl_Rnd" type="integer" min="0" max="1">
    3744                         <description><![CDATA[Generates random noise (subsequent random values in the range of -1..+1)
    3745 
    3746 Characteristics:
    3747    does not use inputs
    3748    provides output value
    3749    does not require location in body
    3750 ]]></description>
    3751                 </element>
    3752                 <element name="ncl_Sin" type="integer" min="0" max="1">
    3753                         <description><![CDATA[Output frequency = f0+input
    3754 
    3755 Characteristics:
    3756    uses single input
    3757    provides output value
    3758    does not require location in body
    3759 
    3760 
    3761 Properties:
    3762    base frequency (f0) float -1..1
    3763    time (t) float 0..6.28319]]></description>
    3764                 </element>
    3765                 <element name="nnoise" type="float" min="0" max="1" default="0.0">
    3766                         <description><![CDATA[Gaussian 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.]]></description>
    3767                 </element>
    3768                 <element name="nnspeed" type="float" min="0" max="1000" default="1.0">
    3769                         <description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
    3770                 </element>
    3771                 <element name="odeairdrag" type="float" min="0" max="0.5" default="0.01">
    3772                         <description><![CDATA[A drag force ("air drag") proportional to the velocity of mass centers of moving parts]]></description>
    3773                 </element>
    3774                 <element name="odecol2bounce" type="float" min="0" max="1" default="0.1"/>
    3775                 <element name="odecol2bouncevel" type="float" min="0" max="1" default="0.01"/>
    3776                 <element name="odecol2mumax" type="float" min="0" max="10" default="1.0">
    3777                         <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
    3778                 </element>
    3779                 <element name="odecol2mumin" type="float" min="0" max="10" default="0.1">
    3780                         <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
    3781                 </element>
    3782                 <element name="odecol2softcfm" type="float" min="0" max="1" default="0.0"/>
    3783                 <element name="odecol2softerp" type="float" min="0" max="1" default="0.0"/>
    3784                 <element name="odecolbounce" type="float" min="0" max="1" default="0.1"/>
    3785                 <element name="odecolbouncevel" type="float" min="0" max="1" default="0.01"/>
    3786                 <element name="odecolmumax" type="float" min="0" max="10" default="5.0">
    3787                         <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
    3788                 </element>
    3789                 <element name="odecolmumin" type="float" min="0" max="10" default="0.1">
    3790                         <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
    3791                 </element>
    3792                 <element name="odecolsoftcfm" type="float" min="0" max="1" default="0.0"/>
    3793                 <element name="odecolsofterp" type="float" min="0" max="1" default="0.0"/>
    3794                 <element name="odemusclemax" type="float" min="0" max="100" default="10.0">
    3795                         <description><![CDATA[i.e. "MMMMM" if f1]]></description>
    3796                 </element>
    3797                 <element name="odemusclemin" type="float" min="0" max="100" default="0.0">
    3798                         <description><![CDATA[i.e. "mmmmm" in f1]]></description>
    3799                 </element>
    3800                 <element name="odemusclespeed" type="float" min="0" max="10" default="1.0">
    3801                         <description><![CDATA[Muscle state cannot change faster than the supplied value]]></description>
    3802                 </element>
    3803                 <element name="odeseed" type="integer" min="0" max="2">
    3804                         <description><![CDATA[Affects collisions.
    3805 - 'Truly random' is closest to the standard ODE operation. Use Math.seed to influence randomness in ODE collisions.
    3806 - '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'.
    3807 - '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.
    3808 ]]></description>
    3809                 </element>
    3810                 <element name="odesepsticks" type="integer" min="0" max="1" default="0">
    3811                         <description><![CDATA[Each stick gets a separate ODE body (like in MechaStick)]]></description>
    3812                 </element>
    3813                 <element name="odeshape" type="integer" min="0" max="1"/>
    3814                 <element name="odestep" type="float" min="0.001" max="1" default="0.05"/>
    3815                 <element name="odewaterbuoy" type="float" min="0" max="2" default="1.0"/>
    3816                 <element name="odewaterdrag" type="float" min="0.001" max="1" default="0.5"/>
    3817                 <element name="odeworldcfm" type="float" min="0" max="1" default="1e-05">
    3818                         <description><![CDATA[World CFM (constraint force mixing)]]></description>
    3819                 </element>
    3820                 <element name="odeworlderp" type="float" min="0" max="1" default="0.2">
    3821                         <description><![CDATA[World ERP (error reduction parameter)]]></description>
    3822                 </element>
    3823                 <element name="overwrite" type="integer" min="0" max="1">
    3824                         <description><![CDATA[Overwite existing files or create their backups]]></description>
    3825                 </element>
    3826                 <element name="populations" type="Populations"/>
    3827                 <element name="randinit" type="float" min="0" max="10" default="0.01">
    3828                         <description><![CDATA[Allowed range for initializing all neuron states with uniform distribution random numbers and zero mean. Set to 0 for deterministic initialization.]]></description>
    3829                 </element>
    3830                 <element name="resetonexpdef" type="integer" min="0" max="1" default="1">
    3831                         <description><![CDATA[If turned on: when a new experiment definition is selected, default values are loaded for most of the simulator parameters, and gene pools and populations are cleared.
    3832 If turned off: parameters from previous experiment definition will remain (dangerous).]]></description>
    3833                 </element>
    3834                 <element name="running" type="integer" min="0" max="1">
    3835                         <description><![CDATA[useful for synchronizing the user interface state]]></description>
    3836                 </element>
    3837                 <element name="signals" type="WorldSignals"/>
    3838                 <element name="simil_method" type="integer" min="0" max="1" default="0">
    3839                         <description><![CDATA[]]></description>
    3840                 </element>
    3841                 <element name="simil_neuro" type="float" min="0" max="100" default="0.5">
    3842                         <description><![CDATA[]]></description>
    3843                 </element>
    3844                 <element name="simil_partdeg" type="float" min="0" max="100" default="1.0">
    3845                         <description><![CDATA[]]></description>
    3846                 </element>
    3847                 <element name="simil_parts" type="float" min="0" max="100" default="0.0">
    3848                         <description><![CDATA[Differing number of parts is also handled by the 'part degree' similarity component.]]></description>
    3849                 </element>
    3850                 <element name="simspeed" type="integer">
    3851                         <description><![CDATA[steps/second]]></description>
    3852                 </element>
    3853                 <element name="simtype" type="integer" min="0" max="1" default="0">
    3854                         <description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
    3855 ODE is Open Dynamics Engine by Russel Smith et al.
    3856 
    3857 NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
    3858                 </element>
    3859                 <element name="slaves" type="SlaveSimulators"/>
    3860                 <element name="symAlphaSteps" type="integer" min="2" max="50" default="20">
    3861                         <description><![CDATA[Default number of samples per full angle (#1)]]></description>
    3862                 </element>
    3863                 <element name="symBetaSteps" type="integer" min="2" max="50" default="20">
    3864                         <description><![CDATA[Default number of samples per full angle (#2)]]></description>
    3865                 </element>
    3866                 <element name="symPosSteps" type="integer" min="2" max="50" default="10">
    3867                         <description><![CDATA[Default number of samples per stick length]]></description>
    3868                 </element>
    3869                 <element name="symResultA" type="float"/>
    3870                 <element name="symResultB" type="float"/>
    3871                 <element name="symResultC" type="float"/>
    3872                 <element name="symResultD" type="float"/>
    3873                 <element name="time" type="integer"/>
    3874                 <element name="touchrange" type="float" min="0" max="100" default="1.0"/>
    3875                 <element name="user" type="untyped"/>
    3876                 <element name="usercode" type="string">
    3877                         <description><![CDATA[This script overrides the experiment definition]]></description>
    3878                 </element>
    3879                 <element name="vmdebug" type="integer" min="0" max="1"/>
    3880                 <element name="world" type="World"/>
    3881                 <element name="wrldbnd" type="integer" min="0" max="2" default="1"/>
    3882                 <element name="wrldg" type="float" min="0" max="10" default="1.0">
    3883                         <description><![CDATA[You can adjust gravity for your experiments.
    3884 The "official" setting used to evaluate and compare creatures is 1.]]></description>
    3885                 </element>
    3886                 <element name="wrldmap" type="string">
    3887                         <description><![CDATA[Description of the world (Type: Blocks or Heighfield). Enter
    3888    r <sizex> <sizey> [seed]
    3889 to generate a random landscape, or
    3890    m <sizex> <sizey> digits
    3891    M <sizex> <sizey> numbers
    3892 to provide height values.
    3893 
    3894 See also the WorldMap object.]]></description>
    3895                 </element>
    3896                 <element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
    3897                         <description><![CDATA[Side length of the world]]></description>
    3898                 </element>
    3899                 <element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
    3900                 <element name="wrldwat" type="float" min="-20" max="200" default="-1.0"/>
    3901                 <element name="add" function="true"/>
    3902                 <element name="addGroup" function="true"/>
    3903                 <element name="area" function="true" type="float"><arguments/></element>
     3050                <element name="print" function="true" type="void">
     3051                        <description><![CDATA[One argument: message to be printed]]></description>
     3052                        <arguments>
     3053                                <argument name="text" type="string"/>
     3054                        </arguments>
     3055                </element>
     3056                <element name="message" function="true" type="void">
     3057                        <description><![CDATA[The second argument can be:
     3058 -1 = debugging message
     3059 0 = information
     3060 1 = warning
     3061 2 = error
     3062 3 = critical error]]></description>
     3063                        <arguments>
     3064                                <argument name="text" type="string"/>
     3065                                <argument name="level" type="integer"/>
     3066                        </arguments>
     3067                </element>
     3068                <element name="sleep" function="true" type="void">
     3069                        <description><![CDATA[Suspends the execution for a specified interval]]></description>
     3070                        <arguments>
     3071                                <argument name="milliseconds" type="integer"/>
     3072                        </arguments>
     3073                </element>
    39043074                <element name="beep" function="true" type="void">
    39053075                        <description><![CDATA[Plays a default system sound]]></description>
    39063076<arguments/></element>
    3907                 <element name="calculateSymmetry" function="true" type="float">
    3908                         <description><![CDATA[Returns 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).
    3909 Note: may take a long time for large creatures.]]></description>
    3910                         <arguments>
    3911                                 <argument name="model" type="Model"/>
    3912                         </arguments>
    3913                 </element>
    3914                 <element name="calculateSymmetry2" function="true" type="float">
    3915                         <description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model using specified precision parameters. Returns the symmetry plane, too (sets symResultA,B,C,D).
    3916 Note: may take a long time for large creatures.]]></description>
    3917                         <arguments>
    3918                                 <argument name="model" type="Model"/>
    3919                                 <argument name="posSteps" type="integer"/>
    3920                                 <argument name="alphaSteps" type="integer"/>
    3921                                 <argument name="betaSteps" type="integer"/>
    3922                         </arguments>
    3923                 </element>
    3924                 <element name="calculateSymmetryForPlane" function="true" type="float">
    3925                         <description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model and given a specific plane defined by coefficients A, B, C, D.]]></description>
    3926                         <arguments>
    3927                                 <argument name="model" type="Model"/>
    3928                                 <argument name="A" type="float"/>
    3929                                 <argument name="B" type="float"/>
    3930                                 <argument name="C" type="float"/>
    3931                                 <argument name="D" type="float"/>
    3932                         </arguments>
    3933                 </element>
    3934                 <element name="checkpoint" function="true" type="void">
    3935                         <description><![CDATA[This function was previously called "autosave".]]></description>
    3936 <arguments/></element>
    3937                 <element name="checkpointData" function="true" type="void">
    3938                         <description><![CDATA[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)]]></description>
    3939                         <arguments>
    3940                                 <argument name="any_data" type="untyped"/>
    3941                         </arguments>
    3942                 </element>
    3943                 <element name="clear" function="true"/>
    3944                 <element name="crossOver" function="true" type="Geno">
    3945                         <description><![CDATA[returns crossed over genotype]]></description>
    3946                         <arguments>
    3947                                 <argument type="Geno"/>
    3948                                 <argument type="Geno"/>
     3077                <element name="sound" function="true" type="void">
     3078                        <description><![CDATA[Generates a simple tone on the speaker]]></description>
     3079                        <arguments>
     3080                                <argument name="freqency in Hz" type="integer"/>
     3081                                <argument name="length in milliseconds" type="integer"/>
    39493082                        </arguments>
    39503083                </element>
     
    39623095                        </arguments>
    39633096                </element>
    3964                 <element name="evaluateDistance" function="true" type="float">
    3965                         <description><![CDATA[Calculates dissimilarity between two models created from Geno objects. There are papers available that describe details of the computation method.]]></description>
    3966                         <arguments>
    3967                                 <argument type="Geno"/>
    3968                                 <argument type="Geno"/>
     3097                <element name="load" function="true" type="void">
     3098                        <description><![CDATA[Load 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()" (only if "resetonexpdef" is enabled). Use "import" if you don't want to loose the old simulator state.]]></description>
     3099                        <arguments>
     3100                                <argument name="filename" type="string"/>
     3101                        </arguments>
     3102                </element>
     3103                <element name="import" function="true" type="void">
     3104                        <description><![CDATA[Load some data from file. The second optional argument selects what section(s) will be imported:
     3105 1 - experiment (works like "load" and can reset the simulator state!)
     3106 2 - genotypes
     3107 4 - simulator parameters
     3108 8 - genepool settings
     3109 16 - population settings
     3110 32 - new groups will be created for imported genepools and populations
     311164 - allow switching to a different expdef while importing parameters (4)
     3112
     3113The 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 dengerous, 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.]]></description>
     3114                        <arguments>
     3115                                <argument name="filename" type="string"/>
     3116                                <argument name="options" type="integer"/>
     3117                        </arguments>
     3118                </element>
     3119                <element name="import" function="true" type="void">
     3120                        <description><![CDATA[Equivalent to import(filename,2+4+8+16) - imports genotypes, parameters, genepool and population settings]]></description>
     3121                        <arguments>
     3122                                <argument name="filename" type="string"/>
     3123                        </arguments>
     3124                </element>
     3125                <element name="save" function="true" type="untyped">
     3126                        <description><![CDATA[Save experiment file (calls onExpSave() in the current experiment definition)]]></description>
     3127                        <arguments>
     3128                                <argument name="filename" type="string"/>
    39693129                        </arguments>
    39703130                </element>
     
    39893149                        </arguments>
    39903150                </element>
     3151                <element name="start" function="true" type="void">
     3152                        <description><![CDATA[called by the user interface]]></description>
     3153<arguments/></element>
     3154                <element name="stop" function="true" type="void">
     3155                        <description><![CDATA[the expdef script calls this to stop simulation]]></description>
     3156<arguments/></element>
     3157                <element name="running" type="integer" min="0" max="1">
     3158                        <description><![CDATA[useful for synchronizing the user interface state]]></description>
     3159                </element>
     3160                <element name="step" function="true" type="void"><arguments/></element>
     3161                <element name="time" type="integer"/>
     3162                <element name="simspeed" type="integer">
     3163                        <description><![CDATA[steps/second]]></description>
     3164                </element>
     3165                <element name="expdef" type="string">
     3166                        <description><![CDATA[Choose the experiment framework
     3167(in Windows GUI, confirm by pressing 'Apply')
     3168
     3169Stop the simulation before selecting another experiment definition.
     3170It is a good practice to initialize the experiment before running the simulation.]]></description>
     3171                </element>
     3172                <element name="expdef_title" type="string"/>
     3173                <element name="expdef_info" type="string"/>
     3174                <element name="init" function="true" type="void">
     3175                        <description><![CDATA[Performs initialization procedures, like resetting counters, states, gene pools, etc.]]></description>
     3176<arguments/></element>
     3177                <element name="loadexpdef" function="true" type="void"><arguments/></element>
     3178                <element name="usercode" type="string">
     3179                        <description><![CDATA[This script overrides the experiment definition]]></description>
     3180                </element>
     3181                <element name="autosaveperiod" type="integer" min="0" max="100000">
     3182                        <description><![CDATA[Save simulation state once every n-th event
     3183(events are defined by the script. For 'standard.expdef' it is after each death).
     3184Save EXPT file first to initialize name for autosave files.
     3185Slave simulators (in multithreaded experiments) ignore this setting and never create autosave files.]]></description>
     3186                </element>
     3187                <element name="overwrite" type="integer" min="0" max="1">
     3188                        <description><![CDATA[Overwite existing files or create their backups]]></description>
     3189                </element>
     3190                <element name="filecomm" type="integer" min="0" max="1" default="1">
     3191                        <description><![CDATA[Display comments encountered in opened files]]></description>
     3192                </element>
     3193                <element name="checkpoint" function="true" type="void">
     3194                        <description><![CDATA[This function was previously called "autosave".]]></description>
     3195<arguments/></element>
     3196                <element name="checkpointData" function="true" type="void">
     3197                        <description><![CDATA[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)]]></description>
     3198                        <arguments>
     3199                                <argument name="any_data" type="untyped"/>
     3200                        </arguments>
     3201                </element>
     3202                <element name="lastCheckpoint" type="untyped">
     3203                        <description><![CDATA[Most recently reported by the experiment definition script.]]></description>
     3204                </element>
     3205                <element name="createrr" type="integer" min="0" max="2" default="1"/>
     3206                <element name="creatwarnfail" type="integer" min="0" max="1">
     3207                        <description><![CDATA[Creatures grown with warnings will not be simulated.]]></description>
     3208                </element>
     3209                <element name="importchk" type="integer" min="0" max="1"/>
     3210                <element name="loadchk" type="integer" min="0" max="1"/>
     3211                <element name="groupchk" type="integer" min="0" max="1"/>
     3212                <element name="vmdebug" type="integer" min="0" max="1"/>
     3213                <element name="resetToDefaults" function="true" type="void">
     3214                        <description><![CDATA[Clears groups and loads default values for simulator parameters, then calls onExpDefLoad() of the current experiment definition.]]></description>
     3215<arguments/></element>
     3216                <element name="resetonexpdef" type="integer" min="0" max="1" default="1">
     3217                        <description><![CDATA[If turned on: when a new experiment definition is selected, default values are loaded for most of the simulator parameters, and gene pools and populations are cleared.
     3218If turned off: parameters from previous experiment definition will remain (dangerous).]]></description>
     3219                </element>
     3220                <element name="new" function="true" type="Simulator"><arguments/></element>
     3221                <element name="slaves" type="SlaveSimulators"/>
     3222                <element name="cpus" type="integer"/>
     3223                <element name="world" type="World"/>
     3224                <element name="populations" type="Populations"/>
     3225                <element name="genepools" type="GenePools"/>
     3226                <element name="expparams" type="ExpParams"/>
     3227                <element name="expstate" type="ExpState"/>
     3228                <element name="loadNeurons" function="true" type="void">
     3229                        <arguments>
     3230                                <argument name="directory path" type="string"/>
     3231                        </arguments>
     3232                </element>
     3233                <element name="user" type="untyped"/>
     3234                <element name="identity" type="integer">
     3235                        <description><![CDATA[-1 for master simulator, 0...count-1 for slaves]]></description>
     3236                </element>
     3237                <element name="clear" function="true"/>
     3238                <element name="add" function="true"/>
     3239                <element name="remove" function="true"/>
     3240                <element name="addGroup" function="true"/>
     3241                <element name="removeGroup" function="true"/>
     3242                <element name="changedProperty" type="integer"/>
     3243                <element name="changedPropertyId" type="string"/>
     3244                <element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
     3245                <element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
     3246                        <description><![CDATA[Side length of the world]]></description>
     3247                </element>
     3248                <element name="wrldmap" type="string">
     3249                        <description><![CDATA[Description of the world (Type: Blocks or Heighfield). Enter
     3250   r <sizex> <sizey> [seed]
     3251to generate a random landscape, or
     3252   m <sizex> <sizey> digits
     3253   M <sizex> <sizey> numbers
     3254to provide height values.
     3255
     3256See also the WorldMap object.]]></description>
     3257                </element>
     3258                <element name="wrldwat" type="float" min="-20" max="200" default="-1.0"/>
     3259                <element name="wrldbnd" type="integer" min="0" max="2" default="1">
     3260                        <description><![CDATA[Teleporting 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).]]></description>
     3261                </element>
     3262                <element name="wrldg" type="float" min="0" max="10" default="1.0">
     3263                        <description><![CDATA[You can adjust gravity for your experiments.
     3264The "official" setting used to evaluate and compare creatures is 1.]]></description>
     3265                </element>
     3266                <element name="wrldchg" function="true" type="void"><arguments/></element>
     3267                <element name="simtype" type="integer" min="0" max="1" default="0">
     3268                        <description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
     3269ODE is Open Dynamics Engine by Russel Smith et al.
     3270
     3271NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
     3272                </element>
     3273                <element name="nnspeed" type="float" min="0" max="1000" default="1.0">
     3274                        <description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
     3275                </element>
     3276                <element name="signals" type="WorldSignals"/>
     3277                <element name="odeshape" type="integer" min="0" max="1"/>
     3278                <element name="odestep" type="float" min="0.001" max="1" default="0.05"/>
     3279                <element name="odemusclemin" type="float" min="0" max="100" default="0.0">
     3280                        <description><![CDATA[i.e. "mmmmm" in f1]]></description>
     3281                </element>
     3282                <element name="odemusclemax" type="float" min="0" max="100" default="10.0">
     3283                        <description><![CDATA[i.e. "MMMMM" if f1]]></description>
     3284                </element>
     3285                <element name="odemusclespeed" type="float" min="0" max="10" default="1.0">
     3286                        <description><![CDATA[Muscle state cannot change faster than the supplied value]]></description>
     3287                </element>
     3288                <element name="odeairdrag" type="float" min="0" max="0.5" default="0.01">
     3289                        <description><![CDATA[A drag force ("air drag") proportional to the velocity of mass centers of moving parts]]></description>
     3290                </element>
     3291                <element name="odewaterdrag" type="float" min="0.001" max="1" default="0.5"/>
     3292                <element name="odewaterbuoy" type="float" min="0" max="2" default="1.0"/>
     3293                <element name="odeseed" type="integer" min="0" max="2">
     3294                        <description><![CDATA[Affects collisions.
     3295- 'Truly random' is closest to the standard ODE operation. Use Math.seed to influence randomness in ODE collisions.
     3296- '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'.
     3297- '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.
     3298]]></description>
     3299                </element>
     3300                <element name="odesepsticks" type="integer" min="0" max="1" default="0">
     3301                        <description><![CDATA[Each stick gets a separate ODE body (like in MechaStick)]]></description>
     3302                </element>
     3303                <element name="odeworlderp" type="float" min="0" max="1" default="0.2">
     3304                        <description><![CDATA[World ERP (error reduction parameter)]]></description>
     3305                </element>
     3306                <element name="odeworldcfm" type="float" min="0" max="1" default="1e-05">
     3307                        <description><![CDATA[World CFM (constraint force mixing)]]></description>
     3308                </element>
     3309                <element name="odecolmumin" type="float" min="0" max="10" default="0.1">
     3310                        <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
     3311                </element>
     3312                <element name="odecolmumax" type="float" min="0" max="10" default="5.0">
     3313                        <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
     3314                </element>
     3315                <element name="odecolbounce" type="float" min="0" max="1" default="0.1"/>
     3316                <element name="odecolbouncevel" type="float" min="0" max="1" default="0.01"/>
     3317                <element name="odecolsoftcfm" type="float" min="0" max="1" default="0.0"/>
     3318                <element name="odecolsofterp" type="float" min="0" max="1" default="0.0"/>
     3319                <element name="odecol2mumin" type="float" min="0" max="10" default="0.1">
     3320                        <description><![CDATA[Mu coefficient for Parts with minimal friction (i.e. "fffff" in f1)]]></description>
     3321                </element>
     3322                <element name="odecol2mumax" type="float" min="0" max="10" default="1.0">
     3323                        <description><![CDATA[Mu coefficient for Parts with maximal friction (i.e. "FFFFF" in f1)]]></description>
     3324                </element>
     3325                <element name="odecol2bounce" type="float" min="0" max="1" default="0.1"/>
     3326                <element name="odecol2bouncevel" type="float" min="0" max="1" default="0.01"/>
     3327                <element name="odecol2softcfm" type="float" min="0" max="1" default="0.0"/>
     3328                <element name="odecol2softerp" type="float" min="0" max="1" default="0.0"/>
     3329                <element name="rayIntersection" function="true" type="float">
     3330                        <arguments>
     3331                                <argument name="position x" type="float"/>
     3332                                <argument name="position y" type="float"/>
     3333                                <argument name="position z" type="float"/>
     3334                                <argument name="direction x" type="float"/>
     3335                                <argument name="direction y" type="float"/>
     3336                                <argument name="direction z" type="float"/>
     3337                                <argument name="max distance" type="float"/>
     3338                        </arguments>
     3339                </element>
     3340                <element name="gen_hist" type="integer" min="0" max="1" default="0">
     3341                        <description><![CDATA[Required for phylogenetic analysis]]></description>
     3342                </element>
     3343                <element name="gen_hilite" type="integer" min="0" max="1" default="1">
     3344                        <description><![CDATA[Use colors for genes?
     3345(slows down viewing/editing of huge genotypes)]]></description>
     3346                </element>
     3347                <element name="gen_extmutinfo" type="integer" min="0" max="2" default="0">
     3348                        <description><![CDATA[If active, information about employed mutation method will be stored in the 'info' field of each mutated genotype.]]></description>
     3349                </element>
     3350                <element name="operReport" function="true" type="void">
     3351                        <description><![CDATA[Show available genetic operators]]></description>
     3352<arguments/></element>
     3353                <element name="toHTML" function="true" type="string">
     3354                        <description><![CDATA[returns genotype expressed as colored HTML]]></description>
     3355                        <arguments>
     3356                                <argument type="string"/>
     3357                        </arguments>
     3358                </element>
     3359                <element name="toHTMLshort" function="true" type="string">
     3360                        <description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
     3361                        <arguments>
     3362                                <argument type="string"/>
     3363                        </arguments>
     3364                </element>
     3365                <element name="validate" function="true" type="Geno">
     3366                        <description><![CDATA[returns validated (if possible) Geno object from supplied Geno]]></description>
     3367                        <arguments>
     3368                                <argument type="Geno"/>
     3369                        </arguments>
     3370                </element>
     3371                <element name="mutate" function="true" type="Geno">
     3372                        <description><![CDATA[returns mutated Geno object from supplied Geno]]></description>
     3373                        <arguments>
     3374                                <argument type="Geno"/>
     3375                        </arguments>
     3376                </element>
     3377                <element name="crossOver" function="true" type="Geno">
     3378                        <description><![CDATA[returns crossed over genotype]]></description>
     3379                        <arguments>
     3380                                <argument type="Geno"/>
     3381                                <argument type="Geno"/>
     3382                        </arguments>
     3383                </element>
     3384                <element name="getSimplest" function="true" type="Geno">
     3385                        <description><![CDATA[returns the simplest genotype for a given encoding (format). 0 means f0, 4 means f4, etc.]]></description>
     3386                        <arguments>
     3387                                <argument name="format" type="integer"/>
     3388                        </arguments>
     3389                </element>
     3390                <element name="genoper_f0" type="integer" min="0" max="0">
     3391                        <description><![CDATA[]]></description>
     3392                </element>
     3393                <element name="genoper_f1" type="integer" min="0" max="0">
     3394                        <description><![CDATA[]]></description>
     3395                </element>
     3396                <element name="genoper_f2" type="integer" min="0" max="0">
     3397                        <description><![CDATA[]]></description>
     3398                </element>
     3399                <element name="genoper_f3" type="integer" min="0" max="0">
     3400                        <description><![CDATA[]]></description>
     3401                </element>
     3402                <element name="genoper_f4" type="integer" min="0" max="0">
     3403                        <description><![CDATA[]]></description>
     3404                </element>
     3405                <element name="genoper_f9" type="integer" min="0" max="0">
     3406                        <description><![CDATA[]]></description>
     3407                </element>
     3408                <element name="genoper_fF" type="integer" min="0" max="0">
     3409                        <description><![CDATA[]]></description>
     3410                </element>
     3411                <element name="neuadd_N" type="integer" min="0" max="1">
     3412                        <description><![CDATA[Standard neuron
     3413
     3414Characteristics:
     3415   supports any number of inputs
     3416   provides output value
     3417   does not require location in body
     3418
     3419
     3420Properties:
     3421   Inertia (in) float 0..1
     3422   Force (fo) float 0..999
     3423   Sigmoid (si) float -99999..99999
     3424   State (s) float -1..1]]></description>
     3425                </element>
     3426                <element name="neuadd_Nu" type="integer" min="0" max="1">
     3427                        <description><![CDATA[Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1.
     3428Having 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.
     3429
     3430Characteristics:
     3431   supports any number of inputs
     3432   provides output value
     3433   does not require location in body
     3434
     3435
     3436Properties:
     3437   Inertia (in) float 0..1
     3438   Force (fo) float 0..999
     3439   Sigmoid (si) float -99999..99999
     3440   State (s) float -1..1]]></description>
     3441                </element>
     3442                <element name="neuadd_G" type="integer" min="0" max="1">
     3443                        <description><![CDATA[Equilibrium sensor.
     34440=the stick is horizontal
     3445+1/-1=the stick is vertical
     3446
     3447Characteristics:
     3448   does not use inputs
     3449   provides output value
     3450   should be located on a Joint
     3451]]></description>
     3452                </element>
     3453                <element name="neuadd_T" type="integer" min="0" max="1">
     3454                        <description><![CDATA[Touch sensor.
     3455-1=no contact
     34560=just touching
     3457>0=pressing, value depends on the force applied
     3458
     3459Characteristics:
     3460   does not use inputs
     3461   provides output value
     3462   should be located on a Part
     3463
     3464
     3465Properties:
     3466   Range (r) float 0..1]]></description>
     3467                </element>
     3468                <element name="neuadd_S" type="integer" min="0" max="1">
     3469                        <description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
     3470Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
     3471
     3472Characteristics:
     3473   does not use inputs
     3474   provides output value
     3475   should be located on a Part
     3476]]></description>
     3477                </element>
     3478                <element name="neuadd_Constant" type="integer" min="0" max="1">
     3479                        <description><![CDATA[Constant value
     3480
     3481Characteristics:
     3482   does not use inputs
     3483   provides output value
     3484   does not require location in body
     3485]]></description>
     3486                </element>
     3487                <element name="neuadd_Bend_muscle" type="integer" min="0" max="1">
     3488                        <description><![CDATA[Characteristics:
     3489   uses single input
     3490   does not provide output value
     3491   should be located on a Joint
     3492
     3493
     3494Properties:
     3495   power (p) float 0.01..1
     3496   bending range (r) float 0..1]]></description>
     3497                </element>
     3498                <element name="neuadd_Rotation_muscle" type="integer" min="0" max="1">
     3499                        <description><![CDATA[Characteristics:
     3500   uses single input
     3501   does not provide output value
     3502   should be located on a Joint
     3503
     3504
     3505Properties:
     3506   power (p) float 0.01..1]]></description>
     3507                </element>
     3508                <element name="neuadd_D" type="integer" min="0" max="1">
     3509                        <description><![CDATA[Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights
     3510
     3511Characteristics:
     3512   supports any number of inputs
     3513   provides output value
     3514   does not require location in body
     3515]]></description>
     3516                </element>
     3517                <element name="neuadd_Fuzzy" type="integer" min="0" max="1">
     3518                        <description><![CDATA[Refer to publications to learn more about this neuron.
     3519
     3520Characteristics:
     3521   supports any number of inputs
     3522   provides output value
     3523   does not require location in body
     3524
     3525
     3526Properties:
     3527   number of fuzzy sets (ns) integer
     3528   number of rules (nr) integer
     3529   fuzzy sets (fs) string
     3530   fuzzy rules (fr) string]]></description>
     3531                </element>
     3532                <element name="neuadd_VEye" type="integer" min="0" max="1">
     3533                        <description><![CDATA[Refer to publications to learn more about this neuron.
     3534
     3535Characteristics:
     3536   uses single input
     3537   provides output value
     3538   should be located on a Part
     3539
     3540
     3541Properties:
     3542   target.x (tx) float
     3543   target.y (ty) float
     3544   target.z (tz) float
     3545   target shape (ts) string
     3546   perspective (p) float 0.1..10
     3547   scale (s) float 0.1..100
     3548   show hidden lines (h) integer 0..1
     3549   output lines count (each line needs four channels) (o) integer 0..99
     3550   debug (d) integer 0..1]]></description>
     3551                </element>
     3552                <element name="neuadd_VMotor" type="integer" min="0" max="1">
     3553                        <description><![CDATA[Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron.
     3554
     3555Characteristics:
     3556   supports any number of inputs
     3557   provides output value
     3558   does not require location in body
     3559
     3560
     3561Properties:
     3562   number of basic features (noIF) integer
     3563   number of degrees of freedom (noDim) integer
     3564   parameters (params) string]]></description>
     3565                </element>
     3566                <element name="neuadd_Sti" type="integer" min="0" max="1">
     3567                        <description><![CDATA[Characteristics:
     3568   uses single input
     3569   does not provide output value
     3570   should be located on a Part
     3571]]></description>
     3572                </element>
     3573                <element name="neuadd_LMu" type="integer" min="0" max="1">
     3574                        <description><![CDATA[Characteristics:
     3575   uses single input
     3576   does not provide output value
     3577   should be located on a Joint
     3578
     3579
     3580Properties:
     3581   power (p) float 0.01..1]]></description>
     3582                </element>
     3583                <element name="neuadd_Water" type="integer" min="0" max="1">
     3584                        <description><![CDATA[Output signal:
     35850=on or above water surface
     35861=under water (deeper than 1)
     35870..1=in the transient area just below water surface
     3588
     3589Characteristics:
     3590   does not use inputs
     3591   provides output value
     3592   should be located on a Part
     3593]]></description>
     3594                </element>
     3595                <element name="neuadd_Energy" type="integer" min="0" max="1">
     3596                        <description><![CDATA[The current energy level divided by the initial energy level.
     3597Usually 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
     3598
     3599Characteristics:
     3600   does not use inputs
     3601   provides output value
     3602   does not require location in body
     3603]]></description>
     3604                </element>
     3605                <element name="neuadd_Ch" type="integer" min="0" max="1">
     3606                        <description><![CDATA[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.
     3607
     3608Characteristics:
     3609   supports any number of inputs
     3610   provides output value
     3611   does not require location in body
     3612]]></description>
     3613                </element>
     3614                <element name="neuadd_ChMux" type="integer" min="0" max="1">
     3615                        <description><![CDATA[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)
     3616
     3617Characteristics:
     3618   uses 2 inputs
     3619   provides output value
     3620   does not require location in body
     3621]]></description>
     3622                </element>
     3623                <element name="neuadd_ChSel" type="integer" min="0" max="1">
     3624                        <description><![CDATA[Outputs a single channel (selected by the "ch" parameter) from multichannel input
     3625
     3626Characteristics:
     3627   uses single input
     3628   provides output value
     3629   does not require location in body
     3630
     3631
     3632Properties:
     3633   channel (ch) integer]]></description>
     3634                </element>
     3635                <element name="neuadd_Rnd" type="integer" min="0" max="1">
     3636                        <description><![CDATA[Generates random noise (subsequent random values in the range of -1..+1)
     3637
     3638Characteristics:
     3639   does not use inputs
     3640   provides output value
     3641   does not require location in body
     3642]]></description>
     3643                </element>
     3644                <element name="neuadd_Sin" type="integer" min="0" max="1">
     3645                        <description><![CDATA[Output frequency = f0+input
     3646
     3647Characteristics:
     3648   uses single input
     3649   provides output value
     3650   does not require location in body
     3651
     3652
     3653Properties:
     3654   base frequency (f0) float -1..1
     3655   time (t) float 0..6.28319]]></description>
     3656                </element>
     3657                <element name="f0_nodel_tag" type="integer" min="0" max="1" default="1">
     3658                        <description><![CDATA[You can tag elements using their 'i' field and the i="mi=d" tag.
     3659Mutations will not delete such elements.
     3660The i="mi=dm" combination is allowed.]]></description>
     3661                </element>
     3662                <element name="f0_nomod_tag" type="integer" min="0" max="1" default="1">
     3663                        <description><![CDATA[You can tag elements using their 'i' field and the i="mi=m" tag.
     3664Mutations will not modify properties of such elements.
     3665The i="mi=md" combination is allowed.]]></description>
     3666                </element>
     3667                <element name="f0_p_new" type="float" min="0" max="100" default="5.0">
     3668                        <description><![CDATA[]]></description>
     3669                </element>
     3670                <element name="f0_p_del" type="float" min="0" max="100" default="5.0">
     3671                        <description><![CDATA[]]></description>
     3672                </element>
     3673                <element name="f0_p_swp" type="float" min="0" max="100" default="10.0">
     3674                        <description><![CDATA[]]></description>
     3675                </element>
     3676                <element name="f0_p_pos" type="float" min="0" max="100" default="10.0">
     3677                        <description><![CDATA[]]></description>
     3678                </element>
     3679                <element name="f0_p_mas" type="float" min="0" max="100" default="10.0">
     3680                        <description><![CDATA[]]></description>
     3681                </element>
     3682                <element name="f0_p_frc" type="float" min="0" max="100" default="10.0">
     3683                        <description><![CDATA[]]></description>
     3684                </element>
     3685                <element name="f0_p_ing" type="float" min="0" max="100" default="10.0">
     3686                        <description><![CDATA[]]></description>
     3687                </element>
     3688                <element name="f0_p_asm" type="float" min="0" max="100" default="10.0">
     3689                        <description><![CDATA[]]></description>
     3690                </element>
     3691                <element name="f0_p_vsiz" type="float" min="0" max="100" default="0.0">
     3692                        <description><![CDATA[]]></description>
     3693                </element>
     3694                <element name="f0_j_new" type="float" min="0" max="100" default="5.0">
     3695                        <description><![CDATA[]]></description>
     3696                </element>
     3697                <element name="f0_j_del" type="float" min="0" max="100" default="5.0">
     3698                        <description><![CDATA[]]></description>
     3699                </element>
     3700                <element name="f0_j_stm" type="float" min="0" max="100" default="10.0">
     3701                        <description><![CDATA[]]></description>
     3702                </element>
     3703                <element name="f0_j_stf" type="float" min="0" max="100" default="10.0">
     3704                        <description><![CDATA[]]></description>
     3705                </element>
     3706                <element name="f0_j_rsf" type="float" min="0" max="100" default="10.0">
     3707                        <description><![CDATA[]]></description>
     3708                </element>
     3709                <element name="f0_j_vred" type="float" min="0" max="100" default="0.0">
     3710                        <description><![CDATA[]]></description>
     3711                </element>
     3712                <element name="f0_j_vgrn" type="float" min="0" max="100" default="0.0">
     3713                        <description><![CDATA[]]></description>
     3714                </element>
     3715                <element name="f0_j_vblu" type="float" min="0" max="100" default="0.0">
     3716                        <description><![CDATA[]]></description>
     3717                </element>
     3718                <element name="f0_n_new" type="float" min="0" max="100" default="5.0">
     3719                        <description><![CDATA[]]></description>
     3720                </element>
     3721                <element name="f0_n_del" type="float" min="0" max="100" default="5.0">
     3722                        <description><![CDATA[]]></description>
     3723                </element>
     3724                <element name="f0_n_prp" type="float" min="0" max="100" default="10.0">
     3725                        <description><![CDATA[]]></description>
     3726                </element>
     3727                <element name="f0_c_new" type="float" min="0" max="100" default="5.0">
     3728                        <description><![CDATA[]]></description>
     3729                </element>
     3730                <element name="f0_c_del" type="float" min="0" max="100" default="5.0">
     3731                        <description><![CDATA[]]></description>
     3732                </element>
     3733                <element name="f0_c_wei" type="float" min="0" max="100" default="10.0">
     3734                        <description><![CDATA[]]></description>
     3735                </element>
     3736                <element name="f1_xo_propor" type="integer" min="0" max="1" default="1">
     3737                        <description><![CDATA[Cross over (exchange) corresponding segments of the two parent genotypes?
     3738
     3739f1 uses a two-point crossing over.
     3740If this option is turned on, cut points will be selected proportionally to neural genes.
     3741Thus, if both parents have the same number of neurons, then this will be preserved in their children.]]></description>
     3742                </element>
     3743                <element name="f1_smX" type="float" min="0" max="100" default="0.05"/>
     3744                <element name="f1_smJunct" type="float" min="0" max="100" default="0.02"/>
     3745                <element name="f1_smComma" type="float" min="0" max="100" default="0.02"/>
     3746                <element name="f1_smModif" type="float" min="0" max="100" default="0.1">
     3747                        <description><![CDATA[Modifiers: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh]]></description>
     3748                </element>
     3749                <element name="f1_mut_exmod" type="string">
     3750                        <description><![CDATA[Modifiers that will not be added nor deleted during mutation
     3751(all: LlRrCcQqFfMmIiWwEeAaSsDdGgBbHh)]]></description>
     3752                </element>
     3753                <element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
     3754                        <description><![CDATA[Adds a (connected) neuron or removes a neuron]]></description>
     3755                </element>
     3756                <element name="f1_nmConn" type="float" min="0" max="100" default="0.1">
     3757                        <description><![CDATA[]]></description>
     3758                </element>
     3759                <element name="f1_nmProp" type="float" min="0" max="100" default="0.1">
     3760                        <description><![CDATA[]]></description>
     3761                </element>
     3762                <element name="f1_nmWei" type="float" min="0" max="100" default="1.0"/>
     3763                <element name="f1_nmVal" type="float" min="0" max="100" default="0.05"/>
     3764                <element name="f2_mutAddOper" type="float" min="0" max="1" default="0.4">
     3765                        <description><![CDATA[]]></description>
     3766                </element>
     3767                <element name="f2_mutJointElem" type="float" min="0" max="1" default="0.33">
     3768                        <description><![CDATA[]]></description>
     3769                </element>
     3770                <element name="f2_mutNeuroElem" type="float" min="0" max="1" default="0.33">
     3771                        <description><![CDATA[]]></description>
     3772                </element>
     3773                <element name="f2_mutConnElem" type="float" min="0" max="1" default="0.33">
     3774                        <description><![CDATA[]]></description>
     3775                </element>
     3776                <element name="f2_mutDelOper" type="float" min="0" max="1" default="0.1">
     3777                        <description><![CDATA[]]></description>
     3778                </element>
     3779                <element name="f2_mutHandleOper" type="float" min="0" max="1" default="0.3">
     3780                        <description><![CDATA[]]></description>
     3781                </element>
     3782                <element name="f2_mutPropOper" type="float" min="0" max="1" default="0.2">
     3783                        <description><![CDATA[]]></description>
     3784                </element>
     3785                <element name="f3_mutSubstitution" type="float" min="0" max="1" default="0.6">
     3786                        <description><![CDATA[]]></description>
     3787                </element>
     3788                <element name="f3_mutSubstPerChar" type="float" min="0" max="1" default="0.1">
     3789                        <description><![CDATA[]]></description>
     3790                </element>
     3791                <element name="f3_mutDelIns" type="float" min="0" max="1" default="0.1">
     3792                        <description><![CDATA[]]></description>
     3793                </element>
     3794                <element name="f3_mutDelInsPerChar" type="float" min="0" max="1" default="0.05">
     3795                        <description><![CDATA[]]></description>
     3796                </element>
     3797                <element name="f3_mutDelInsLength" type="integer" min="1" max="100" default="5">
     3798                        <description><![CDATA[]]></description>
     3799                </element>
     3800                <element name="f3_mutDuplication" type="float" min="0" max="1" default="0.05">
     3801                        <description><![CDATA[]]></description>
     3802                </element>
     3803                <element name="f3_mutTranslocation" type="float" min="0" max="1" default="0.15">
     3804                        <description><![CDATA[]]></description>
     3805                </element>
     3806                <element name="f3_xovGeneTransfer" type="float" min="0" max="1" default="0.8">
     3807                        <description><![CDATA[]]></description>
     3808                </element>
     3809                <element name="f3_xovCrossingOver" type="float" min="0" max="1" default="0.2">
     3810                        <description><![CDATA[]]></description>
     3811                </element>
     3812                <element name="f4_mut_add" type="float" min="0" max="100" default="50.0">
     3813                        <description><![CDATA[mutation: probability of adding a node]]></description>
     3814                </element>
     3815                <element name="f4_mut_add_div" type="float" min="0" max="100" default="20.0">
     3816                        <description><![CDATA[add node mutation: probability of adding a division]]></description>
     3817                </element>
     3818                <element name="f4_mut_add_conn" type="float" min="0" max="100" default="15.0">
     3819                        <description><![CDATA[add node mutation: probability of adding a neural connection]]></description>
     3820                </element>
     3821                <element name="f4_mut_add_neupar" type="float" min="0" max="100" default="5.0">
     3822                        <description><![CDATA[add node mutation: probability of adding a neuron property/modifier]]></description>
     3823                </element>
     3824                <element name="f4_mut_add_rep" type="float" min="0" max="100" default="10.0">
     3825                        <description><![CDATA[add node mutation: probability of adding a repetition]]></description>
     3826                </element>
     3827                <element name="f4_mut_add_simp" type="float" min="0" max="100" default="50.0">
     3828                        <description><![CDATA[add node mutation: probability of adding a random, simple gene]]></description>
     3829                </element>
     3830                <element name="f4_mut_del" type="float" min="0" max="100" default="20.0">
     3831                        <description><![CDATA[mutation: probability of deleting a node]]></description>
     3832                </element>
     3833                <element name="f4_mut_mod" type="float" min="0" max="100" default="30.0">
     3834                        <description><![CDATA[mutation: probability of changing a node]]></description>
     3835                </element>
     3836                <element name="f9_mut" type="float" min="0" max="1" default="0.1">
     3837                        <description><![CDATA[How many genes should be mutated during single mutation (1=all genes, 0.1=ten percent)]]></description>
     3838                </element>
     3839                <element name="fF_xover" type="float" min="0" max="0.5" default="0.5">
     3840                        <description><![CDATA[0.5 => children are averaged parents.
     38410.2 => children are only 20% different from parents.
     38420 => each child is identical to one parent (no crossover).]]></description>
     3843                </element>
     3844                <element name="genkonw0" type="integer" min="0" max="1">
     3845                        <description><![CDATA[]]></description>
     3846                </element>
     3847                <element name="genkonw1" type="integer" min="0" max="1">
     3848                        <description><![CDATA[]]></description>
     3849                </element>
     3850                <element name="genkonw2" type="integer" min="0" max="1">
     3851                        <description><![CDATA[]]></description>
     3852                </element>
     3853                <element name="genkonw3" type="integer" min="0" max="1">
     3854                        <description><![CDATA[]]></description>
     3855                </element>
     3856                <element name="genkonw4" type="integer" min="0" max="1">
     3857                        <description><![CDATA[]]></description>
     3858                </element>
     3859                <element name="genkonw5" type="integer" min="0" max="1">
     3860                        <description><![CDATA[]]></description>
     3861                </element>
     3862                <element name="randinit" type="float" min="0" max="10" default="0.01">
     3863                        <description><![CDATA[Allowed range for initializing all neuron states with uniform distribution random numbers and zero mean. Set to 0 for deterministic initialization.]]></description>
     3864                </element>
     3865                <element name="nnoise" type="float" min="0" max="1" default="0.0">
     3866                        <description><![CDATA[Gaussian 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.]]></description>
     3867                </element>
     3868                <element name="touchrange" type="float" min="0" max="100" default="1.0"/>
     3869                <element name="bnoise_struct" type="float" min="0" max="10" default="0.0">
     3870                        <description><![CDATA[When >0, body constructs of creatures (position of Parts) will be randomly disturbed when they are created.]]></description>
     3871                </element>
     3872                <element name="bnoise_vel" type="float" min="0" max="10" default="0.0">
     3873                        <description><![CDATA[Random velocities will be applied to all body Parts (in MechaStick) or rigid segments (in ODE) of newly created creatures.]]></description>
     3874                </element>
     3875                <element name="ncl_N" type="integer" min="0" max="1">
     3876                        <description><![CDATA[Standard neuron
     3877
     3878Characteristics:
     3879   supports any number of inputs
     3880   provides output value
     3881   does not require location in body
     3882
     3883
     3884Properties:
     3885   Inertia (in) float 0..1
     3886   Force (fo) float 0..999
     3887   Sigmoid (si) float -99999..99999
     3888   State (s) float -1..1]]></description>
     3889                </element>
     3890                <element name="ncl_Nu" type="integer" min="0" max="1">
     3891                        <description><![CDATA[Works like standard neuron (N) but the output value is scaled to 0...+1 instead of -1...+1.
     3892Having 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.
     3893
     3894Characteristics:
     3895   supports any number of inputs
     3896   provides output value
     3897   does not require location in body
     3898
     3899
     3900Properties:
     3901   Inertia (in) float 0..1
     3902   Force (fo) float 0..999
     3903   Sigmoid (si) float -99999..99999
     3904   State (s) float -1..1]]></description>
     3905                </element>
     3906                <element name="ncl_G" type="integer" min="0" max="1">
     3907                        <description><![CDATA[Equilibrium sensor.
     39080=the stick is horizontal
     3909+1/-1=the stick is vertical
     3910
     3911Characteristics:
     3912   does not use inputs
     3913   provides output value
     3914   should be located on a Joint
     3915]]></description>
     3916                </element>
     3917                <element name="ncl_T" type="integer" min="0" max="1">
     3918                        <description><![CDATA[Touch sensor.
     3919-1=no contact
     39200=just touching
     3921>0=pressing, value depends on the force applied
     3922
     3923Characteristics:
     3924   does not use inputs
     3925   provides output value
     3926   should be located on a Part
     3927
     3928
     3929Properties:
     3930   Range (r) float 0..1]]></description>
     3931                </element>
     3932                <element name="ncl_S" type="integer" min="0" max="1">
     3933                        <description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
     3934Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
     3935
     3936Characteristics:
     3937   does not use inputs
     3938   provides output value
     3939   should be located on a Part
     3940]]></description>
     3941                </element>
     3942                <element name="ncl_Constant" type="integer" min="0" max="1">
     3943                        <description><![CDATA[Constant value
     3944
     3945Characteristics:
     3946   does not use inputs
     3947   provides output value
     3948   does not require location in body
     3949]]></description>
     3950                </element>
     3951                <element name="ncl_Bend_muscle" type="integer" min="0" max="1">
     3952                        <description><![CDATA[Characteristics:
     3953   uses single input
     3954   does not provide output value
     3955   should be located on a Joint
     3956
     3957
     3958Properties:
     3959   power (p) float 0.01..1
     3960   bending range (r) float 0..1]]></description>
     3961                </element>
     3962                <element name="ncl_Rotation_muscle" type="integer" min="0" max="1">
     3963                        <description><![CDATA[Characteristics:
     3964   uses single input
     3965   does not provide output value
     3966   should be located on a Joint
     3967
     3968
     3969Properties:
     3970   power (p) float 0.01..1]]></description>
     3971                </element>
     3972                <element name="ncl_D" type="integer" min="0" max="1">
     3973                        <description><![CDATA[Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights
     3974
     3975Characteristics:
     3976   supports any number of inputs
     3977   provides output value
     3978   does not require location in body
     3979]]></description>
     3980                </element>
     3981                <element name="ncl_Fuzzy" type="integer" min="0" max="1">
     3982                        <description><![CDATA[Refer to publications to learn more about this neuron.
     3983
     3984Characteristics:
     3985   supports any number of inputs
     3986   provides output value
     3987   does not require location in body
     3988
     3989
     3990Properties:
     3991   number of fuzzy sets (ns) integer
     3992   number of rules (nr) integer
     3993   fuzzy sets (fs) string
     3994   fuzzy rules (fr) string]]></description>
     3995                </element>
     3996                <element name="ncl_VEye" type="integer" min="0" max="1">
     3997                        <description><![CDATA[Refer to publications to learn more about this neuron.
     3998
     3999Characteristics:
     4000   uses single input
     4001   provides output value
     4002   should be located on a Part
     4003
     4004
     4005Properties:
     4006   target.x (tx) float
     4007   target.y (ty) float
     4008   target.z (tz) float
     4009   target shape (ts) string
     4010   perspective (p) float 0.1..10
     4011   scale (s) float 0.1..100
     4012   show hidden lines (h) integer 0..1
     4013   output lines count (each line needs four channels) (o) integer 0..99
     4014   debug (d) integer 0..1]]></description>
     4015                </element>
     4016                <element name="ncl_VMotor" type="integer" min="0" max="1">
     4017                        <description><![CDATA[Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron.
     4018
     4019Characteristics:
     4020   supports any number of inputs
     4021   provides output value
     4022   does not require location in body
     4023
     4024
     4025Properties:
     4026   number of basic features (noIF) integer
     4027   number of degrees of freedom (noDim) integer
     4028   parameters (params) string]]></description>
     4029                </element>
     4030                <element name="ncl_Sti" type="integer" min="0" max="1">
     4031                        <description><![CDATA[Characteristics:
     4032   uses single input
     4033   does not provide output value
     4034   should be located on a Part
     4035]]></description>
     4036                </element>
     4037                <element name="ncl_LMu" type="integer" min="0" max="1">
     4038                        <description><![CDATA[Characteristics:
     4039   uses single input
     4040   does not provide output value
     4041   should be located on a Joint
     4042
     4043
     4044Properties:
     4045   power (p) float 0.01..1]]></description>
     4046                </element>
     4047                <element name="ncl_Water" type="integer" min="0" max="1">
     4048                        <description><![CDATA[Output signal:
     40490=on or above water surface
     40501=under water (deeper than 1)
     40510..1=in the transient area just below water surface
     4052
     4053Characteristics:
     4054   does not use inputs
     4055   provides output value
     4056   should be located on a Part
     4057]]></description>
     4058                </element>
     4059                <element name="ncl_Energy" type="integer" min="0" max="1">
     4060                        <description><![CDATA[The current energy level divided by the initial energy level.
     4061Usually 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
     4062
     4063Characteristics:
     4064   does not use inputs
     4065   provides output value
     4066   does not require location in body
     4067]]></description>
     4068                </element>
     4069                <element name="ncl_Ch" type="integer" min="0" max="1">
     4070                        <description><![CDATA[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.
     4071
     4072Characteristics:
     4073   supports any number of inputs
     4074   provides output value
     4075   does not require location in body
     4076]]></description>
     4077                </element>
     4078                <element name="ncl_ChMux" type="integer" min="0" max="1">
     4079                        <description><![CDATA[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)
     4080
     4081Characteristics:
     4082   uses 2 inputs
     4083   provides output value
     4084   does not require location in body
     4085]]></description>
     4086                </element>
     4087                <element name="ncl_ChSel" type="integer" min="0" max="1">
     4088                        <description><![CDATA[Outputs a single channel (selected by the "ch" parameter) from multichannel input
     4089
     4090Characteristics:
     4091   uses single input
     4092   provides output value
     4093   does not require location in body
     4094
     4095
     4096Properties:
     4097   channel (ch) integer]]></description>
     4098                </element>
     4099                <element name="ncl_Rnd" type="integer" min="0" max="1">
     4100                        <description><![CDATA[Generates random noise (subsequent random values in the range of -1..+1)
     4101
     4102Characteristics:
     4103   does not use inputs
     4104   provides output value
     4105   does not require location in body
     4106]]></description>
     4107                </element>
     4108                <element name="ncl_Sin" type="integer" min="0" max="1">
     4109                        <description><![CDATA[Output frequency = f0+input
     4110
     4111Characteristics:
     4112   uses single input
     4113   provides output value
     4114   does not require location in body
     4115
     4116
     4117Properties:
     4118   base frequency (f0) float -1..1
     4119   time (t) float 0..6.28319]]></description>
     4120                </element>
     4121                <element name="simil_method" type="integer" min="0" max="1" default="0">
     4122                        <description><![CDATA[]]></description>
     4123                </element>
     4124                <element name="simil_parts" type="float" min="0" max="100" default="0.0">
     4125                        <description><![CDATA[Differing number of parts is also handled by the 'part degree' similarity component.]]></description>
     4126                </element>
     4127                <element name="simil_partdeg" type="float" min="0" max="100" default="1.0">
     4128                        <description><![CDATA[]]></description>
     4129                </element>
     4130                <element name="simil_neuro" type="float" min="0" max="100" default="0.5">
     4131                        <description><![CDATA[]]></description>
     4132                </element>
     4133                <element name="evaluateDistance" function="true" type="float">
     4134                        <description><![CDATA[Calculates dissimilarity between two models created from Geno objects.]]></description>
     4135                        <arguments>
     4136                                <argument type="Geno"/>
     4137                                <argument type="Geno"/>
     4138                        </arguments>
     4139                </element>
     4140                <element name="calculateSymmetry" function="true" type="float">
     4141                        <description><![CDATA[Returns 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).
     4142Note: may take a long time for large creatures.]]></description>
     4143                        <arguments>
     4144                                <argument name="model" type="Model"/>
     4145                        </arguments>
     4146                </element>
     4147                <element name="calculateSymmetry2" function="true" type="float">
     4148                        <description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model using specified precision parameters. Returns the symmetry plane, too (sets symResultA,B,C,D).
     4149Note: may take a long time for large creatures.]]></description>
     4150                        <arguments>
     4151                                <argument name="model" type="Model"/>
     4152                                <argument name="posSteps" type="integer"/>
     4153                                <argument name="alphaSteps" type="integer"/>
     4154                                <argument name="betaSteps" type="integer"/>
     4155                        </arguments>
     4156                </element>
     4157                <element name="calculateSymmetryForPlane" function="true" type="float">
     4158                        <description><![CDATA[Returns bilateral symmetry (0.0 .. 1.0) for a given Model and given a specific plane defined by coefficients A, B, C, D.]]></description>
     4159                        <arguments>
     4160                                <argument name="model" type="Model"/>
     4161                                <argument name="A" type="float"/>
     4162                                <argument name="B" type="float"/>
     4163                                <argument name="C" type="float"/>
     4164                                <argument name="D" type="float"/>
     4165                        </arguments>
     4166                </element>
     4167                <element name="symPosSteps" type="integer" min="2" max="50" default="10">
     4168                        <description><![CDATA[Default number of samples per stick length]]></description>
     4169                </element>
     4170                <element name="symAlphaSteps" type="integer" min="2" max="50" default="20">
     4171                        <description><![CDATA[Default number of samples per full angle (#1)]]></description>
     4172                </element>
     4173                <element name="symBetaSteps" type="integer" min="2" max="50" default="20">
     4174                        <description><![CDATA[Default number of samples per full angle (#2)]]></description>
     4175                </element>
     4176                <element name="symResultA" type="float"/>
     4177                <element name="symResultB" type="float"/>
     4178                <element name="symResultC" type="float"/>
     4179                <element name="symResultD" type="float"/>
     4180                <element name="geom_density" type="float" min="0.01" max="100" default="1.0">
     4181                        <description><![CDATA[Affects the geometry calculation precision]]></description>
     4182                </element>
    39914183                <element name="forModel" function="true" type="ModelGeometry">
    39924184                        <description><![CDATA[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.]]></description>
     
    39954187                        </arguments>
    39964188                </element>
    3997                 <element name="getSimplest" function="true" type="Geno">
    3998                         <description><![CDATA[returns the simplest genotype for a given encoding (format). 0 means f0, 4 means f4, etc.]]></description>
    3999                         <arguments>
    4000                                 <argument name="format" type="integer"/>
     4189                <element name="volume" function="true" type="float"><arguments/></element>
     4190                <element name="area" function="true" type="float"><arguments/></element>
     4191                <element name="sizesAndAxes" function="true" type="Vector">
     4192                        <description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
     4193<arguments/></element>
     4194                <element name="minjoint" type="float" min="0" max="100" default="0.0"/>
     4195                <element name="maxjoint" type="float" min="0" max="100" default="2.0"/>
     4196        </type>
     4197        <type name="Similarity" context="Global context">
     4198<description><![CDATA[Evaluates morphological dissimilarity. Read about details:
     4199http://www.framsticks.com/node/795
     4200http://www.framsticks.com/node/890]]></description>
     4201                <element name="simil_method" type="integer" min="0" max="1" default="0">
     4202                        <description><![CDATA[]]></description>
     4203                </element>
     4204                <element name="simil_parts" type="float" min="0" max="100" default="0.0">
     4205                        <description><![CDATA[Differing number of parts is also handled by the 'part degree' similarity component.]]></description>
     4206                </element>
     4207                <element name="simil_partdeg" type="float" min="0" max="100" default="1.0">
     4208                        <description><![CDATA[]]></description>
     4209                </element>
     4210                <element name="simil_neuro" type="float" min="0" max="100" default="0.5">
     4211                        <description><![CDATA[]]></description>
     4212                </element>
     4213                <element name="evaluateDistance" function="true" type="float">
     4214                        <description><![CDATA[Calculates dissimilarity between two models created from Geno objects.]]></description>
     4215                        <arguments>
     4216                                <argument type="Geno"/>
     4217                                <argument type="Geno"/>
     4218                        </arguments>
     4219                </element>
     4220        </type>
     4221        <type name="Simulator" context="Global context">
     4222<description><![CDATA[The Framsticks simulator.]]></description>
     4223                <element name="print" function="true" type="void">
     4224                        <description><![CDATA[One argument: message to be printed]]></description>
     4225                        <arguments>
     4226                                <argument name="text" type="string"/>
     4227                        </arguments>
     4228                </element>
     4229                <element name="message" function="true" type="void">
     4230                        <description><![CDATA[The second argument can be:
     4231 -1 = debugging message
     4232 0 = information
     4233 1 = warning
     4234 2 = error
     4235 3 = critical error]]></description>
     4236                        <arguments>
     4237                                <argument name="text" type="string"/>
     4238                                <argument name="level" type="integer"/>
     4239                        </arguments>
     4240                </element>
     4241                <element name="sleep" function="true" type="void">
     4242                        <description><![CDATA[Suspends the execution for a specified interval]]></description>
     4243                        <arguments>
     4244                                <argument name="milliseconds" type="integer"/>
     4245                        </arguments>
     4246                </element>
     4247                <element name="beep" function="true" type="void">
     4248                        <description><![CDATA[Plays a default system sound]]></description>
     4249<arguments/></element>
     4250                <element name="sound" function="true" type="void">
     4251                        <description><![CDATA[Generates a simple tone on the speaker]]></description>
     4252                        <arguments>
     4253                                <argument name="freqency in Hz" type="integer"/>
     4254                                <argument name="length in milliseconds" type="integer"/>
     4255                        </arguments>
     4256                </element>
     4257                <element name="eval" function="true" type="void">
     4258                        <description><![CDATA[The argument must be a complete statement, e.g. "return 2+2;" is valid, while "2+2" is not. The EvalError object is returned for invalid statements.
     4259Example:
     4260var statement="function fun(a) {return a*a;} return fun(Math.pi);";
     4261var result=Simulator.eval(statement);
     4262if (typeof result=="EvalError")
     4263   Simulator.print("Error:"+result.message);
     4264else
     4265   Simulator.print("Result:"+result);]]></description>
     4266                        <arguments>
     4267                                <argument name="script statement" type="string"/>
     4268                        </arguments>
     4269                </element>
     4270                <element name="load" function="true" type="void">
     4271                        <description><![CDATA[Load 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()" (only if "resetonexpdef" is enabled). Use "import" if you don't want to loose the old simulator state.]]></description>
     4272                        <arguments>
     4273                                <argument name="filename" type="string"/>
    40014274                        </arguments>
    40024275                </element>
     
    40234296                        </arguments>
    40244297                </element>
    4025                 <element name="init" function="true" type="void">
    4026                         <description><![CDATA[Performs initialization procedures, like resetting counters, states, gene pools, etc.]]></description>
    4027 <arguments/></element>
    4028                 <element name="load" function="true" type="void">
    4029                         <description><![CDATA[Load 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()" (only if "resetonexpdef" is enabled). Use "import" if you don't want to loose the old simulator state.]]></description>
    4030                         <arguments>
    4031                                 <argument name="filename" type="string"/>
    4032                         </arguments>
    4033                 </element>
    4034                 <element name="loadexpdef" function="true" type="void"><arguments/></element>
    4035                 <element name="loadNeurons" function="true" type="void">
    4036                         <arguments>
    4037                                 <argument name="directory path" type="string"/>
    4038                         </arguments>
    4039                 </element>
    4040                 <element name="message" function="true" type="void">
    4041                         <description><![CDATA[The second argument can be:
    4042  -1 = debugging message
    4043  0 = information
    4044  1 = warning
    4045  2 = error
    4046  3 = critical error]]></description>
    4047                         <arguments>
    4048                                 <argument name="text" type="string"/>
    4049                                 <argument name="level" type="integer"/>
    4050                         </arguments>
    4051                 </element>
    4052                 <element name="mutate" function="true" type="Geno">
    4053                         <description><![CDATA[returns mutated Geno object from supplied Geno]]></description>
    4054                         <arguments>
    4055                                 <argument type="Geno"/>
    4056                         </arguments>
    4057                 </element>
    4058                 <element name="new" function="true" type="Simulator"><arguments/></element>
    4059                 <element name="operReport" function="true" type="void">
    4060                         <description><![CDATA[Show available genetic operators]]></description>
    4061 <arguments/></element>
    4062                 <element name="print" function="true" type="void">
    4063                         <description><![CDATA[One argument: message to be printed]]></description>
    4064                         <arguments>
    4065                                 <argument name="text" type="string"/>
    4066                         </arguments>
    4067                 </element>
    4068                 <element name="rayIntersection" function="true" type="float">
    4069                         <arguments>
    4070                                 <argument name="position x" type="float"/>
    4071                                 <argument name="position y" type="float"/>
    4072                                 <argument name="position z" type="float"/>
    4073                                 <argument name="direction x" type="float"/>
    4074                                 <argument name="direction y" type="float"/>
    4075                                 <argument name="direction z" type="float"/>
    4076                                 <argument name="max distance" type="float"/>
    4077                         </arguments>
    4078                 </element>
    4079                 <element name="remove" function="true"/>
    4080                 <element name="removeGroup" function="true"/>
    4081                 <element name="resetToDefaults" function="true" type="void">
    4082                         <description><![CDATA[Clears groups and loads default values for simulator parameters, then calls onExpDefLoad() of the current experiment definition.]]></description>
    4083 <arguments/></element>
    40844298                <element name="save" function="true" type="untyped">
    40854299                        <description><![CDATA[Save experiment file (calls onExpSave() in the current experiment definition)]]></description>
    40864300                        <arguments>
    40874301                                <argument name="filename" type="string"/>
    4088                         </arguments>
    4089                 </element>
    4090                 <element name="sizesAndAxes" function="true" type="Vector">
    4091                         <description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
    4092 <arguments/></element>
    4093                 <element name="sleep" function="true" type="void">
    4094                         <description><![CDATA[Suspends the execution for a specified interval]]></description>
    4095                         <arguments>
    4096                                 <argument name="milliseconds" type="integer"/>
    4097                         </arguments>
    4098                 </element>
    4099                 <element name="sound" function="true" type="void">
    4100                         <description><![CDATA[Generates a simple tone on the speaker]]></description>
    4101                         <arguments>
    4102                                 <argument name="freqency in Hz" type="integer"/>
    4103                                 <argument name="length in milliseconds" type="integer"/>
    4104                         </arguments>
    4105                 </element>
    4106                 <element name="start" function="true" type="void">
    4107                         <description><![CDATA[called by the user interface]]></description>
    4108 <arguments/></element>
    4109                 <element name="step" function="true" type="void"><arguments/></element>
    4110                 <element name="stop" function="true" type="void">
    4111                         <description><![CDATA[the expdef script calls this to stop simulation]]></description>
    4112 <arguments/></element>
    4113                 <element name="toHTML" function="true" type="string">
    4114                         <description><![CDATA[returns genotype expressed as colored HTML]]></description>
    4115                         <arguments>
    4116                                 <argument type="string"/>
    4117                         </arguments>
    4118                 </element>
    4119                 <element name="toHTMLshort" function="true" type="string">
    4120                         <description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
    4121                         <arguments>
    4122                                 <argument type="string"/>
    4123                         </arguments>
    4124                 </element>
    4125                 <element name="validate" function="true" type="Geno">
    4126                         <description><![CDATA[returns validated (if possible) Geno object from supplied Geno]]></description>
    4127                         <arguments>
    4128                                 <argument type="Geno"/>
    4129                         </arguments>
    4130                 </element>
    4131                 <element name="volume" function="true" type="float"><arguments/></element>
    4132                 <element name="wrldchg" function="true" type="void"><arguments/></element>
    4133         </type>
    4134         <type name="Similarity" context="Global context">
    4135                 <element name="simil_method" type="integer" min="0" max="1" default="0">
    4136                         <description><![CDATA[]]></description>
    4137                 </element>
    4138                 <element name="simil_neuro" type="float" min="0" max="100" default="0.5">
    4139                         <description><![CDATA[]]></description>
    4140                 </element>
    4141                 <element name="simil_partdeg" type="float" min="0" max="100" default="1.0">
    4142                         <description><![CDATA[]]></description>
    4143                 </element>
    4144                 <element name="simil_parts" type="float" min="0" max="100" default="0.0">
    4145                         <description><![CDATA[Differing number of parts is also handled by the 'part degree' similarity component.]]></description>
    4146                 </element>
    4147                 <element name="evaluateDistance" function="true" type="float">
    4148                         <description><![CDATA[Calculates dissimilarity between two models created from Geno objects. There are papers available that describe details of the computation method.]]></description>
    4149                         <arguments>
    4150                                 <argument type="Geno"/>
    4151                                 <argument type="Geno"/>
    4152                         </arguments>
    4153                 </element>
    4154         </type>
    4155         <type name="Simulator" context="Global context">
    4156 <description><![CDATA[The Framsticks simulator.]]></description>
    4157                 <element name="autosaveperiod" type="integer" min="0" max="100000">
    4158                         <description><![CDATA[Save simulation state once every n-th event
    4159 (events are defined by the script. For 'standard.expdef' it is after each death).
    4160 Save EXPT file first to initialize name for autosave files.
    4161 Slave simulators (in multithreaded experiments) ignore this setting and never create autosave files.]]></description>
    4162                 </element>
    4163                 <element name="cpus" type="integer"/>
    4164                 <element name="createrr" type="integer" min="0" max="2" default="1"/>
    4165                 <element name="creatwarnfail" type="integer" min="0" max="1">
    4166                         <description><![CDATA[Creatures grown with warnings will not be simulated.]]></description>
    4167                 </element>
    4168                 <element name="expdef" type="string">
    4169                         <description><![CDATA[Choose the experiment framework
    4170 (in Windows GUI, confirm by pressing 'Apply')
    4171 
    4172 Stop the simulation before selecting another experiment definition.
    4173 It is a good practice to initialize the experiment before running the simulation.]]></description>
    4174                 </element>
    4175                 <element name="expdef_info" type="string"/>
    4176                 <element name="expdef_title" type="string"/>
    4177                 <element name="expparams" type="ExpParams"/>
    4178                 <element name="expstate" type="ExpState"/>
    4179                 <element name="filecomm" type="integer" min="0" max="1" default="1">
    4180                         <description><![CDATA[Display comments encountered in opened files]]></description>
    4181                 </element>
    4182                 <element name="genepools" type="GenePools"/>
    4183                 <element name="groupchk" type="integer" min="0" max="1"/>
    4184                 <element name="identity" type="integer">
    4185                         <description><![CDATA[-1 for master simulator, 0...count-1 for slaves]]></description>
    4186                 </element>
    4187                 <element name="importchk" type="integer" min="0" max="1"/>
    4188                 <element name="lastCheckpoint" type="untyped">
    4189                         <description><![CDATA[Most recently reported by the experiment definition script.]]></description>
    4190                 </element>
    4191                 <element name="loadchk" type="integer" min="0" max="1"/>
    4192                 <element name="overwrite" type="integer" min="0" max="1">
    4193                         <description><![CDATA[Overwite existing files or create their backups]]></description>
    4194                 </element>
    4195                 <element name="populations" type="Populations"/>
    4196                 <element name="resetonexpdef" type="integer" min="0" max="1" default="1">
    4197                         <description><![CDATA[If turned on: when a new experiment definition is selected, default values are loaded for most of the simulator parameters, and gene pools and populations are cleared.
    4198 If turned off: parameters from previous experiment definition will remain (dangerous).]]></description>
    4199                 </element>
    4200                 <element name="running" type="integer" min="0" max="1">
    4201                         <description><![CDATA[useful for synchronizing the user interface state]]></description>
    4202                 </element>
    4203                 <element name="simspeed" type="integer">
    4204                         <description><![CDATA[steps/second]]></description>
    4205                 </element>
    4206                 <element name="slaves" type="SlaveSimulators"/>
    4207                 <element name="time" type="integer"/>
    4208                 <element name="user" type="untyped"/>
    4209                 <element name="usercode" type="string">
    4210                         <description><![CDATA[This script overrides the experiment definition]]></description>
    4211                 </element>
    4212                 <element name="vmdebug" type="integer" min="0" max="1"/>
    4213                 <element name="world" type="World"/>
    4214                 <element name="beep" function="true" type="void">
    4215                         <description><![CDATA[Plays a default system sound]]></description>
    4216 <arguments/></element>
    4217                 <element name="checkpoint" function="true" type="void">
    4218                         <description><![CDATA[This function was previously called "autosave".]]></description>
    4219 <arguments/></element>
    4220                 <element name="checkpointData" function="true" type="void">
    4221                         <description><![CDATA[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)]]></description>
    4222                         <arguments>
    4223                                 <argument name="any_data" type="untyped"/>
    4224                         </arguments>
    4225                 </element>
    4226                 <element name="eval" function="true" type="void">
    4227                         <description><![CDATA[The argument must be a complete statement, e.g. "return 2+2;" is valid, while "2+2" is not. The EvalError object is returned for invalid statements.
    4228 Example:
    4229 var statement="function fun(a) {return a*a;} return fun(Math.pi);";
    4230 var result=Simulator.eval(statement);
    4231 if (typeof result=="EvalError")
    4232    Simulator.print("Error:"+result.message);
    4233 else
    4234    Simulator.print("Result:"+result);]]></description>
    4235                         <arguments>
    4236                                 <argument name="script statement" type="string"/>
    42374302                        </arguments>
    42384303                </element>
     
    42574322                        </arguments>
    42584323                </element>
    4259                 <element name="import" function="true" type="void">
    4260                         <description><![CDATA[Load some data from file. The second optional argument selects what section(s) will be imported:
    4261  1 - experiment (works like "load" and can reset the simulator state!)
    4262  2 - genotypes
    4263  4 - simulator parameters
    4264  8 - genepool settings
    4265  16 - population settings
    4266  32 - new groups will be created for imported genepools and populations
    4267 64 - allow switching to a different expdef while importing parameters (4)
    4268 
    4269 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 dengerous, 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.]]></description>
    4270                         <arguments>
    4271                                 <argument name="filename" type="string"/>
    4272                                 <argument name="options" type="integer"/>
    4273                         </arguments>
    4274                 </element>
    4275                 <element name="import" function="true" type="void">
    4276                         <description><![CDATA[Equivalent to import(filename,2+4+8+16) - imports genotypes, parameters, genepool and population settings]]></description>
    4277                         <arguments>
    4278                                 <argument name="filename" type="string"/>
    4279                         </arguments>
    4280                 </element>
     4324                <element name="start" function="true" type="void">
     4325                        <description><![CDATA[called by the user interface]]></description>
     4326<arguments/></element>
     4327                <element name="stop" function="true" type="void">
     4328                        <description><![CDATA[the expdef script calls this to stop simulation]]></description>
     4329<arguments/></element>
     4330                <element name="running" type="integer" min="0" max="1">
     4331                        <description><![CDATA[useful for synchronizing the user interface state]]></description>
     4332                </element>
     4333                <element name="step" function="true" type="void"><arguments/></element>
     4334                <element name="time" type="integer"/>
     4335                <element name="simspeed" type="integer">
     4336                        <description><![CDATA[steps/second]]></description>
     4337                </element>
     4338                <element name="expdef" type="string">
     4339                        <description><![CDATA[Choose the experiment framework
     4340(in Windows GUI, confirm by pressing 'Apply')
     4341
     4342Stop the simulation before selecting another experiment definition.
     4343It is a good practice to initialize the experiment before running the simulation.]]></description>
     4344                </element>
     4345                <element name="expdef_title" type="string"/>
     4346                <element name="expdef_info" type="string"/>
    42814347                <element name="init" function="true" type="void">
    42824348                        <description><![CDATA[Performs initialization procedures, like resetting counters, states, gene pools, etc.]]></description>
    42834349<arguments/></element>
    4284                 <element name="load" function="true" type="void">
    4285                         <description><![CDATA[Load 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()" (only if "resetonexpdef" is enabled). Use "import" if you don't want to loose the old simulator state.]]></description>
    4286                         <arguments>
    4287                                 <argument name="filename" type="string"/>
    4288                         </arguments>
    4289                 </element>
    42904350                <element name="loadexpdef" function="true" type="void"><arguments/></element>
    4291                 <element name="loadNeurons" function="true" type="void">
    4292                         <arguments>
    4293                                 <argument name="directory path" type="string"/>
    4294                         </arguments>
    4295                 </element>
    4296                 <element name="message" function="true" type="void">
    4297                         <description><![CDATA[The second argument can be:
    4298  -1 = debugging message
    4299  0 = information
    4300  1 = warning
    4301  2 = error
    4302  3 = critical error]]></description>
    4303                         <arguments>
    4304                                 <argument name="text" type="string"/>
    4305                                 <argument name="level" type="integer"/>
    4306                         </arguments>
    4307                 </element>
    4308                 <element name="new" function="true" type="Simulator"><arguments/></element>
    4309                 <element name="print" function="true" type="void">
    4310                         <description><![CDATA[One argument: message to be printed]]></description>
    4311                         <arguments>
    4312                                 <argument name="text" type="string"/>
    4313                         </arguments>
    4314                 </element>
     4351                <element name="usercode" type="string">
     4352                        <description><![CDATA[This script overrides the experiment definition]]></description>
     4353                </element>
     4354                <element name="autosaveperiod" type="integer" min="0" max="100000">
     4355                        <description><![CDATA[Save simulation state once every n-th event
     4356(events are defined by the script. For 'standard.expdef' it is after each death).
     4357Save EXPT file first to initialize name for autosave files.
     4358Slave simulators (in multithreaded experiments) ignore this setting and never create autosave files.]]></description>
     4359                </element>
     4360                <element name="overwrite" type="integer" min="0" max="1">
     4361                        <description><![CDATA[Overwite existing files or create their backups]]></description>
     4362                </element>
     4363                <element name="filecomm" type="integer" min="0" max="1" default="1">
     4364                        <description><![CDATA[Display comments encountered in opened files]]></description>
     4365                </element>
     4366                <element name="checkpoint" function="true" type="void">
     4367                        <description><![CDATA[This function was previously called "autosave".]]></description>
     4368<arguments/></element>
     4369                <element name="checkpointData" function="true" type="void">
     4370                        <description><![CDATA[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)]]></description>
     4371                        <arguments>
     4372                                <argument name="any_data" type="untyped"/>
     4373                        </arguments>
     4374                </element>
     4375                <element name="lastCheckpoint" type="untyped">
     4376                        <description><![CDATA[Most recently reported by the experiment definition script.]]></description>
     4377                </element>
     4378                <element name="createrr" type="integer" min="0" max="2" default="1"/>
     4379                <element name="creatwarnfail" type="integer" min="0" max="1">
     4380                        <description><![CDATA[Creatures grown with warnings will not be simulated.]]></description>
     4381                </element>
     4382                <element name="importchk" type="integer" min="0" max="1"/>
     4383                <element name="loadchk" type="integer" min="0" max="1"/>
     4384                <element name="groupchk" type="integer" min="0" max="1"/>
     4385                <element name="vmdebug" type="integer" min="0" max="1"/>
    43154386                <element name="resetToDefaults" function="true" type="void">
    43164387                        <description><![CDATA[Clears groups and loads default values for simulator parameters, then calls onExpDefLoad() of the current experiment definition.]]></description>
    43174388<arguments/></element>
    4318                 <element name="save" function="true" type="untyped">
    4319                         <description><![CDATA[Save experiment file (calls onExpSave() in the current experiment definition)]]></description>
    4320                         <arguments>
    4321                                 <argument name="filename" type="string"/>
    4322                         </arguments>
    4323                 </element>
    4324                 <element name="sleep" function="true" type="void">
    4325                         <description><![CDATA[Suspends the execution for a specified interval]]></description>
    4326                         <arguments>
    4327                                 <argument name="milliseconds" type="integer"/>
    4328                         </arguments>
    4329                 </element>
    4330                 <element name="sound" function="true" type="void">
    4331                         <description><![CDATA[Generates a simple tone on the speaker]]></description>
    4332                         <arguments>
    4333                                 <argument name="freqency in Hz" type="integer"/>
    4334                                 <argument name="length in milliseconds" type="integer"/>
    4335                         </arguments>
    4336                 </element>
    4337                 <element name="start" function="true" type="void">
    4338                         <description><![CDATA[called by the user interface]]></description>
     4389                <element name="resetonexpdef" type="integer" min="0" max="1" default="1">
     4390                        <description><![CDATA[If turned on: when a new experiment definition is selected, default values are loaded for most of the simulator parameters, and gene pools and populations are cleared.
     4391If turned off: parameters from previous experiment definition will remain (dangerous).]]></description>
     4392                </element>
     4393                <element name="new" function="true" type="Simulator"><arguments/></element>
     4394                <element name="slaves" type="SlaveSimulators"/>
     4395                <element name="cpus" type="integer"/>
     4396                <element name="world" type="World"/>
     4397                <element name="populations" type="Populations"/>
     4398                <element name="genepools" type="GenePools"/>
     4399                <element name="expparams" type="ExpParams"/>
     4400                <element name="expstate" type="ExpState"/>
     4401                <element name="loadNeurons" function="true" type="void">
     4402                        <arguments>
     4403                                <argument name="directory path" type="string"/>
     4404                        </arguments>
     4405                </element>
     4406                <element name="user" type="untyped"/>
     4407                <element name="identity" type="integer">
     4408                        <description><![CDATA[-1 for master simulator, 0...count-1 for slaves]]></description>
     4409                </element>
     4410        </type>
     4411        <type name="SlaveSimulators" context="Global context">
     4412                <element name="size" type="integer" min="0" max="50">
     4413                        <description><![CDATA[Changing this value will create/remove slave simulator objects as needed.]]></description>
     4414                </element>
     4415                <element name="get" function="true" type="Simulator">
     4416                        <description><![CDATA[Access the slave simulator object (Simulator.slaves[index] works, too).
     4417Important: Do not operate on a simulator that is currently running, always stop() it first.]]></description>
     4418                        <arguments>
     4419                                <argument name="index" type="integer"/>
     4420                        </arguments>
     4421                </element>
     4422                <element name="running" type="integer">
     4423                        <description><![CDATA[Note that if running>0 then the number of running simulations can be outdated in the very moment you read this field, because the expdef can stop itself anytime. If running==0, then it is guaranteed to stay 0 until someone calls start() on some of the slave simulator objects.]]></description>
     4424                </element>
     4425                <element name="create" function="true" type="Simulator">
     4426                        <description><![CDATA[If you need to create AND store the reference to a newly created simulator object, then this function may be more readable than var s=Simulator.slaves[Simulator.slaves.size++];]]></description>
    43394427<arguments/></element>
    4340                 <element name="step" function="true" type="void"><arguments/></element>
    4341                 <element name="stop" function="true" type="void">
    4342                         <description><![CDATA[the expdef script calls this to stop simulation]]></description>
    4343 <arguments/></element>
    4344         </type>
    4345         <type name="SlaveSimulators" context="Global context">
     4428                <element name="remove" function="true" type="void">
     4429                        <description><![CDATA[Also calls stop() if the simulator is running. Events assocated with the simulator being deleted are cancelled, so the expdef will not see the usual onSlaveStop.]]></description>
     4430                        <arguments>
     4431                                <argument name="index_or_object" type="untyped"/>
     4432                        </arguments>
     4433                </element>
     4434                <element name="removeAll" function="true">
     4435                        <description><![CDATA[Same as Simulator.slaves=0;]]></description>
     4436                </element>
     4437                <element name="startAll" function="true"/>
     4438                <element name="stopAll" function="true"/>
     4439                <element name="cancelEventsFromSlave" function="true" type="void">
     4440                        <description><![CDATA[If the onSlaveStop() event is used to schedule work to a simulator, then you might want to cancel pending events when the experiment is aborted - otherwise it may be difficult to distinguish between self-stop events (called internally from the slave simulator to signal the job was completed) from abort-stop events (requested by the supervising simulator). Calling Simulator.slaves.stopAll(); Simulator.slaves.cancelAllEvents(); makes sure that no old events will be detected after that time point. Without cancelling, the old onSlaveStop() notification (the consequence of the abort-stop) might arrive after the next start() which may confuse the expdef code (slave events are asynchronous).]]></description>
     4441                        <arguments>
     4442                                <argument type="Simulator"/>
     4443                        </arguments>
     4444                </element>
     4445                <element name="cancelAllEvents" function="true">
     4446                        <description><![CDATA[see cancelEventsFromSlave()]]></description>
     4447                </element>
    43464448                <element name="isolation" type="integer" min="0" max="1" default="1">
    43474449                        <description><![CDATA[Slave simulator access is filtered to exclude object references across simulator boundaries and ensure a safe multithreaded operation.
     
    43574459var g=Simulator.slaves[0].genepools[0][0].genotype; - but the slave's GenePool can be accessed from master (if the slave is not running at the moment)]]></description>
    43584460                </element>
    4359                 <element name="running" type="integer">
    4360                         <description><![CDATA[Note that if running>0 then the number of running simulations can be outdated in the very moment you read this field, because the expdef can stop itself anytime. If running==0, then it is guaranteed to stay 0 until someone calls start() on some of the slave simulator objects.]]></description>
    4361                 </element>
    4362                 <element name="size" type="integer" min="0" max="50">
    4363                         <description><![CDATA[Changing this value will create/remove slave simulator objects as needed.]]></description>
    4364                 </element>
    4365                 <element name="cancelAllEvents" function="true">
    4366                         <description><![CDATA[see cancelEventsFromSlave()]]></description>
    4367                 </element>
    4368                 <element name="cancelEventsFromSlave" function="true" type="void">
    4369                         <description><![CDATA[If the onSlaveStop() event is used to schedule work to a simulator, then you might want to cancel pending events when the experiment is aborted - otherwise it may be difficult to distinguish between self-stop events (called internally from the slave simulator to signal the job was completed) from abort-stop events (requested by the supervising simulator). Calling Simulator.slaves.stopAll(); Simulator.slaves.cancelAllEvents(); makes sure that no old events will be detected after that time point. Without cancelling, the old onSlaveStop() notification (the consequence of the abort-stop) might arrive after the next start() which may confuse the expdef code (slave events are asynchronous).]]></description>
    4370                         <arguments>
    4371                                 <argument type="Simulator"/>
    4372                         </arguments>
    4373                 </element>
    4374                 <element name="create" function="true" type="Simulator">
    4375                         <description><![CDATA[If you need to create AND store the reference to a newly created simulator object, then this function may be more readable than var s=Simulator.slaves[Simulator.slaves.size++];]]></description>
     4461        </type>
     4462        <type name="stats" context="Global context">
     4463                <element name="gen_count" type="integer">
     4464                        <description><![CDATA[]]></description>
     4465                </element>
     4466                <element name="gen_mvalid" type="integer">
     4467                        <description><![CDATA[]]></description>
     4468                </element>
     4469                <element name="gen_mvalidated" type="integer">
     4470                        <description><![CDATA[]]></description>
     4471                </element>
     4472                <element name="gen_minvalid" type="integer">
     4473                        <description><![CDATA[couldn't be repaired]]></description>
     4474                </element>
     4475                <element name="gen_mfailed" type="integer">
     4476                        <description><![CDATA[couldn't be performed]]></description>
     4477                </element>
     4478                <element name="gen_xovalid" type="integer">
     4479                        <description><![CDATA[]]></description>
     4480                </element>
     4481                <element name="gen_xovalidated" type="integer">
     4482                        <description><![CDATA[]]></description>
     4483                </element>
     4484                <element name="gen_xoinvalid" type="integer">
     4485                        <description><![CDATA[couldn't be repaired]]></description>
     4486                </element>
     4487                <element name="gen_xofailed" type="integer">
     4488                        <description><![CDATA[couldn't be performed]]></description>
     4489                </element>
     4490                <element name="gen_mutimpr" type="float">
     4491                        <description><![CDATA[total cumulative mutation change]]></description>
     4492                </element>
     4493                <element name="gen_xoimpr" type="float">
     4494                        <description><![CDATA[total cumulative crossover change]]></description>
     4495                </element>
     4496                <element name="clrstats" function="true" type="void">
     4497                        <description><![CDATA[]]></description>
    43764498<arguments/></element>
    4377                 <element name="get" function="true" type="Simulator">
    4378                         <description><![CDATA[Access the slave simulator object (Simulator.slaves[index] works, too).
    4379 Important: Do not operate on a simulator that is currently running, always stop() it first.]]></description>
    4380                         <arguments>
    4381                                 <argument name="index" type="integer"/>
    4382                         </arguments>
    4383                 </element>
    4384                 <element name="remove" function="true" type="void">
    4385                         <description><![CDATA[Also calls stop() if the simulator is running. Events assocated with the simulator being deleted are cancelled, so the expdef will not see the usual onSlaveStop.]]></description>
    4386                         <arguments>
    4387                                 <argument name="index_or_object" type="untyped"/>
    4388                         </arguments>
    4389                 </element>
    4390                 <element name="removeAll" function="true">
    4391                         <description><![CDATA[Same as Simulator.slaves=0;]]></description>
    4392                 </element>
    4393                 <element name="startAll" function="true"/>
    4394                 <element name="stopAll" function="true"/>
    4395         </type>
    4396         <type name="stats" context="Global context">
     4499                <element name="clear" function="true"/>
     4500                <element name="add" function="true"/>
     4501                <element name="remove" function="true"/>
     4502                <element name="addGroup" function="true"/>
     4503                <element name="removeGroup" function="true"/>
    43974504                <element name="changedProperty" type="integer"/>
    43984505                <element name="changedPropertyId" type="string"/>
    4399                 <element name="gen_count" type="integer">
    4400                         <description><![CDATA[]]></description>
    4401                 </element>
    4402                 <element name="gen_mfailed" type="integer">
    4403                         <description><![CDATA[couldn't be performed]]></description>
    4404                 </element>
    4405                 <element name="gen_minvalid" type="integer">
    4406                         <description><![CDATA[couldn't be repaired]]></description>
    4407                 </element>
    4408                 <element name="gen_mutimpr" type="float">
    4409                         <description><![CDATA[total cumulative mutation change]]></description>
    4410                 </element>
    4411                 <element name="gen_mvalid" type="integer">
    4412                         <description><![CDATA[]]></description>
    4413                 </element>
    4414                 <element name="gen_mvalidated" type="integer">
    4415                         <description><![CDATA[]]></description>
    4416                 </element>
    4417                 <element name="gen_xofailed" type="integer">
    4418                         <description><![CDATA[couldn't be performed]]></description>
    4419                 </element>
    4420                 <element name="gen_xoimpr" type="float">
    4421                         <description><![CDATA[total cumulative crossover change]]></description>
    4422                 </element>
    4423                 <element name="gen_xoinvalid" type="integer">
    4424                         <description><![CDATA[couldn't be repaired]]></description>
    4425                 </element>
    4426                 <element name="gen_xovalid" type="integer">
    4427                         <description><![CDATA[]]></description>
    4428                 </element>
    4429                 <element name="gen_xovalidated" type="integer">
    4430                         <description><![CDATA[]]></description>
    4431                 </element>
     4506                <element name="st_count" type="integer"/>
     4507                <element name="st_min_numparts" type="float"/>
     4508                <element name="st_avg_numparts" type="float"/>
     4509                <element name="st_max_numparts" type="float"/>
     4510                <element name="st_min_numjoints" type="float"/>
     4511                <element name="st_avg_numjoints" type="float"/>
     4512                <element name="st_max_numjoints" type="float"/>
     4513                <element name="st_min_numneurons" type="float"/>
     4514                <element name="st_avg_numneurons" type="float"/>
     4515                <element name="st_max_numneurons" type="float"/>
     4516                <element name="st_min_numconnections" type="float"/>
     4517                <element name="st_avg_numconnections" type="float"/>
     4518                <element name="st_max_numconnections" type="float"/>
     4519                <element name="st_min_num" type="float"/>
     4520                <element name="st_avg_num" type="float"/>
     4521                <element name="st_max_num" type="float"/>
     4522                <element name="st_min_gnum" type="float"/>
     4523                <element name="st_avg_gnum" type="float"/>
     4524                <element name="st_max_gnum" type="float"/>
     4525                <element name="st_min_instances" type="float"/>
     4526                <element name="st_avg_instances" type="float"/>
     4527                <element name="st_max_instances" type="float"/>
     4528                <element name="st_min_lifespan" type="float"/>
     4529                <element name="st_avg_lifespan" type="float"/>
     4530                <element name="st_max_lifespan" type="float"/>
     4531                <element name="st_min_velocity" type="float"/>
     4532                <element name="st_avg_velocity" type="float"/>
     4533                <element name="st_max_velocity" type="float"/>
     4534                <element name="st_min_distance" type="float"/>
     4535                <element name="st_avg_distance" type="float"/>
     4536                <element name="st_max_distance" type="float"/>
     4537                <element name="st_min_vertvel" type="float"/>
     4538                <element name="st_avg_vertvel" type="float"/>
     4539                <element name="st_max_vertvel" type="float"/>
     4540                <element name="st_min_vertpos" type="float"/>
     4541                <element name="st_avg_vertpos" type="float"/>
     4542                <element name="st_max_vertpos" type="float"/>
     4543                <element name="st_min_fit" type="float"/>
     4544                <element name="st_avg_fit" type="float"/>
     4545                <element name="st_max_fit" type="float"/>
     4546                <element name="st_min_fit2" type="float"/>
     4547                <element name="st_avg_fit2" type="float"/>
     4548                <element name="st_max_fit2" type="float"/>
     4549                <element name="st_min_c_velocity" type="float"/>
    44324550                <element name="st_avg_c_velocity" type="float"/>
     4551                <element name="st_max_c_velocity" type="float"/>
     4552                <element name="st_min_c_vertvelocity" type="float"/>
     4553                <element name="st_avg_c_vertvelocity" type="float"/>
     4554                <element name="st_max_c_vertvelocity" type="float"/>
     4555                <element name="st_min_c_vertpos" type="float"/>
    44334556                <element name="st_avg_c_vertpos" type="float"/>
    4434                 <element name="st_avg_c_vertvelocity" type="float"/>
     4557                <element name="st_max_c_vertpos" type="float"/>
     4558                <element name="st_min_pos_x" type="float"/>
     4559                <element name="st_avg_pos_x" type="float"/>
     4560                <element name="st_max_pos_x" type="float"/>
     4561                <element name="st_min_pos_y" type="float"/>
     4562                <element name="st_avg_pos_y" type="float"/>
     4563                <element name="st_max_pos_y" type="float"/>
     4564                <element name="st_min_pos_z" type="float"/>
     4565                <element name="st_avg_pos_z" type="float"/>
     4566                <element name="st_max_pos_z" type="float"/>
     4567                <element name="st_min_size_x" type="float"/>
     4568                <element name="st_avg_size_x" type="float"/>
     4569                <element name="st_max_size_x" type="float"/>
     4570                <element name="st_min_size_y" type="float"/>
     4571                <element name="st_avg_size_y" type="float"/>
     4572                <element name="st_max_size_y" type="float"/>
     4573                <element name="st_min_size_z" type="float"/>
     4574                <element name="st_avg_size_z" type="float"/>
     4575                <element name="st_max_size_z" type="float"/>
     4576                <element name="st_min_center_x" type="float"/>
    44354577                <element name="st_avg_center_x" type="float"/>
     4578                <element name="st_max_center_x" type="float"/>
     4579                <element name="st_min_center_y" type="float"/>
    44364580                <element name="st_avg_center_y" type="float"/>
     4581                <element name="st_max_center_y" type="float"/>
     4582                <element name="st_min_center_z" type="float"/>
    44374583                <element name="st_avg_center_z" type="float"/>
    4438                 <element name="st_avg_distance" type="float"/>
    4439                 <element name="st_avg_fit" type="float"/>
    4440                 <element name="st_avg_fit2" type="float"/>
    4441                 <element name="st_avg_gnum" type="float"/>
    4442                 <element name="st_avg_instances" type="float"/>
    4443                 <element name="st_avg_lifespan" type="float"/>
    4444                 <element name="st_avg_num" type="float"/>
    4445                 <element name="st_avg_numconnections" type="float"/>
    4446                 <element name="st_avg_numjoints" type="float"/>
    4447                 <element name="st_avg_numneurons" type="float"/>
    4448                 <element name="st_avg_numparts" type="float"/>
    4449                 <element name="st_avg_pos_x" type="float"/>
    4450                 <element name="st_avg_pos_y" type="float"/>
    4451                 <element name="st_avg_pos_z" type="float"/>
    4452                 <element name="st_avg_size_x" type="float"/>
    4453                 <element name="st_avg_size_y" type="float"/>
    4454                 <element name="st_avg_size_z" type="float"/>
    4455                 <element name="st_avg_velocity" type="float"/>
    4456                 <element name="st_avg_vertpos" type="float"/>
    4457                 <element name="st_avg_vertvel" type="float"/>
    4458                 <element name="st_count" type="integer"/>
    4459                 <element name="st_max_c_velocity" type="float"/>
    4460                 <element name="st_max_c_vertpos" type="float"/>
    4461                 <element name="st_max_c_vertvelocity" type="float"/>
    4462                 <element name="st_max_center_x" type="float"/>
    4463                 <element name="st_max_center_y" type="float"/>
    44644584                <element name="st_max_center_z" type="float"/>
    4465                 <element name="st_max_distance" type="float"/>
    4466                 <element name="st_max_fit" type="float"/>
    4467                 <element name="st_max_fit2" type="float"/>
    4468                 <element name="st_max_gnum" type="float"/>
    4469                 <element name="st_max_instances" type="float"/>
    4470                 <element name="st_max_lifespan" type="float"/>
    4471                 <element name="st_max_num" type="float"/>
    4472                 <element name="st_max_numconnections" type="float"/>
    4473                 <element name="st_max_numjoints" type="float"/>
    4474                 <element name="st_max_numneurons" type="float"/>
    4475                 <element name="st_max_numparts" type="float"/>
    4476                 <element name="st_max_pos_x" type="float"/>
    4477                 <element name="st_max_pos_y" type="float"/>
    4478                 <element name="st_max_pos_z" type="float"/>
    4479                 <element name="st_max_size_x" type="float"/>
    4480                 <element name="st_max_size_y" type="float"/>
    4481                 <element name="st_max_size_z" type="float"/>
    4482                 <element name="st_max_velocity" type="float"/>
    4483                 <element name="st_max_vertpos" type="float"/>
    4484                 <element name="st_max_vertvel" type="float"/>
    4485                 <element name="st_min_c_velocity" type="float"/>
    4486                 <element name="st_min_c_vertpos" type="float"/>
    4487                 <element name="st_min_c_vertvelocity" type="float"/>
    4488                 <element name="st_min_center_x" type="float"/>
    4489                 <element name="st_min_center_y" type="float"/>
    4490                 <element name="st_min_center_z" type="float"/>
    4491                 <element name="st_min_distance" type="float"/>
    4492                 <element name="st_min_fit" type="float"/>
    4493                 <element name="st_min_fit2" type="float"/>
    4494                 <element name="st_min_gnum" type="float"/>
    4495                 <element name="st_min_instances" type="float"/>
    4496                 <element name="st_min_lifespan" type="float"/>
    4497                 <element name="st_min_num" type="float"/>
    4498                 <element name="st_min_numconnections" type="float"/>
    4499                 <element name="st_min_numjoints" type="float"/>
    4500                 <element name="st_min_numneurons" type="float"/>
    4501                 <element name="st_min_numparts" type="float"/>
    4502                 <element name="st_min_pos_x" type="float"/>
    4503                 <element name="st_min_pos_y" type="float"/>
    4504                 <element name="st_min_pos_z" type="float"/>
    4505                 <element name="st_min_size_x" type="float"/>
    4506                 <element name="st_min_size_y" type="float"/>
    4507                 <element name="st_min_size_z" type="float"/>
    4508                 <element name="st_min_velocity" type="float"/>
    4509                 <element name="st_min_vertpos" type="float"/>
    4510                 <element name="st_min_vertvel" type="float"/>
    4511                 <element name="add" function="true"/>
    4512                 <element name="addGroup" function="true"/>
    4513                 <element name="clear" function="true"/>
    4514                 <element name="clrstats" function="true" type="void">
    4515                         <description><![CDATA[]]></description>
    4516 <arguments/></element>
    4517                 <element name="remove" function="true"/>
    4518                 <element name="removeGroup" function="true"/>
    45194585        </type>
    45204586        <type name="StopEvent" context="Global context">
     
    45254591        <type name="String" context="Global context">
    45264592<description><![CDATA[String functions library.]]></description>
    4527                 <element name="char" function="true" type="string">
    4528                         <arguments>
    4529                                 <argument type="integer"/>
    4530                         </arguments>
    4531                 </element>
    4532                 <element name="code" function="true" type="integer">
     4593                <element name="len" function="true" type="integer">
     4594                        <description><![CDATA[String.len("abcdef") -> 6]]></description>
    45334595                        <arguments>
    45344596                                <argument type="string"/>
    45354597                        </arguments>
    45364598                </element>
    4537                 <element name="deserialize" function="true" type="untyped">
    4538                         <description><![CDATA[extract objects from textual representation]]></description>
     4599                <element name="replace" function="true" type="string">
     4600                        <description><![CDATA[String.replace("abcdef","cd","X") -> "abXef"]]></description>
     4601                        <arguments>
     4602                                <argument name="input_string" type="string"/>
     4603                                <argument name="search" type="string"/>
     4604                                <argument name="substitute" type="string"/>
     4605                        </arguments>
     4606                </element>
     4607                <element name="split" function="true" type="Vector">
     4608                        <description><![CDATA[return the vector of substrings, cut at separator positions.
     4609subsequent separators give empty words: split("word1---word2-word3","-") -> ["word1","","","word2","word3"]]]></description>
    45394610                        <arguments>
    45404611                                <argument type="string"/>
    4541                         </arguments>
    4542                 </element>
    4543                 <element name="diff" function="true" type="Vector">
    4544                         <description><![CDATA[Returns the vector of minimal differences between two strings. The vector contains either 2-element subvectors with differing substrings ["text-1","text-2"] or strings "same".
    4545 
    4546 For example, String.diff("thisisatest", "testing123testing") returns [t,[hi,e],s,[,t],i,[sa,ng123],test,[,ing]].
    4547 
    4548 Use this function for short strings, as it requires 4*length(string1)*length(string2) bytes of memory.]]></description>
     4612                                <argument name="word separator" type="string"/>
     4613                        </arguments>
     4614                </element>
     4615                <element name="split2" function="true" type="Vector">
     4616                        <description><![CDATA[return the vector of substrings, cut at separator positions.
     4617subsequent separators are treated as one: split2("word1---word2-word3","-") -> ["word1","word2","word3"]]]></description>
    45494618                        <arguments>
    45504619                                <argument type="string"/>
     4620                                <argument name="word separator" type="string"/>
     4621                        </arguments>
     4622                </element>
     4623                <element name="indexOf" function="true" type="integer">
     4624                        <description><![CDATA[String.indexOf("abcdef","cd") -> 2
     4625String.indexOf("abcdef","dc") -> -1
     4626]]></description>
     4627                        <arguments>
    45514628                                <argument type="string"/>
     4629                                <argument name="substring" type="string"/>
     4630                        </arguments>
     4631                </element>
     4632                <element name="indexOfStart" function="true" type="integer">
     4633                        <description><![CDATA[String.indexOfStart("abcdef","cd",1) -> 2
     4634String.indexOfStart("abcdef","cd",3) -> -1
     4635]]></description>
     4636                        <arguments>
     4637                                <argument type="string"/>
     4638                                <argument name="substring" type="string"/>
     4639                                <argument name="start index" type="integer"/>
     4640                        </arguments>
     4641                </element>
     4642                <element name="substr" function="true" type="string">
     4643                        <description><![CDATA[String.substr("abcdef",3,2) -> ="de"]]></description>
     4644                        <arguments>
     4645                                <argument type="string"/>
     4646                                <argument name="first character" type="integer"/>
     4647                                <argument name="number of characters" type="integer"/>
     4648                        </arguments>
     4649                </element>
     4650                <element name="substr" function="true" type="string">
     4651                        <description><![CDATA[String.substr("abcdef",3) -> ="def"]]></description>
     4652                        <arguments>
     4653                                <argument type="string"/>
     4654                                <argument name="first character" type="integer"/>
     4655                        </arguments>
     4656                </element>
     4657                <element name="left" function="true" type="string">
     4658                        <description><![CDATA[String.left("abcdef",3) -> ="abc"]]></description>
     4659                        <arguments>
     4660                                <argument type="string"/>
     4661                                <argument name="number of characters" type="integer"/>
     4662                        </arguments>
     4663                </element>
     4664                <element name="right" function="true" type="string">
     4665                        <description><![CDATA[String.right("abcdef",3) -> ="def"]]></description>
     4666                        <arguments>
     4667                                <argument type="string"/>
     4668                                <argument name="number of characters" type="integer"/>
     4669                        </arguments>
     4670                </element>
     4671                <element name="startsWith" function="true" type="integer">
     4672                        <arguments>
     4673                                <argument name="string" type="string"/>
     4674                                <argument name="substring" type="string"/>
    45524675                        </arguments>
    45534676                </element>
     
    45924715                        </arguments>
    45934716                </element>
    4594                 <element name="hash" function="true" type="integer">
     4717                <element name="parseInt" function="true" type="integer">
    45954718                        <arguments>
    45964719                                <argument type="string"/>
    45974720                        </arguments>
    45984721                </element>
    4599                 <element name="indexOf" function="true" type="integer">
    4600                         <description><![CDATA[String.indexOf("abcdef","cd") -> 2
    4601 String.indexOf("abcdef","dc") -> -1
    4602 ]]></description>
     4722                <element name="parseFloat" function="true" type="float">
    46034723                        <arguments>
    46044724                                <argument type="string"/>
    4605                                 <argument name="substring" type="string"/>
    4606                         </arguments>
    4607                 </element>
    4608                 <element name="indexOfStart" function="true" type="integer">
    4609                         <description><![CDATA[String.indexOfStart("abcdef","cd",1) -> 2
    4610 String.indexOfStart("abcdef","cd",3) -> -1
    4611 ]]></description>
     4725                        </arguments>
     4726                </element>
     4727                <element name="code" function="true" type="integer">
    46124728                        <arguments>
    46134729                                <argument type="string"/>
    4614                                 <argument name="substring" type="string"/>
    4615                                 <argument name="start index" type="integer"/>
    4616                         </arguments>
    4617                 </element>
    4618                 <element name="left" function="true" type="string">
    4619                         <description><![CDATA[String.left("abcdef",3) -> ="abc"]]></description>
     4730                        </arguments>
     4731                </element>
     4732                <element name="char" function="true" type="string">
     4733                        <arguments>
     4734                                <argument type="integer"/>
     4735                        </arguments>
     4736                </element>
     4737                <element name="toUpper" function="true" type="string">
    46204738                        <arguments>
    46214739                                <argument type="string"/>
    4622                                 <argument name="number of characters" type="integer"/>
    4623                         </arguments>
    4624                 </element>
    4625                 <element name="len" function="true" type="integer">
    4626                         <description><![CDATA[String.len("abcdef") -> 6]]></description>
     4740                        </arguments>
     4741                </element>
     4742                <element name="toLower" function="true" type="string">
    46274743                        <arguments>
    46284744                                <argument type="string"/>
    4629                         </arguments>
    4630                 </element>
    4631                 <element name="parseFloat" function="true" type="float">
    4632                         <arguments>
    4633                                 <argument type="string"/>
    4634                         </arguments>
    4635                 </element>
    4636                 <element name="parseInt" function="true" type="integer">
    4637                         <arguments>
    4638                                 <argument type="string"/>
    4639                         </arguments>
    4640                 </element>
    4641                 <element name="replace" function="true" type="string">
    4642                         <description><![CDATA[String.replace("abcdef","cd","X") -> "abXef"]]></description>
    4643                         <arguments>
    4644                                 <argument name="input_string" type="string"/>
    4645                                 <argument name="search" type="string"/>
    4646                                 <argument name="substitute" type="string"/>
    4647                         </arguments>
    4648                 </element>
    4649                 <element name="right" function="true" type="string">
    4650                         <description><![CDATA[String.right("abcdef",3) -> ="def"]]></description>
    4651                         <arguments>
    4652                                 <argument type="string"/>
    4653                                 <argument name="number of characters" type="integer"/>
    46544745                        </arguments>
    46554746                </element>
     
    46604751                        </arguments>
    46614752                </element>
    4662                 <element name="split" function="true" type="Vector">
    4663                         <description><![CDATA[return the vector of substrings, cut at separator positions.
    4664 subsequent separators give empty words: split("word1---word2-word3","-") -> ["word1","","","word2","word3"]]]></description>
     4753                <element name="deserialize" function="true" type="untyped">
     4754                        <description><![CDATA[extract objects from textual representation]]></description>
    46654755                        <arguments>
    46664756                                <argument type="string"/>
    4667                                 <argument name="word separator" type="string"/>
    4668                         </arguments>
    4669                 </element>
    4670                 <element name="split2" function="true" type="Vector">
    4671                         <description><![CDATA[return the vector of substrings, cut at separator positions.
    4672 subsequent separators are treated as one: split2("word1---word2-word3","-") -> ["word1","word2","word3"]]]></description>
     4757                        </arguments>
     4758                </element>
     4759                <element name="hash" function="true" type="integer">
    46734760                        <arguments>
    46744761                                <argument type="string"/>
    4675                                 <argument name="word separator" type="string"/>
    4676                         </arguments>
    4677                 </element>
    4678                 <element name="startsWith" function="true" type="integer">
    4679                         <arguments>
    4680                                 <argument name="string" type="string"/>
    4681                                 <argument name="substring" type="string"/>
    4682                         </arguments>
    4683                 </element>
    4684                 <element name="substr" function="true" type="string">
    4685                         <description><![CDATA[String.substr("abcdef",3,2) -> ="de"]]></description>
     4762                        </arguments>
     4763                </element>
     4764                <element name="diff" function="true" type="Vector">
     4765                        <description><![CDATA[Returns the vector of minimal differences between two strings. The vector contains either 2-element subvectors with differing substrings ["text-1","text-2"] or strings "same".
     4766
     4767For example, String.diff("thisisatest", "testing123testing") returns [t,[hi,e],s,[,t],i,[sa,ng123],test,[,ing]].
     4768
     4769Use this function for short strings, as it requires 4*length(string1)*length(string2) bytes of memory.]]></description>
    46864770                        <arguments>
    46874771                                <argument type="string"/>
    4688                                 <argument name="first character" type="integer"/>
    4689                                 <argument name="number of characters" type="integer"/>
    4690                         </arguments>
    4691                 </element>
    4692                 <element name="substr" function="true" type="string">
    4693                         <description><![CDATA[String.substr("abcdef",3) -> ="def"]]></description>
    4694                         <arguments>
    46954772                                <argument type="string"/>
    4696                                 <argument name="first character" type="integer"/>
    4697                         </arguments>
    4698                 </element>
    4699                 <element name="toLower" function="true" type="string">
    4700                         <arguments>
    4701                                 <argument type="string"/>
    4702                         </arguments>
    4703                 </element>
    4704                 <element name="toUpper" function="true" type="string">
    4705                         <arguments>
    4706                                 <argument type="string"/>
    47074773                        </arguments>
    47084774                </element>
    47094775        </type>
    47104776        <type name="Symmetry" context="Global context">
    4711                 <element name="symAlphaSteps" type="integer" min="2" max="50" default="20">
    4712                         <description><![CDATA[Default number of samples per full angle (#1)]]></description>
    4713                 </element>
    4714                 <element name="symBetaSteps" type="integer" min="2" max="50" default="20">
    4715                         <description><![CDATA[Default number of samples per full angle (#2)]]></description>
    4716                 </element>
    4717                 <element name="symPosSteps" type="integer" min="2" max="50" default="10">
    4718                         <description><![CDATA[Default number of samples per stick length]]></description>
    4719                 </element>
    4720                 <element name="symResultA" type="float"/>
    4721                 <element name="symResultB" type="float"/>
    4722                 <element name="symResultC" type="float"/>
    4723                 <element name="symResultD" type="float"/>
     4777<description><![CDATA[Calculates bilateral symmetry. Details are described in http://www.framsticks.com/node/808]]></description>
    47244778                <element name="calculateSymmetry" function="true" type="float">
    47254779                        <description><![CDATA[Returns 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).
     
    47494803                        </arguments>
    47504804                </element>
     4805                <element name="symPosSteps" type="integer" min="2" max="50" default="10">
     4806                        <description><![CDATA[Default number of samples per stick length]]></description>
     4807                </element>
     4808                <element name="symAlphaSteps" type="integer" min="2" max="50" default="20">
     4809                        <description><![CDATA[Default number of samples per full angle (#1)]]></description>
     4810                </element>
     4811                <element name="symBetaSteps" type="integer" min="2" max="50" default="20">
     4812                        <description><![CDATA[Default number of samples per full angle (#2)]]></description>
     4813                </element>
     4814                <element name="symResultA" type="float"/>
     4815                <element name="symResultB" type="float"/>
     4816                <element name="symResultC" type="float"/>
     4817                <element name="symResultD" type="float"/>
    47514818        </type>
    47524819        <type name="UserScripts" context="Global context">
     4820                <element name="clear" function="true"/>
     4821                <element name="add" function="true"/>
     4822                <element name="remove" function="true"/>
     4823                <element name="addGroup" function="true"/>
     4824                <element name="removeGroup" function="true"/>
    47534825                <element name="changedProperty" type="integer"/>
    47544826                <element name="changedPropertyId" type="string"/>
    4755                 <element name="add" function="true"/>
    4756                 <element name="addGroup" function="true"/>
    4757                 <element name="clear" function="true"/>
    4758                 <element name="remove" function="true"/>
    4759                 <element name="removeGroup" function="true"/>
    47604827        </type>
    47614828        <type name="Vector" context="Global context">
     
    47644831var v=Vector.new();
    47654832v.add(123); v.add("string");]]></description>
     4833                <element name="clear" function="true" type="void"><arguments/></element>
     4834                <element name="size" type="integer"/>
     4835                <element name="remove" function="true" type="void">
     4836                        <arguments>
     4837                                <argument name="position" type="integer"/>
     4838                        </arguments>
     4839                </element>
     4840                <element name="get" function="true" type="untyped">
     4841                        <arguments>
     4842                                <argument name="position" type="integer"/>
     4843                        </arguments>
     4844                </element>
     4845                <element name="set" function="true" type="void">
     4846                        <arguments>
     4847                                <argument name="position" type="integer"/>
     4848                                <argument name="value" type="untyped"/>
     4849                        </arguments>
     4850                </element>
     4851                <element name="add" function="true" type="void">
     4852                        <arguments>
     4853                                <argument name="value" type="untyped"/>
     4854                        </arguments>
     4855                </element>
     4856                <element name="find" function="true" type="integer">
     4857                        <description><![CDATA[returns the element index or -1 if not found]]></description>
     4858                        <arguments>
     4859                                <argument name="value" type="untyped"/>
     4860                        </arguments>
     4861                </element>
    47664862                <element name="avg" type="float"/>
    4767                 <element name="iterator" type="Object"/>
    4768                 <element name="size" type="integer"/>
    47694863                <element name="stdev" type="float">
    47704864                        <description><![CDATA[=sqrt(sum((element[i]-avg)^2)/(size-1)) which is estimated population std.dev. from sample std.dev.]]></description>
    47714865                </element>
    47724866                <element name="toString" type="string"/>
    4773                 <element name="add" function="true" type="void">
    4774                         <arguments>
    4775                                 <argument name="value" type="untyped"/>
    4776                         </arguments>
    4777                 </element>
    4778                 <element name="clear" function="true" type="void"><arguments/></element>
    4779                 <element name="find" function="true" type="integer">
    4780                         <description><![CDATA[returns the element index or -1 if not found]]></description>
    4781                         <arguments>
    4782                                 <argument name="value" type="untyped"/>
    4783                         </arguments>
    4784                 </element>
    4785                 <element name="get" function="true" type="untyped">
    4786                         <arguments>
    4787                                 <argument name="position" type="integer"/>
    4788                         </arguments>
    4789                 </element>
    47904867                <element name="new" function="true" type="Vector"><arguments/></element>
    4791                 <element name="remove" function="true" type="void">
    4792                         <arguments>
    4793                                 <argument name="position" type="integer"/>
    4794                         </arguments>
    4795                 </element>
    4796                 <element name="set" function="true" type="void">
    4797                         <arguments>
    4798                                 <argument name="position" type="integer"/>
    4799                                 <argument name="value" type="untyped"/>
    4800                         </arguments>
    4801                 </element>
    48024868                <element name="sort" function="true" type="void">
    48034869                        <description><![CDATA[comparator can be null, giving the "natural" sorting order (depending on element type), otherwise it must be a function reference obtained by the "function FUNCTIONNAME" operator.
     
    48114877                        </arguments>
    48124878                </element>
     4879                <element name="iterator" type="Object"/>
    48134880        </type>
    48144881        <type name="World" context="Global context">
    48154882<description><![CDATA[Environment properties.]]></description>
    4816                 <element name="nnspeed" type="float" min="0" max="1000" default="1.0">
    4817                         <description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
    4818                 </element>
    4819                 <element name="signals" type="WorldSignals"/>
    4820                 <element name="simtype" type="integer" min="0" max="1" default="0">
    4821                         <description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
    4822 ODE is Open Dynamics Engine by Russel Smith et al.
    4823 
    4824 NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
    4825                 </element>
    4826                 <element name="wrldbnd" type="integer" min="0" max="2" default="1"/>
    4827                 <element name="wrldg" type="float" min="0" max="10" default="1.0">
    4828                         <description><![CDATA[You can adjust gravity for your experiments.
    4829 The "official" setting used to evaluate and compare creatures is 1.]]></description>
     4883                <element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
     4884                <element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
     4885                        <description><![CDATA[Side length of the world]]></description>
    48304886                </element>
    48314887                <element name="wrldmap" type="string">
     
    48394895See also the WorldMap object.]]></description>
    48404896                </element>
    4841                 <element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
    4842                         <description><![CDATA[Side length of the world]]></description>
    4843                 </element>
    4844                 <element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
    48454897                <element name="wrldwat" type="float" min="-20" max="200" default="-1.0"/>
     4898                <element name="wrldbnd" type="integer" min="0" max="2" default="1">
     4899                        <description><![CDATA[Teleporting 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).]]></description>
     4900                </element>
     4901                <element name="wrldg" type="float" min="0" max="10" default="1.0">
     4902                        <description><![CDATA[You can adjust gravity for your experiments.
     4903The "official" setting used to evaluate and compare creatures is 1.]]></description>
     4904                </element>
    48464905                <element name="wrldchg" function="true" type="void"><arguments/></element>
     4906                <element name="simtype" type="integer" min="0" max="1" default="0">
     4907                        <description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
     4908ODE is Open Dynamics Engine by Russel Smith et al.
     4909
     4910NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
     4911                </element>
     4912                <element name="nnspeed" type="float" min="0" max="1000" default="1.0">
     4913                        <description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
     4914                </element>
     4915                <element name="signals" type="WorldSignals"/>
    48474916        </type>
    48484917        <type name="WorldMap" context="Global context">
     
    48924961
    48934962See also: Signal, CreatureSignals, NeuroSignals.]]></description>
    4894                 <element name="size" type="integer"/>
    48954963                <element name="add" function="true" type="Signal">
    48964964                        <arguments>
     
    48994967                        </arguments>
    49004968                </element>
    4901                 <element name="clear" function="true" type="void"><arguments/></element>
    4902                 <element name="get" function="true" type="Signal">
    4903                         <arguments>
    4904                                 <argument name="index" type="integer"/>
    4905                         </arguments>
    4906                 </element>
    49074969                <element name="receive" function="true" type="float">
    49084970                        <description><![CDATA[Receive the aggregated signal power in a given channel.]]></description>
     
    49104972                                <argument name="position" type="XYZ"/>
    49114973                                <argument name="channel" type="string"/>
     4974                        </arguments>
     4975                </element>
     4976                <element name="receiveSet" function="true" type="Vector">
     4977                        <description><![CDATA[Get all signals in the specified range. Returns a read-only vector object containing Signal objects - individual signals can be accessed as result[0], .., result[result.size-1].]]></description>
     4978                        <arguments>
     4979                                <argument name="position" type="XYZ"/>
     4980                                <argument name="channel" type="string"/>
     4981                                <argument name="max distance" type="float"/>
    49124982                        </arguments>
    49134983                </element>
     
    49264996                        </arguments>
    49274997                </element>
    4928                 <element name="receiveSet" function="true" type="Vector">
    4929                         <description><![CDATA[Get all signals in the specified range. Returns a read-only vector object containing Signal objects - individual signals can be accessed as result[0], .., result[result.size-1].]]></description>
     4998                <element name="receiveSingle" function="true" type="Signal">
     4999                        <description><![CDATA[Find the signal source that has the highest signal power (taking into account distance).]]></description>
    49305000                        <arguments>
    49315001                                <argument name="position" type="XYZ"/>
     
    49345004                        </arguments>
    49355005                </element>
    4936                 <element name="receiveSingle" function="true" type="Signal">
    4937                         <description><![CDATA[Find the signal source that has the highest signal power (taking into account distance).]]></description>
    4938                         <arguments>
    4939                                 <argument name="position" type="XYZ"/>
    4940                                 <argument name="channel" type="string"/>
    4941                                 <argument name="max distance" type="float"/>
    4942                         </arguments>
    4943                 </element>
     5006                <element name="get" function="true" type="Signal">
     5007                        <arguments>
     5008                                <argument name="index" type="integer"/>
     5009                        </arguments>
     5010                </element>
     5011                <element name="size" type="integer"/>
     5012                <element name="clear" function="true" type="void"><arguments/></element>
    49445013        </type>
    49455014        <type name="XYZ" context="Global context">
    49465015<description><![CDATA[3D vector]]></description>
    4947                 <element name="length" type="float"/>
    4948                 <element name="toString" type="string"/>
    4949                 <element name="toVector" type="Vector"/>
    49505016                <element name="x" type="float"/>
    49515017                <element name="y" type="float"/>
    49525018                <element name="z" type="float"/>
    4953                 <element name="add" function="true" type="void">
    4954                         <description><![CDATA[Note: it does not return a new object, just modifies the existing one]]></description>
    4955                         <arguments>
    4956                                 <argument type="XYZ"/>
     5019                <element name="new" function="true" type="XYZ">
     5020                        <description><![CDATA[3D vectors objects can be also created using the (x,y,z) notation, i.e. var v=(1,2,3) is the same as var v=XYZ.new(1,2,3);]]></description>
     5021                        <arguments>
     5022                                <argument name="x" type="float"/>
     5023                                <argument name="y" type="float"/>
     5024                                <argument name="z" type="float"/>
     5025                        </arguments>
     5026                </element>
     5027                <element name="newFromVector" function="true" type="XYZ">
     5028                        <description><![CDATA[used for deserialization]]></description>
     5029                        <arguments>
     5030                                <argument type="Vector"/>
    49575031                        </arguments>
    49585032                </element>
     
    49655039//o2 is now (1,9999,3) but o3 is still (1,2,3)]]></description>
    49665040<arguments/></element>
    4967                 <element name="get" function="true" type="float">
    4968                         <description><![CDATA[this function makes the XYZ objects "indexable" (so you can use [] for accessing subsequent fields, like in Vector)]]></description>
    4969                         <arguments>
    4970                                 <argument name="index" type="integer"/>
    4971                         </arguments>
    4972                 </element>
    4973                 <element name="new" function="true" type="XYZ">
    4974                         <description><![CDATA[3D vectors objects can be also created using the (x,y,z) notation, i.e. var v=(1,2,3) is the same as var v=XYZ.new(1,2,3);]]></description>
     5041                <element name="set" function="true" type="void">
     5042                        <arguments>
     5043                                <argument type="XYZ"/>
     5044                        </arguments>
     5045                </element>
     5046                <element name="set3" function="true" type="void">
    49755047                        <arguments>
    49765048                                <argument name="x" type="float"/>
     
    49795051                        </arguments>
    49805052                </element>
    4981                 <element name="newFromVector" function="true" type="XYZ">
    4982                         <description><![CDATA[used for deserialization]]></description>
    4983                         <arguments>
    4984                                 <argument type="Vector"/>
    4985                         </arguments>
    4986                 </element>
     5053                <element name="add" function="true" type="void">
     5054                        <description><![CDATA[Note: it does not return a new object, just modifies the existing one]]></description>
     5055                        <arguments>
     5056                                <argument type="XYZ"/>
     5057                        </arguments>
     5058                </element>
     5059                <element name="sub" function="true" type="void">
     5060                        <description><![CDATA[Note: it does not return a new object, just modifies the existing one]]></description>
     5061                        <arguments>
     5062                                <argument type="XYZ"/>
     5063                        </arguments>
     5064                </element>
     5065                <element name="scale" function="true" type="void">
     5066                        <arguments>
     5067                                <argument type="float"/>
     5068                        </arguments>
     5069                </element>
     5070                <element name="length" type="float"/>
    49875071                <element name="normalize" function="true" type="void">
    49885072                        <description><![CDATA[scales the vector length to 1.0]]></description>
    49895073<arguments/></element>
     5074                <element name="toString" type="string"/>
     5075                <element name="toVector" type="Vector"/>
     5076                <element name="rotate" function="true" type="void">
     5077                        <arguments>
     5078                                <argument type="Orient"/>
     5079                        </arguments>
     5080                </element>
    49905081                <element name="revRotate" function="true" type="void">
    49915082                        <arguments>
     
    49935084                        </arguments>
    49945085                </element>
    4995                 <element name="rotate" function="true" type="void">
    4996                         <arguments>
    4997                                 <argument type="Orient"/>
    4998                         </arguments>
    4999                 </element>
    5000                 <element name="scale" function="true" type="void">
    5001                         <arguments>
    5002                                 <argument type="float"/>
    5003                         </arguments>
    5004                 </element>
    5005                 <element name="set" function="true" type="void">
    5006                         <arguments>
    5007                                 <argument type="XYZ"/>
    5008                         </arguments>
    5009                 </element>
    5010                 <element name="set3" function="true" type="void">
    5011                         <arguments>
    5012                                 <argument name="x" type="float"/>
    5013                                 <argument name="y" type="float"/>
    5014                                 <argument name="z" type="float"/>
    5015                         </arguments>
    5016                 </element>
    5017                 <element name="sub" function="true" type="void">
    5018                         <description><![CDATA[Note: it does not return a new object, just modifies the existing one]]></description>
    5019                         <arguments>
    5020                                 <argument type="XYZ"/>
     5086                <element name="get" function="true" type="float">
     5087                        <description><![CDATA[this function makes the XYZ objects "indexable" (so you can use [] for accessing subsequent fields, like in Vector)]]></description>
     5088                        <arguments>
     5089                                <argument name="index" type="integer"/>
    50215090                        </arguments>
    50225091                </element>
    50235092        </type>
    50245093        <type name="ExpParams" context="Experiment definition">
     5094                <element name="clear" function="true"/>
     5095                <element name="add" function="true"/>
     5096                <element name="remove" function="true"/>
     5097                <element name="addGroup" function="true"/>
     5098                <element name="removeGroup" function="true"/>
    50255099                <element name="changedProperty" type="integer"/>
    50265100                <element name="changedPropertyId" type="string"/>
     5101        </type>
     5102        <type name="ExpState" context="Experiment definition">
     5103                <element name="clear" function="true"/>
    50275104                <element name="add" function="true"/>
     5105                <element name="remove" function="true"/>
    50285106                <element name="addGroup" function="true"/>
    5029                 <element name="clear" function="true"/>
    5030                 <element name="remove" function="true"/>
    50315107                <element name="removeGroup" function="true"/>
    5032         </type>
    5033         <type name="ExpState" context="Experiment definition">
    50345108                <element name="changedProperty" type="integer"/>
    50355109                <element name="changedPropertyId" type="string"/>
    5036                 <element name="add" function="true"/>
    5037                 <element name="addGroup" function="true"/>
    5038                 <element name="clear" function="true"/>
    5039                 <element name="remove" function="true"/>
    5040                 <element name="removeGroup" function="true"/>
    50415110        </type>
    50425111        <type name="n" context="Neuron definitions">
     5112                <element name="p" type="integer" min="-1" max="999999" default="-1"/>
     5113                <element name="j" type="integer" min="-1" max="999999" default="-1"/>
     5114                <element name="d" type="string"/>
     5115                <element name="i" type="string"/>
     5116                <element name="Vstyle" type="string"/>
     5117                <element name="getInputCount" type="integer"/>
     5118                <element name="getInputNeuroDef" function="true" type="NeuroDef">
     5119                        <arguments>
     5120                                <argument type="integer"/>
     5121                        </arguments>
     5122                </element>
     5123                <element name="getInputNeuroIndex" function="true" type="integer">
     5124                        <arguments>
     5125                                <argument type="integer"/>
     5126                        </arguments>
     5127                </element>
     5128                <element name="getInputWeight" function="true" type="float">
     5129                        <arguments>
     5130                                <argument type="integer"/>
     5131                        </arguments>
     5132                </element>
    50435133                <element name="classObject" type="NeuroClass"/>
    5044                 <element name="d" type="string"/>
    5045                 <element name="getInputCount" type="integer"/>
    5046                 <element name="i" type="string"/>
    5047                 <element name="j" type="integer" min="-1" max="999999" default="-1"/>
    5048                 <element name="p" type="integer" min="-1" max="999999" default="-1"/>
    5049                 <element name="Vstyle" type="string"/>
    5050                 <element name="getInputNeuroDef" function="true" type="NeuroDef">
    5051                         <arguments>
    5052                                 <argument type="integer"/>
    5053                         </arguments>
    5054                 </element>
    5055                 <element name="getInputNeuroIndex" function="true" type="integer">
    5056                         <arguments>
    5057                                 <argument type="integer"/>
    5058                         </arguments>
    5059                 </element>
    5060                 <element name="getInputWeight" function="true" type="float">
    5061                         <arguments>
    5062                                 <argument type="integer"/>
    5063                         </arguments>
    5064                 </element>
    50655134        </type>
    50665135        <type name="Neuro" context="Neuron definitions">
    50675136<description><![CDATA[Live Neuron object.]]></description>
     5137                <element name="getInputState" function="true" type="float">
     5138                        <arguments>
     5139                                <argument name="input" type="integer"/>
     5140                        </arguments>
     5141                </element>
     5142                <element name="getInputWeight" function="true" type="float">
     5143                        <arguments>
     5144                                <argument name="input" type="integer"/>
     5145                        </arguments>
     5146                </element>
     5147                <element name="getWeightedInputState" function="true" type="float">
     5148                        <arguments>
     5149                                <argument name="input" type="integer"/>
     5150                        </arguments>
     5151                </element>
     5152                <element name="getInputSum" function="true" type="float">
     5153                        <arguments>
     5154                                <argument name="input" type="integer"/>
     5155                        </arguments>
     5156                </element>
     5157                <element name="getWeightedInputSum" function="true" type="float">
     5158                        <description><![CDATA[Uses any number of inputs starting with the specified input. getWeightedInputSum(0)=weightedInputSum]]></description>
     5159                        <arguments>
     5160                                <argument name="input" type="integer"/>
     5161                        </arguments>
     5162                </element>
     5163                <element name="getInputCount" type="integer"/>
     5164                <element name="inputSum" type="float"/>
     5165                <element name="weightedInputSum" type="float"/>
     5166                <element name="getInputChannelCount" function="true" type="integer">
     5167                        <arguments>
     5168                                <argument name="input" type="integer"/>
     5169                        </arguments>
     5170                </element>
     5171                <element name="getInputStateChannel" function="true" type="float">
     5172                        <arguments>
     5173                                <argument name="input" type="integer"/>
     5174                                <argument name="channel" type="integer"/>
     5175                        </arguments>
     5176                </element>
     5177                <element name="getWeightedInputStateChannel" function="true" type="float">
     5178                        <arguments>
     5179                                <argument name="input" type="integer"/>
     5180                                <argument name="channel" type="integer"/>
     5181                        </arguments>
     5182                </element>
     5183                <element name="state" type="float">
     5184                        <description><![CDATA[When read, returns the current neuron state.
     5185When written, sets the 'internal' neuron state that will become current in the next step.
     5186Typically you should use this field, and not currState.]]></description>
     5187                </element>
    50685188                <element name="channelCount" type="integer"/>
    5069                 <element name="classObject" type="NeuroClass"/>
    5070                 <element name="creature" type="Creature"/>
     5189                <element name="getStateChannel" function="true" type="float">
     5190                        <arguments>
     5191                                <argument name="channel" type="integer"/>
     5192                        </arguments>
     5193                </element>
     5194                <element name="setStateChannel" function="true" type="void">
     5195                        <arguments>
     5196                                <argument name="channel" type="integer"/>
     5197                                <argument name="value" type="float"/>
     5198                        </arguments>
     5199                </element>
     5200                <element name="hold" type="integer" min="0" max="1">
     5201                        <description><![CDATA["Holding" means keeping the neuron state as is, blocking the regular neuron operation. This is useful when your script needs to inject some control signals into the NN. Without "holding", live neurons would be constantly overwriting your changes, and the rest of the NN could see inconsistent states, depending on the connections. Setting hold=1 ensures the neuron state will be only set by you, and not by the neuron. The enforced signal value can be set using Neuro.currState before or after setting hold=1. Set hold=0 to resume normal operation.]]></description>
     5202                </element>
    50715203                <element name="currState" type="float">
    50725204                        <description><![CDATA[When read, it behaves just like the 'state' field.
     
    50745206This feature should only be used while controlling the neuron 'from outside' (like a neuro probe) and not in the neuron definition. See also: Neuro.hold]]></description>
    50755207                </element>
    5076                 <element name="def" type="NeuroDef"/>
     5208                <element name="setCurrStateChannel" function="true" type="void">
     5209                        <description><![CDATA[Analogous to "currState".]]></description>
     5210                        <arguments>
     5211                                <argument name="channel" type="integer"/>
     5212                                <argument name="value" type="float"/>
     5213                        </arguments>
     5214                </element>
     5215                <element name="position_x" type="float"/>
     5216                <element name="position_y" type="float"/>
     5217                <element name="position_z" type="float"/>
     5218                <element name="creature" type="Creature"/>
     5219                <element name="part" type="MechPart"/>
     5220                <element name="joint" type="MechJoint"/>
    50775221                <element name="fields" type="Fields">
    50785222                        <description><![CDATA[Neurons can have different fields depending on their class. Script neurons have their fields defined using the "prop:" syntax. If you develop a custom neuron script you should use the Fields object for accessing your own neuron fields. The Neuro.fields property is meant for accessing the neuron fields from the outside script.
     
    50905234 Simulator.print(iobj.getId(i)+" ("+iobj.getName(i)+")");]]></description>
    50915235                </element>
    5092                 <element name="getInputCount" type="integer"/>
    5093                 <element name="hold" type="integer" min="0" max="1">
    5094                         <description><![CDATA["Holding" means keeping the neuron state as is, blocking the regular neuron operation. This is useful when your script needs to inject some control signals into the NN. Without "holding", live neurons would be constantly overwriting your changes, and the rest of the NN could see inconsistent states, depending on the connections. Setting hold=1 ensures the neuron state will be only set by you, and not by the neuron. The enforced signal value can be set using Neuro.currState before or after setting hold=1. Set hold=0 to resume normal operation.]]></description>
    5095                 </element>
    5096                 <element name="inputSum" type="float"/>
    5097                 <element name="joint" type="MechJoint"/>
    5098                 <element name="part" type="MechPart"/>
    5099                 <element name="position_x" type="float"/>
    5100                 <element name="position_y" type="float"/>
    5101                 <element name="position_z" type="float"/>
     5236                <element name="def" type="NeuroDef"/>
     5237                <element name="classObject" type="NeuroClass"/>
    51025238                <element name="signals" type="NeuroSignals"/>
    5103                 <element name="state" type="float">
    5104                         <description><![CDATA[When read, returns the current neuron state.
    5105 When written, sets the 'internal' neuron state that will become current in the next step.
    5106 Typically you should use this field, and not currState.]]></description>
    5107                 </element>
    5108                 <element name="weightedInputSum" type="float"/>
    5109                 <element name="getInputChannelCount" function="true" type="integer">
    5110                         <arguments>
    5111                                 <argument name="input" type="integer"/>
    5112                         </arguments>
    5113                 </element>
    5114                 <element name="getInputState" function="true" type="float">
    5115                         <arguments>
    5116                                 <argument name="input" type="integer"/>
    5117                         </arguments>
    5118                 </element>
    5119                 <element name="getInputStateChannel" function="true" type="float">
    5120                         <arguments>
    5121                                 <argument name="input" type="integer"/>
    5122                                 <argument name="channel" type="integer"/>
    5123                         </arguments>
    5124                 </element>
    5125                 <element name="getInputSum" function="true" type="float">
    5126                         <arguments>
    5127                                 <argument name="input" type="integer"/>
    5128                         </arguments>
    5129                 </element>
    5130                 <element name="getInputWeight" function="true" type="float">
    5131                         <arguments>
    5132                                 <argument name="input" type="integer"/>
    5133                         </arguments>
    5134                 </element>
    5135                 <element name="getStateChannel" function="true" type="float">
    5136                         <arguments>
    5137                                 <argument name="channel" type="integer"/>
    5138                         </arguments>
    5139                 </element>
    5140                 <element name="getWeightedInputState" function="true" type="float">
    5141                         <arguments>
    5142                                 <argument name="input" type="integer"/>
    5143                         </arguments>
    5144                 </element>
    5145                 <element name="getWeightedInputStateChannel" function="true" type="float">
    5146                         <arguments>
    5147                                 <argument name="input" type="integer"/>
    5148                                 <argument name="channel" type="integer"/>
    5149                         </arguments>
    5150                 </element>
    5151                 <element name="getWeightedInputSum" function="true" type="float">
    5152                         <description><![CDATA[Uses any number of inputs starting with the specified input. getWeightedInputSum(0)=weightedInputSum]]></description>
    5153                         <arguments>
    5154                                 <argument name="input" type="integer"/>
    5155                         </arguments>
    5156                 </element>
    5157                 <element name="setCurrStateChannel" function="true" type="void">
    5158                         <description><![CDATA[Analogous to "currState".]]></description>
    5159                         <arguments>
    5160                                 <argument name="channel" type="integer"/>
    5161                                 <argument name="value" type="float"/>
    5162                         </arguments>
    5163                 </element>
    5164                 <element name="setStateChannel" function="true" type="void">
    5165                         <arguments>
    5166                                 <argument name="channel" type="integer"/>
    5167                                 <argument name="value" type="float"/>
    5168                         </arguments>
    5169                 </element>
    51705239        </type>
    51715240        <type name="this" context="Fitness formula">
    51725241<description><![CDATA[A Genotype with the associated performance information. Adding genotypes to GenePool makes them accessible in Framsticks GUI and enables the use of GenePool selection methods.
    51735242Before version 4.0rc4 the static Genotype object was used in functions operating on the "selected" genotype. This is now deprecated as all operations can be performed using the more convenient direct access (see GenePools).]]></description>
    5174                 <element name="convtrace1" type="string"/>
     5243                <element name="name" type="string"/>
     5244                <element name="genotype" type="string"/>
     5245                <element name="info" type="string">
     5246                        <description><![CDATA[Additional information or comments]]></description>
     5247                </element>
     5248                <element name="simi" type="float">
     5249                        <description><![CDATA[Read about details:
     5250http://www.framsticks.com/node/795
     5251http://www.framsticks.com/node/890]]></description>
     5252                </element>
     5253                <element name="energ0" type="float"/>
     5254                <element name="strsiz" type="float"/>
     5255                <element name="strjoints" type="float"/>
     5256                <element name="nnsiz" type="float"/>
     5257                <element name="nncon" type="float"/>
     5258                <element name="numparts" type="float"/>
     5259                <element name="numjoints" type="float"/>
     5260                <element name="numneurons" type="float"/>
     5261                <element name="numconnections" type="float"/>
     5262                <element name="num" type="integer"/>
     5263                <element name="gnum" type="integer"/>
     5264                <element name="popsiz" type="integer"/>
     5265                <element name="instances" type="integer">
     5266                        <description><![CDATA[Copies of this genotype]]></description>
     5267                </element>
     5268                <element name="lifespan" type="float">
     5269                        <description><![CDATA[Average life span]]></description>
     5270                </element>
     5271                <element name="velocity" type="float">
     5272                        <description><![CDATA[Average velocity]]></description>
     5273                </element>
    51755274                <element name="distance" type="float"/>
    5176                 <element name="energ0" type="float"/>
    5177                 <element name="f0genotype" type="string">
    5178                         <description><![CDATA[converted to f0 genotype]]></description>
    5179                 </element>
     5275                <element name="vertvel" type="float"/>
     5276                <element name="vertpos" type="float"/>
    51805277                <element name="fit" type="float"/>
    51815278                <element name="fit2" type="float">
    51825279                        <description><![CDATA[Fitness shifted by (avg-n*stddev)]]></description>
    51835280                </element>
     5281                <element name="f0genotype" type="string">
     5282                        <description><![CDATA[converted to f0 genotype]]></description>
     5283                </element>
     5284                <element name="convtrace1" type="string"/>
     5285                <element name="user1" type="untyped"/>
     5286                <element name="user2" type="untyped"/>
     5287                <element name="user3" type="untyped"/>
     5288                <element name="mutate" function="true" type="void"><arguments/></element>
     5289                <element name="isValid" type="integer" min="0" max="1"/>
     5290                <element name="getNormalized" function="true" type="float">
     5291                        <arguments>
     5292                                <argument name="property name or index" type="untyped"/>
     5293                        </arguments>
     5294                </element>
     5295                <element name="geno" type="Geno">
     5296                        <description><![CDATA[Geno object for this Genotype]]></description>
     5297                </element>
     5298                <element name="uid" type="string">
     5299                        <description><![CDATA[Unique identifier]]></description>
     5300                </element>
     5301                <element name="getModel" function="true" type="Model"><arguments/></element>
     5302                <element name="splitInstances" function="true" type="void"><arguments/></element>
     5303                <element name="newFromString" function="true" type="Genotype">
     5304                        <arguments>
     5305                                <argument name="genotype" type="string"/>
     5306                        </arguments>
     5307                </element>
     5308                <element name="newFromGeno" function="true" type="Genotype">
     5309                        <arguments>
     5310                                <argument name="geno" type="Geno"/>
     5311                        </arguments>
     5312                </element>
     5313                <element name="newFromCreature" function="true" type="Genotype">
     5314                        <arguments>
     5315                                <argument name="creature" type="Creature"/>
     5316                        </arguments>
     5317                </element>
     5318                <element name="addPerformanceFromCreature" function="true" type="void">
     5319                        <description><![CDATA[Updates the Genotype's performance values merging them with the supplied Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
     5320                        <arguments>
     5321                                <argument type="Creature"/>
     5322                        </arguments>
     5323                </element>
     5324                <element name="moveTo" function="true" type="void">
     5325                        <description><![CDATA[the genotype is removed from its current pool when pool=null]]></description>
     5326                        <arguments>
     5327                                <argument name="pool" type="GenePool"/>
     5328                        </arguments>
     5329                </element>
     5330                <element name="copyTo" function="true" type="Genotype">
     5331                        <description><![CDATA[returns the duplicate genotype, created in the target pool]]></description>
     5332                        <arguments>
     5333                                <argument name="pool" type="GenePool"/>
     5334                        </arguments>
     5335                </element>
     5336                <element name="delete" function="true" type="void"><arguments/></element>
     5337                <element name="deleteOne" function="true" type="void">
     5338                        <description><![CDATA[]]></description>
     5339<arguments/></element>
    51845340                <element name="genepool" type="untyped">
    51855341                        <description><![CDATA[GenePool object or null when not in pool]]></description>
    51865342                </element>
    5187                 <element name="geno" type="Geno">
    5188                         <description><![CDATA[Geno object for this Genotype]]></description>
    5189                 </element>
    5190                 <element name="genotype" type="string"/>
    5191                 <element name="gnum" type="integer"/>
    51925343                <element name="index" type="integer">
    51935344                        <description><![CDATA[-1 when not in pool.
    51945345Note that the index changes depending on the current genotype position in the pool. Use Genotype.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
    51955346                </element>
    5196                 <element name="info" type="string">
    5197                         <description><![CDATA[Additional information or comments]]></description>
    5198                 </element>
    5199                 <element name="instances" type="integer">
    5200                         <description><![CDATA[Copies of this genotype]]></description>
    5201                 </element>
    5202                 <element name="isValid" type="integer" min="0" max="1"/>
    5203                 <element name="lifespan" type="float">
    5204                         <description><![CDATA[Average life span]]></description>
    5205                 </element>
    5206                 <element name="name" type="string"/>
    5207                 <element name="nncon" type="float"/>
    5208                 <element name="nnsiz" type="float"/>
    5209                 <element name="num" type="integer"/>
    5210                 <element name="numconnections" type="float"/>
    5211                 <element name="numjoints" type="float"/>
    5212                 <element name="numneurons" type="float"/>
    5213                 <element name="numparts" type="float"/>
    5214                 <element name="popsiz" type="integer"/>
    5215                 <element name="simi" type="float"/>
    5216                 <element name="strjoints" type="float"/>
    5217                 <element name="strsiz" type="float"/>
    5218                 <element name="uid" type="string">
    5219                         <description><![CDATA[Unique identifier]]></description>
    5220                 </element>
    5221                 <element name="user1" type="untyped"/>
    5222                 <element name="user2" type="untyped"/>
    5223                 <element name="user3" type="untyped"/>
    5224                 <element name="velocity" type="float">
    5225                         <description><![CDATA[Average velocity]]></description>
    5226                 </element>
    5227                 <element name="vertpos" type="float"/>
    5228                 <element name="vertvel" type="float"/>
    5229                 <element name="addPerformanceFromCreature" function="true" type="void">
    5230                         <description><![CDATA[Updates the Genotype's performance values merging them with the supplied Creture's performance. It assumes the Genotype.instances has a reasonable value and performs the proper weighting. Use your own function instead if these conditions are not met in your experiment.]]></description>
    5231                         <arguments>
    5232                                 <argument type="Creature"/>
    5233                         </arguments>
    5234                 </element>
    5235                 <element name="copyTo" function="true" type="Genotype">
    5236                         <description><![CDATA[returns the duplicate genotype, created in the target pool]]></description>
    5237                         <arguments>
    5238                                 <argument name="pool" type="GenePool"/>
    5239                         </arguments>
    5240                 </element>
    5241                 <element name="delete" function="true" type="void"><arguments/></element>
    5242                 <element name="deleteOne" function="true" type="void">
    5243                         <description><![CDATA[]]></description>
    5244 <arguments/></element>
    5245                 <element name="getModel" function="true" type="Model"><arguments/></element>
    5246                 <element name="getNormalized" function="true" type="float">
    5247                         <arguments>
    5248                                 <argument name="property name or index" type="untyped"/>
    5249                         </arguments>
    5250                 </element>
    5251                 <element name="moveTo" function="true" type="void">
    5252                         <description><![CDATA[the genotype is removed from its current pool when pool=null]]></description>
    5253                         <arguments>
    5254                                 <argument name="pool" type="GenePool"/>
    5255                         </arguments>
    5256                 </element>
    5257                 <element name="mutate" function="true" type="void"><arguments/></element>
    5258                 <element name="newFromCreature" function="true" type="Genotype">
    5259                         <arguments>
    5260                                 <argument name="creature" type="Creature"/>
    5261                         </arguments>
    5262                 </element>
    5263                 <element name="newFromGeno" function="true" type="Genotype">
    5264                         <arguments>
    5265                                 <argument name="geno" type="Geno"/>
    5266                         </arguments>
    5267                 </element>
    5268                 <element name="newFromString" function="true" type="Genotype">
    5269                         <arguments>
    5270                                 <argument name="genotype" type="string"/>
    5271                         </arguments>
    5272                 </element>
    5273                 <element name="splitInstances" function="true" type="void"><arguments/></element>
    52745347        </type>
    52755348        <type name="Creature" context="Visual style definition">
     
    52785351function onDied(cr) {Simulator.print("Creature "+cr.name+" has died");}
    52795352See also: Population.]]></description>
     5353                <element name="name" type="string"/>
     5354                <element name="genotype" type="string"/>
     5355                <element name="info" type="string">
     5356                        <description><![CDATA[Additional info or comments]]></description>
     5357                </element>
     5358                <element name="group" type="untyped" deprecated="true">
     5359                        <description><![CDATA[Deprecated. Use population instead.]]></description>
     5360                </element>
     5361                <element name="population" type="untyped"/>
     5362                <element name="index" type="integer">
     5363                        <description><![CDATA[Note that the index changes depending on the current creature position in the population. Use Creature.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
     5364                </element>
     5365                <element name="gnum" type="integer"/>
     5366                <element name="buildproblems" type="integer"/>
     5367                <element name="energ0" type="float"/>
     5368                <element name="idleen" type="float"/>
     5369                <element name="energy" type="float"/>
     5370                <element name="energy_p" type="float"/>
     5371                <element name="energy_m" type="float"/>
     5372                <element name="energy_b" type="float"/>
     5373                <element name="perf" type="integer" min="0" max="2">
     5374                        <description><![CDATA[Initial value of this property is taken from Population.enableperf]]></description>
     5375                </element>
     5376                <element name="nnenabled" type="integer" min="0" max="1"/>
    52805377                <element name="bodysim" type="integer" min="0" max="1" default="1">
    52815378                        <description><![CDATA[(Physical) body simulation can be disabled for individual objects which makes them immovable. Disabled objects can still participate in collisions depending on their collisions masks.
     
    52835380Bugs: the standard collision handler does not work for disabled objects when ODE simulation is used. It means that these objects won't physically interact with other objects. The custom (scripting) handlers work as expected.]]></description>
    52845381                </element>
    5285                 <element name="buildproblems" type="integer"/>
     5382                <element name="selfcol" type="integer" min="0" max="1">
     5383                        <description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
     5384                </element>
     5385                <element name="selfcolstate" function="true" type="integer">
     5386                        <description><![CDATA[Current self-collision state. In old versions this was a field, not a function.]]></description>
     5387<arguments/></element>
     5388                <element name="lifespan" type="integer"/>
     5389                <element name="distance" type="float"/>
    52865390                <element name="c_velocity" type="float"/>
     5391                <element name="c_vertvelocity" type="float"/>
    52875392                <element name="c_vertpos" type="float"/>
    5288                 <element name="c_vertvelocity" type="float"/>
     5393                <element name="velocity" type="float"/>
     5394                <element name="vertpos" type="float"/>
     5395                <element name="vertvel" type="float"/>
     5396                <element name="pos_x" type="float">
     5397                        <description><![CDATA[(pos_x,pos_y,pos_z) is the point of minimal coordinates ("bottom left corner") of the creature, including imaginary Part sizes (Part.s, usually 1.0). See also: Creature.moveAbs]]></description>
     5398                </element>
     5399                <element name="pos_y" type="float">
     5400                        <description><![CDATA[See Creature.pos_x]]></description>
     5401                </element>
     5402                <element name="pos_z" type="float">
     5403                        <description><![CDATA[See Creature.pos_x]]></description>
     5404                </element>
     5405                <element name="size_x" type="float">
     5406                        <description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including the imaginary part sizes (Part.s, usually 1.0). A creature consisting of a single default Part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
     5407See also: Creature.moveAbs]]></description>
     5408                </element>
     5409                <element name="size_y" type="float">
     5410                        <description><![CDATA[See Creature.size_x]]></description>
     5411                </element>
     5412                <element name="size_z" type="float">
     5413                        <description><![CDATA[See Creature.size_x]]></description>
     5414                </element>
    52895415                <element name="center_x" type="float">
    52905416                        <description><![CDATA[Center of gravity]]></description>
     
    52965422                        <description><![CDATA[Center of gravity]]></description>
    52975423                </element>
    5298                 <element name="distance" type="float"/>
     5424                <element name="numparts" type="integer"/>
     5425                <element name="numjoints" type="integer"/>
     5426                <element name="numneurons" type="integer"/>
     5427                <element name="user1" type="untyped"/>
     5428                <element name="user2" type="untyped"/>
     5429                <element name="user3" type="untyped"/>
     5430                <element name="move" function="true" type="void">
     5431                        <description><![CDATA[Shift the creature by a given vector.]]></description>
     5432                        <arguments>
     5433                                <argument name="x" type="float"/>
     5434                                <argument name="y" type="float"/>
     5435                                <argument name="z" type="float"/>
     5436                        </arguments>
     5437                </element>
     5438                <element name="moveAbs" function="true" type="void">
     5439                        <description><![CDATA[Moves the creature so that its origin (pos_x,pos_y,pos_z) is placed at the given location. The origin is the point of minimal coordinates ("bottom left corner"), including imaginary part sizes (Part.s, usually 1.0).
     5440Assuming a simple single-stick creature "X" having parts at (0,0,0) and (1,0,0),
     5441
     5442origin (pos_x,pos_y,pos_z) = (-1,-1,-1)
     5443size (size_x,size_y,size_z) = (3,2,2)
     5444
     5445The following example places the bottom of a creature at a given location (x,y,z):
     5446Creature.moveAbs(x-(Creature.size_x/2),y-(Creature.size_y/2),z-1.0)
     5447(assuming that the part size is 1.0)]]></description>
     5448                        <arguments>
     5449                                <argument name="x" type="float"/>
     5450                                <argument name="y" type="float"/>
     5451                                <argument name="z" type="float"/>
     5452                        </arguments>
     5453                </element>
     5454                <element name="moveLocal" function="true" type="void">
     5455                        <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
     5456                        <arguments>
     5457                                <argument name="x" type="float"/>
     5458                                <argument name="y" type="float"/>
     5459                                <argument name="z" type="float"/>
     5460                        </arguments>
     5461                </element>
     5462                <element name="localToWorld" function="true" type="XYZ">
     5463                        <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
     5464                        <arguments>
     5465                                <argument name="x" type="float"/>
     5466                                <argument name="y" type="float"/>
     5467                                <argument name="z" type="float"/>
     5468                        </arguments>
     5469                </element>
     5470                <element name="worldToLocal" function="true" type="XYZ">
     5471                        <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
     5472                        <arguments>
     5473                                <argument name="x" type="float"/>
     5474                                <argument name="y" type="float"/>
     5475                                <argument name="z" type="float"/>
     5476                        </arguments>
     5477                </element>
     5478                <element name="orient" type="Orient">
     5479                        <description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
     5480                </element>
     5481                <element name="rotate" function="true" type="void">
     5482                        <description><![CDATA[Rotate the creature around X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
     5483                        <arguments>
     5484                                <argument name="x" type="float"/>
     5485                                <argument name="y" type="float"/>
     5486                                <argument name="z" type="float"/>
     5487                        </arguments>
     5488                </element>
     5489                <element name="rotateLocal" function="true" type="void">
     5490                        <description><![CDATA[Rotate the creature around (local) X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
     5491                        <arguments>
     5492                                <argument name="x" type="float"/>
     5493                                <argument name="y" type="float"/>
     5494                                <argument name="z" type="float"/>
     5495                        </arguments>
     5496                </element>
    52995497                <element name="drive" type="XYZ">
    53005498                        <description><![CDATA[Measured in global coordinates]]></description>
    5301                 </element>
    5302                 <element name="energ0" type="float"/>
    5303                 <element name="energy" type="float"/>
    5304                 <element name="energy_b" type="float"/>
    5305                 <element name="energy_m" type="float"/>
    5306                 <element name="energy_p" type="float"/>
    5307                 <element name="geno" type="Geno">
    5308                         <description><![CDATA[Source genotype for this creature]]></description>
    5309                 </element>
    5310                 <element name="genotype" type="string"/>
    5311                 <element name="gnum" type="integer"/>
    5312                 <element name="group" type="untyped" deprecated="true">
    5313                         <description><![CDATA[Deprecated. Use population instead.]]></description>
    5314                 </element>
    5315                 <element name="idleen" type="float"/>
    5316                 <element name="index" type="integer">
    5317                         <description><![CDATA[Note that the index changes depending on the current creature position in the population. Use Creature.uid if you need a permanent identifier that persists through the entire object lifetime.]]></description>
    5318                 </element>
    5319                 <element name="info" type="string">
    5320                         <description><![CDATA[Additional info or comments]]></description>
    5321                 </element>
    5322                 <element name="lifespan" type="integer"/>
    5323                 <element name="liveModel" type="Model">
    5324                         <description><![CDATA[A Model object that is a copy of the current (temporary) geometry of this creature]]></description>
    53255499                </element>
    53265500                <element name="localDrive" type="XYZ">
     
    53285502See also: Creature.orient]]></description>
    53295503                </element>
     5504                <element name="getPart" function="true" type="Part">
     5505                        <arguments>
     5506                                <argument name="index" type="integer"/>
     5507                        </arguments>
     5508                </element>
     5509                <element name="getJoint" function="true" type="Joint">
     5510                        <arguments>
     5511                                <argument name="index" type="integer"/>
     5512                        </arguments>
     5513                </element>
     5514                <element name="getNeuroDef" function="true" type="NeuroDef">
     5515                        <arguments>
     5516                                <argument name="index" type="integer"/>
     5517                        </arguments>
     5518                </element>
     5519                <element name="getMechPart" function="true" type="MechPart">
     5520                        <arguments>
     5521                                <argument name="index" type="integer"/>
     5522                        </arguments>
     5523                </element>
     5524                <element name="getMechJoint" function="true" type="MechJoint">
     5525                        <arguments>
     5526                                <argument name="index" type="integer"/>
     5527                        </arguments>
     5528                </element>
     5529                <element name="getNeuro" function="true" type="Neuro">
     5530                        <arguments>
     5531                                <argument name="index" type="integer"/>
     5532                        </arguments>
     5533                </element>
     5534                <element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
     5535                <element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
     5536                <element name="currentGeometryAsF0" function="true" type="string"><arguments/></element>
     5537                <element name="geno" type="Geno">
     5538                        <description><![CDATA[Source genotype for this creature]]></description>
     5539                </element>
    53305540                <element name="model" type="Model">
    53315541                        <description><![CDATA[Source Model for this creature]]></description>
    53325542                </element>
    5333                 <element name="name" type="string"/>
    5334                 <element name="nnenabled" type="integer" min="0" max="1"/>
    5335                 <element name="numjoints" type="integer"/>
    5336                 <element name="numneurons" type="integer"/>
    5337                 <element name="numparts" type="integer"/>
    5338                 <element name="orient" type="Orient">
    5339                         <description><![CDATA[By convention, the orientation of the creature is equal to the orientation of its first Part]]></description>
    5340                 </element>
    5341                 <element name="othermask" type="integer" min="0" max="2147483647" default="0"/>
    5342                 <element name="perf" type="integer" min="0" max="2">
    5343                         <description><![CDATA[Initial value of this property is taken from Population.enableperf]]></description>
    5344                 </element>
    5345                 <element name="population" type="untyped"/>
    5346                 <element name="pos_x" type="float">
    5347                         <description><![CDATA[(pos_x,pos_y,pos_z) is the point of minimal coordinates ("bottom left corner") of the creature, including imaginary Part sizes (Part.s, usually 1.0). See also: Creature.moveAbs]]></description>
    5348                 </element>
    5349                 <element name="pos_y" type="float">
    5350                         <description><![CDATA[See Creature.pos_x]]></description>
    5351                 </element>
    5352                 <element name="pos_z" type="float">
    5353                         <description><![CDATA[See Creature.pos_x]]></description>
    5354                 </element>
    5355                 <element name="selfcol" type="integer" min="0" max="1">
    5356                         <description><![CDATA[Enable/disable detection of self-collisions (within a creature body). They can only occur when using the ODE simulation engine. If enabled, the creature will have its sticks collide during lifespan.]]></description>
    5357                 </element>
    5358                 <element name="selfmask" type="integer" min="0" max="2147483647" default="0"/>
     5543                <element name="liveModel" type="Model">
     5544                        <description><![CDATA[A Model object that is a copy of the current (temporary) geometry of this creature]]></description>
     5545                </element>
     5546                <element name="uid" type="string"/>
    53595547                <element name="signals" type="CreatureSignals"/>
    5360                 <element name="size_x" type="float">
    5361                         <description><![CDATA[(size_x,size_y,size_z) are dimensions of the axis-aligned bounding box of the creature, including the imaginary part sizes (Part.s, usually 1.0). A creature consisting of a single default Part has the size of (2.0,2.0,2.0) - twice the Part.s value (like a sphere diameter is twice its radius).
    5362 See also: Creature.moveAbs]]></description>
    5363                 </element>
    5364                 <element name="size_y" type="float">
    5365                         <description><![CDATA[See Creature.size_x]]></description>
    5366                 </element>
    5367                 <element name="size_z" type="float">
    5368                         <description><![CDATA[See Creature.size_x]]></description>
    5369                 </element>
    5370                 <element name="uid" type="string"/>
    5371                 <element name="user1" type="untyped"/>
    5372                 <element name="user2" type="untyped"/>
    5373                 <element name="user3" type="untyped"/>
    5374                 <element name="velocity" type="float"/>
    5375                 <element name="vertpos" type="float"/>
    5376                 <element name="vertvel" type="float"/>
    53775548                <element name="boundingBoxCollisions" function="true" type="integer">
    53785549                        <description><![CDATA[Checks approximate collisions for the selected creature.
     
    53835554                        </arguments>
    53845555                </element>
    5385                 <element name="currentGeometryAsF0" function="true" type="string"><arguments/></element>
    5386                 <element name="getJoint" function="true" type="Joint">
    5387                         <arguments>
    5388                                 <argument name="index" type="integer"/>
    5389                         </arguments>
    5390                 </element>
    5391                 <element name="getMechJoint" function="true" type="MechJoint">
    5392                         <arguments>
    5393                                 <argument name="index" type="integer"/>
    5394                         </arguments>
    5395                 </element>
    5396                 <element name="getMechPart" function="true" type="MechPart">
    5397                         <arguments>
    5398                                 <argument name="index" type="integer"/>
    5399                         </arguments>
    5400                 </element>
    5401                 <element name="getNeuro" function="true" type="Neuro">
    5402                         <arguments>
    5403                                 <argument name="index" type="integer"/>
    5404                         </arguments>
    5405                 </element>
    5406                 <element name="getNeuroDef" function="true" type="NeuroDef">
    5407                         <arguments>
    5408                                 <argument name="index" type="integer"/>
    5409                         </arguments>
    5410                 </element>
    5411                 <element name="getPart" function="true" type="Part">
    5412                         <arguments>
    5413                                 <argument name="index" type="integer"/>
    5414                         </arguments>
    5415                 </element>
    5416                 <element name="localToWorld" function="true" type="XYZ">
    5417                         <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
    5418                         <arguments>
    5419                                 <argument name="x" type="float"/>
    5420                                 <argument name="y" type="float"/>
    5421                                 <argument name="z" type="float"/>
    5422                         </arguments>
    5423                 </element>
    5424                 <element name="move" function="true" type="void">
    5425                         <description><![CDATA[Shift the creature by a given vector.]]></description>
    5426                         <arguments>
    5427                                 <argument name="x" type="float"/>
    5428                                 <argument name="y" type="float"/>
    5429                                 <argument name="z" type="float"/>
    5430                         </arguments>
    5431                 </element>
    5432                 <element name="moveAbs" function="true" type="void">
    5433                         <description><![CDATA[Moves the creature so that its origin (pos_x,pos_y,pos_z) is placed at the given location. The origin is the point of minimal coordinates ("bottom left corner"), including imaginary part sizes (Part.s, usually 1.0).
    5434 Assuming a simple single-stick creature "X" having parts at (0,0,0) and (1,0,0),
    5435 
    5436 origin (pos_x,pos_y,pos_z) = (-1,-1,-1)
    5437 size (size_x,size_y,size_z) = (3,2,2)
    5438 
    5439 The following example places the bottom of a creature at a given location (x,y,z):
    5440 Creature.moveAbs(x-(Creature.size_x/2),y-(Creature.size_y/2),z-1.0)
    5441 (assuming that the part size is 1.0)]]></description>
    5442                         <arguments>
    5443                                 <argument name="x" type="float"/>
    5444                                 <argument name="y" type="float"/>
    5445                                 <argument name="z" type="float"/>
    5446                         </arguments>
    5447                 </element>
    5448                 <element name="moveLocal" function="true" type="void">
    5449                         <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
    5450                         <arguments>
    5451                                 <argument name="x" type="float"/>
    5452                                 <argument name="y" type="float"/>
    5453                                 <argument name="z" type="float"/>
    5454                         </arguments>
    5455                 </element>
    5456                 <element name="rotate" function="true" type="void">
    5457                         <description><![CDATA[Rotate the creature around X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
    5458                         <arguments>
    5459                                 <argument name="x" type="float"/>
    5460                                 <argument name="y" type="float"/>
    5461                                 <argument name="z" type="float"/>
    5462                         </arguments>
    5463                 </element>
    5464                 <element name="rotateLocal" function="true" type="void">
    5465                         <description><![CDATA[Rotate the creature around (local) X, Y and Z axes. Should only be used immediately after creating a new creature (before the first simulation step is performed for this creature), otherwise further simulation can be disturbed.]]></description>
    5466                         <arguments>
    5467                                 <argument name="x" type="float"/>
    5468                                 <argument name="y" type="float"/>
    5469                                 <argument name="z" type="float"/>
    5470                         </arguments>
    5471                 </element>
    5472                 <element name="selfcolstate" function="true" type="integer">
    5473                         <description><![CDATA[Current self-collision state. In old versions this was a field, not a function.]]></description>
    5474 <arguments/></element>
    5475                 <element name="worldToLocal" function="true" type="XYZ">
    5476                         <description><![CDATA[Local coordinates are measured with respect to the position and orientation of the first Part]]></description>
    5477                         <arguments>
    5478                                 <argument name="x" type="float"/>
    5479                                 <argument name="y" type="float"/>
    5480                                 <argument name="z" type="float"/>
    5481                         </arguments>
    5482                 </element>
    54835556        </type>
    54845557        <type name="Element" context="Visual style definition">
     
    54895562                <element name="node" type="SSGNode"/>
    54905563                <element name="shadow" type="float"/>
    5491                 <element name="useCreature" function="true"/>
     5564                <element name="useMechPart" function="true"/>
     5565                <element name="useMechJoint" function="true"/>
     5566                <element name="useMechJointPart1" function="true"/>
     5567                <element name="useMechJointPart2" function="true"/>
     5568                <element name="usePart" function="true"/>
    54925569                <element name="useJoint" function="true"/>
    54935570                <element name="useJointPart1" function="true"/>
    54945571                <element name="useJointPart2" function="true"/>
    5495                 <element name="useMechJoint" function="true"/>
    5496                 <element name="useMechJointPart1" function="true"/>
    5497                 <element name="useMechJointPart2" function="true"/>
    5498                 <element name="useMechPart" function="true"/>
     5572                <element name="useNeuro" function="true"/>
     5573                <element name="useNeuroPart" function="true"/>
     5574                <element name="useNeuroJoint" function="true"/>
    54995575                <element name="useModel" function="true"/>
    5500                 <element name="useNeuro" function="true"/>
    5501                 <element name="useNeuroJoint" function="true"/>
    5502                 <element name="useNeuroPart" function="true"/>
    5503                 <element name="usePart" function="true"/>
     5576                <element name="useCreature" function="true"/>
    55045577        </type>
    55055578        <type name="GeomBuilder" context="Visual style definition">
     
    55075580                <element name="code" type="string"/>
    55085581                <element name="currentNode" type="SSGNode"/>
     5582                <element name="rootNode" type="SSGNode"/>
     5583                <element name="updatingNode" type="SSGNode"/>
    55095584                <element name="defaultStyle" type="string"/>
    55105585                <element name="matrix00" type="float"/>
     
    55245599                <element name="matrix32" type="float"/>
    55255600                <element name="matrix33" type="float"/>
    5526                 <element name="rootNode" type="SSGNode"/>
    5527                 <element name="updatingNode" type="SSGNode"/>
     5601                <element name="addTransform" function="true">
     5602                        <description><![CDATA[create the transform node as a child of the current node and make it the new current node.]]></description>
     5603                </element>
     5604                <element name="addBranch" function="true">
     5605                        <description><![CDATA[create the branch node as a child of the current node and make it the new current node]]></description>
     5606                </element>
    55285607                <element name="add" function="true" type="void">
    55295608                        <description><![CDATA[add a child node to the current node]]></description>
     
    55325611                        </arguments>
    55335612                </element>
    5534                 <element name="addBranch" function="true">
    5535                         <description><![CDATA[create the branch node as a child of the current node and make it the new current node]]></description>
    5536                 </element>
    5537                 <element name="addTransform" function="true">
    5538                         <description><![CDATA[create the transform node as a child of the current node and make it the new current node.]]></description>
    5539                 </element>
    5540                 <element name="dump" function="true" type="void">
    5541                         <arguments>
    5542                                 <argument name="node" type="SSGNode"/>
    5543                                 <argument name="level" type="integer"/>
    5544                         </arguments>
    5545                 </element>
    5546                 <element name="getBranch" function="true" type="integer">
    5547                         <arguments>
    5548                                 <argument name="branch node" type="SSGNode"/>
    5549                                 <argument name="branch index" type="integer"/>
    5550                         </arguments>
    5551                 </element>
     5613                <element name="matrixReset" function="true"/>
    55525614                <element name="matrixMove" function="true" type="void">
    55535615                        <arguments>
     
    55575619                        </arguments>
    55585620                </element>
    5559                 <element name="matrixMove1" function="true" type="void">
    5560                         <description><![CDATA[MechPart.pos can be used here]]></description>
    5561                         <arguments>
    5562                                 <argument name="xyz" type="integer"/>
    5563                         </arguments>
    5564                 </element>
    5565                 <element name="matrixOrient" function="true" type="void">
     5621                <element name="matrixScale" function="true" type="void">
    55665622                        <arguments>
    55675623                                <argument name="x" type="float"/>
     
    55705626                        </arguments>
    55715627                </element>
    5572                 <element name="matrixOrient1" function="true" type="void">
    5573                         <description><![CDATA[MechPart.orient can be used here]]></description>
    5574                         <arguments>
    5575                                 <argument name="xyz" type="integer"/>
    5576                         </arguments>
    5577                 </element>
    5578                 <element name="matrixReset" function="true"/>
    5579                 <element name="matrixRotate" function="true" type="void">
     5628                <element name="matrixOrient" function="true" type="void">
    55805629                        <arguments>
    55815630                                <argument name="x" type="float"/>
     
    55845633                        </arguments>
    55855634                </element>
    5586                 <element name="matrixRotate1" function="true" type="void">
    5587                         <arguments>
    5588                                 <argument name="xyz" type="integer"/>
    5589                         </arguments>
    5590                 </element>
    5591                 <element name="matrixScale" function="true" type="void">
     5635                <element name="matrixRotate" function="true" type="void">
    55925636                        <arguments>
    55935637                                <argument name="x" type="float"/>
     
    55965640                        </arguments>
    55975641                </element>
     5642                <element name="matrixRotate1" function="true" type="void">
     5643                        <arguments>
     5644                                <argument name="xyz" type="integer"/>
     5645                        </arguments>
     5646                </element>
     5647                <element name="matrixMove1" function="true" type="void">
     5648                        <description><![CDATA[MechPart.pos can be used here]]></description>
     5649                        <arguments>
     5650                                <argument name="xyz" type="integer"/>
     5651                        </arguments>
     5652                </element>
     5653                <element name="matrixOrient1" function="true" type="void">
     5654                        <description><![CDATA[MechPart.orient can be used here]]></description>
     5655                        <arguments>
     5656                                <argument name="xyz" type="integer"/>
     5657                        </arguments>
     5658                </element>
    55985659                <element name="setMatrix" function="true" type="void">
    55995660                        <description><![CDATA[copy current matrix into specified node]]></description>
     
    56025663                        </arguments>
    56035664                </element>
     5665                <element name="getBranch" function="true" type="integer">
     5666                        <arguments>
     5667                                <argument name="branch node" type="SSGNode"/>
     5668                                <argument name="branch index" type="integer"/>
     5669                        </arguments>
     5670                </element>
     5671                <element name="dump" function="true" type="void">
     5672                        <arguments>
     5673                                <argument name="node" type="SSGNode"/>
     5674                                <argument name="level" type="integer"/>
     5675                        </arguments>
     5676                </element>
    56045677        </type>
    56055678        <type name="GL" context="Visual style definition">
    56065679<description><![CDATA[OpenGL constants used in GeomBuilder and Material functions.]]></description>
    5607                 <element name="ALPHA_TEST" type="integer"/>
    5608                 <element name="AMBIENT" type="integer"/>
    5609                 <element name="AMBIENT_AND_DIFFUSE" type="integer"/>
    5610                 <element name="BLEND" type="integer"/>
    5611                 <element name="COLOR_MATERIAL" type="integer"/>
    5612                 <element name="CULL_FACE" type="integer"/>
    5613                 <element name="DIFFUSE" type="integer"/>
    5614                 <element name="EMISSION" type="integer"/>
    5615                 <element name="LIGHTING" type="integer"/>
     5680                <element name="POINTS" type="integer"/>
     5681                <element name="LINES" type="integer"/>
    56165682                <element name="LINE_LOOP" type="integer"/>
    56175683                <element name="LINE_STRIP" type="integer"/>
    5618                 <element name="LINES" type="integer"/>
    5619                 <element name="POINTS" type="integer"/>
     5684                <element name="TRIANGLES" type="integer"/>
     5685                <element name="TRIANGLE_STRIP" type="integer"/>
     5686                <element name="TRIANGLE_FAN" type="integer"/>
     5687                <element name="QUADS" type="integer"/>
    56205688                <element name="QUAD_STRIP" type="integer"/>
    5621                 <element name="QUADS" type="integer"/>
     5689                <element name="TEXTURE_2D" type="integer"/>
     5690                <element name="CULL_FACE" type="integer"/>
     5691                <element name="COLOR_MATERIAL" type="integer"/>
     5692                <element name="BLEND" type="integer"/>
     5693                <element name="ALPHA_TEST" type="integer"/>
     5694                <element name="LIGHTING" type="integer"/>
     5695                <element name="AMBIENT" type="integer"/>
     5696                <element name="DIFFUSE" type="integer"/>
     5697                <element name="AMBIENT_AND_DIFFUSE" type="integer"/>
    56225698                <element name="SPECULAR" type="integer"/>
    5623                 <element name="TEXTURE_2D" type="integer"/>
    5624                 <element name="TRIANGLE_FAN" type="integer"/>
    5625                 <element name="TRIANGLE_STRIP" type="integer"/>
    5626                 <element name="TRIANGLES" type="integer"/>
     5699                <element name="EMISSION" type="integer"/>
    56275700        </type>
    56285701        <type name="j" context="Visual style definition">
     5702                <element name="p1" type="integer" min="-1" max="999999" default="-1"/>
     5703                <element name="p2" type="integer" min="-1" max="999999" default="-1"/>
     5704                <element name="rx" type="float"/>
     5705                <element name="ry" type="float"/>
     5706                <element name="rz" type="float"/>
    56295707                <element name="dx" type="float" min="-2" max="2" default="0.0"/>
    56305708                <element name="dy" type="float" min="-2" max="2" default="0.0"/>
    56315709                <element name="dz" type="float" min="-2" max="2" default="0.0"/>
     5710                <element name="sh" type="integer" min="0" max="1" default="0"/>
     5711                <element name="stif" type="float" min="0" max="1" default="1.0"/>
     5712                <element name="rotstif" type="float" min="0" max="1" default="1.0"/>
     5713                <element name="stam" type="float" min="0" max="1" default="0.25"/>
    56325714                <element name="i" type="string"/>
    5633                 <element name="p1" type="integer" min="-1" max="999999" default="-1"/>
    5634                 <element name="p2" type="integer" min="-1" max="999999" default="-1"/>
    5635                 <element name="rotstif" type="float" min="0" max="1" default="1.0"/>
    5636                 <element name="rx" type="float"/>
    5637                 <element name="ry" type="float"/>
    5638                 <element name="rz" type="float"/>
    5639                 <element name="sh" type="integer" min="0" max="1" default="0"/>
    5640                 <element name="stam" type="float" min="0" max="1" default="0.25"/>
    5641                 <element name="stif" type="float" min="0" max="1" default="1.0"/>
     5715                <element name="Vstyle" type="string"/>
     5716                <element name="vr" type="float" min="0" max="1" default="0.5"/>
     5717                <element name="vg" type="float" min="0" max="1" default="0.5"/>
    56425718                <element name="vb" type="float" min="0" max="1" default="0.5"/>
    5643                 <element name="vg" type="float" min="0" max="1" default="0.5"/>
    5644                 <element name="vr" type="float" min="0" max="1" default="0.5"/>
    5645                 <element name="Vstyle" type="string"/>
    56465719        </type>
    56475720        <type name="Loader" context="Visual style definition">
     
    56575730        <type name="Material" context="Visual style definition">
    56585731<description><![CDATA[Manipulate 3d objects surface properties (Material objects can be associated with geometry nodes).]]></description>
     5732                <element name="new" function="true"/>
     5733                <element name="diffuse" type="integer"/>
    56595734                <element name="ambient" type="integer"/>
     5735                <element name="specular" type="integer"/>
     5736                <element name="emission" type="integer"/>
     5737                <element name="shininess" type="float"/>
    56605738                <element name="colormat" type="integer"/>
    5661                 <element name="diffuse" type="integer"/>
    5662                 <element name="emission" type="integer"/>
     5739                <element name="translucent" type="integer"/>
     5740                <element name="setSmooth" function="true"/>
     5741                <element name="setFlat" function="true"/>
     5742                <element name="enable" function="true"/>
     5743                <element name="disable" function="true"/>
     5744                <element name="care" function="true"/>
     5745                <element name="dontcare" function="true"/>
     5746                <element name="texture" type="string"/>
    56635747                <element name="object" type="Object"/>
    5664                 <element name="shininess" type="float"/>
    5665                 <element name="specular" type="integer"/>
    5666                 <element name="texture" type="string"/>
    5667                 <element name="translucent" type="integer"/>
    5668                 <element name="care" function="true"/>
    5669                 <element name="disable" function="true"/>
    5670                 <element name="dontcare" function="true"/>
    5671                 <element name="enable" function="true"/>
    5672                 <element name="new" function="true"/>
    5673                 <element name="setFlat" function="true"/>
    5674                 <element name="setSmooth" function="true"/>
    56755748        </type>
    56765749        <type name="MechJoint" context="Visual style definition">
    56775750<description><![CDATA[Current joint properties during the simulation]]></description>
    5678                 <element name="absorient" type="Orient"/>
    5679                 <element name="calcorient" type="Orient"/>
     5751                <element name="rx" type="float"/>
     5752                <element name="ry" type="float"/>
     5753                <element name="rz" type="float"/>
    56805754                <element name="dx" type="float"/>
    56815755                <element name="dy" type="float"/>
    56825756                <element name="dz" type="float"/>
     5757                <element name="orient" type="Orient"/>
     5758                <element name="absorient" type="Orient"/>
     5759                <element name="calcorient" type="Orient"/>
    56835760                <element name="length" type="float"/>
     5761                <element name="stif" type="float"/>
     5762                <element name="rotstif" type="float"/>
     5763                <element name="stress" type="float"/>
     5764                <element name="rotstress" type="float"/>
     5765        </type>
     5766        <type name="MechPart" context="Visual style definition">
     5767<description><![CDATA[Current part properties during the simulation]]></description>
     5768                <element name="x" type="float"/>
     5769                <element name="y" type="float"/>
     5770                <element name="z" type="float"/>
     5771                <element name="pos" type="XYZ"/>
    56845772                <element name="orient" type="Orient"/>
    5685                 <element name="rotstif" type="float"/>
    5686                 <element name="rotstress" type="float"/>
     5773                <element name="m" type="float"/>
     5774                <element name="s" type="float"/>
     5775                <element name="vol" type="float"/>
     5776                <element name="fr" type="float"/>
     5777        </type>
     5778        <type name="n" context="Visual style definition">
     5779                <element name="p" type="integer" min="-1" max="999999" default="-1"/>
     5780                <element name="j" type="integer" min="-1" max="999999" default="-1"/>
     5781                <element name="d" type="string"/>
     5782                <element name="i" type="string"/>
     5783                <element name="Vstyle" type="string"/>
     5784                <element name="getInputCount" type="integer"/>
     5785                <element name="getInputNeuroDef" function="true" type="NeuroDef">
     5786                        <arguments>
     5787                                <argument type="integer"/>
     5788                        </arguments>
     5789                </element>
     5790                <element name="getInputNeuroIndex" function="true" type="integer">
     5791                        <arguments>
     5792                                <argument type="integer"/>
     5793                        </arguments>
     5794                </element>
     5795                <element name="getInputWeight" function="true" type="float">
     5796                        <arguments>
     5797                                <argument type="integer"/>
     5798                        </arguments>
     5799                </element>
     5800                <element name="classObject" type="NeuroClass"/>
     5801                <element name="class" type="string"/>
     5802                <element name="state" type="float"/>
     5803        </type>
     5804        <type name="p" context="Visual style definition">
     5805                <element name="x" type="float"/>
     5806                <element name="y" type="float"/>
     5807                <element name="z" type="float"/>
     5808                <element name="m" type="float" min="0.1" max="999" default="1.0"/>
     5809                <element name="sh" type="integer" min="0" max="3" default="0"/>
     5810                <element name="s" type="float" min="0.1" max="10" default="1.0"/>
     5811                <element name="sx" type="float" min="0.001" max="1000" default="1.0"/>
     5812                <element name="sy" type="float" min="0.001" max="1000" default="1.0"/>
     5813                <element name="sz" type="float" min="0.001" max="1000" default="1.0"/>
     5814                <element name="h" type="float" min="0" max="1" default="0.0"/>
     5815                <element name="dn" type="float" min="0.2" max="5" default="1.0"/>
     5816                <element name="fr" type="float" min="0" max="4" default="0.4"/>
     5817                <element name="ing" type="float" min="0" max="1" default="0.25"/>
     5818                <element name="as" type="float" min="0" max="1" default="0.25"/>
    56875819                <element name="rx" type="float"/>
    56885820                <element name="ry" type="float"/>
    56895821                <element name="rz" type="float"/>
    5690                 <element name="stif" type="float"/>
    5691                 <element name="stress" type="float"/>
    5692         </type>
    5693         <type name="MechPart" context="Visual style definition">
    5694 <description><![CDATA[Current part properties during the simulation]]></description>
    5695                 <element name="fr" type="float"/>
    5696                 <element name="m" type="float"/>
    5697                 <element name="orient" type="Orient"/>
    5698                 <element name="pos" type="XYZ"/>
    5699                 <element name="s" type="float"/>
    5700                 <element name="vol" type="float"/>
    5701                 <element name="x" type="float"/>
    5702                 <element name="y" type="float"/>
    5703                 <element name="z" type="float"/>
    5704         </type>
    5705         <type name="n" context="Visual style definition">
    5706                 <element name="class" type="string"/>
    5707                 <element name="classObject" type="NeuroClass"/>
    5708                 <element name="d" type="string"/>
    5709                 <element name="getInputCount" type="integer"/>
    57105822                <element name="i" type="string"/>
    5711                 <element name="j" type="integer" min="-1" max="999999" default="-1"/>
    5712                 <element name="p" type="integer" min="-1" max="999999" default="-1"/>
    5713                 <element name="state" type="float"/>
    57145823                <element name="Vstyle" type="string"/>
    5715                 <element name="getInputNeuroDef" function="true" type="NeuroDef">
    5716                         <arguments>
    5717                                 <argument type="integer"/>
    5718                         </arguments>
    5719                 </element>
    5720                 <element name="getInputNeuroIndex" function="true" type="integer">
    5721                         <arguments>
    5722                                 <argument type="integer"/>
    5723                         </arguments>
    5724                 </element>
    5725                 <element name="getInputWeight" function="true" type="float">
    5726                         <arguments>
    5727                                 <argument type="integer"/>
    5728                         </arguments>
    5729                 </element>
    5730         </type>
    5731         <type name="p" context="Visual style definition">
    5732                 <element name="as" type="float" min="0" max="1" default="0.25"/>
    5733                 <element name="dn" type="float" min="0.2" max="5" default="1.0"/>
    5734                 <element name="fr" type="float" min="0" max="4" default="0.4"/>
    5735                 <element name="h" type="float" min="0" max="1" default="0.0"/>
    5736                 <element name="i" type="string"/>
    5737                 <element name="ing" type="float" min="0" max="1" default="0.25"/>
    5738                 <element name="m" type="float" min="0.1" max="999" default="1.0"/>
    5739                 <element name="rx" type="float"/>
    5740                 <element name="ry" type="float"/>
    5741                 <element name="rz" type="float"/>
    5742                 <element name="s" type="float" min="0.1" max="10" default="1.0"/>
    5743                 <element name="sh" type="integer" min="0" max="3" default="0"/>
    5744                 <element name="sx" type="float" min="0.001" max="1000" default="1.0"/>
    5745                 <element name="sy" type="float" min="0.001" max="1000" default="1.0"/>
    5746                 <element name="sz" type="float" min="0.001" max="1000" default="1.0"/>
     5824                <element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
     5825                <element name="vr" type="float" min="0" max="1" default="0.5"/>
     5826                <element name="vg" type="float" min="0" max="1" default="0.5"/>
    57475827                <element name="vb" type="float" min="0" max="1" default="0.5"/>
    5748                 <element name="vg" type="float" min="0" max="1" default="0.5"/>
    5749                 <element name="vr" type="float" min="0" max="1" default="0.5"/>
    5750                 <element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
    5751                 <element name="Vstyle" type="string"/>
    5752                 <element name="x" type="float"/>
    5753                 <element name="y" type="float"/>
    5754                 <element name="z" type="float"/>
    57555828        </type>
    57565829        <type name="Scene" context="Visual style definition">
     
    57605833        </type>
    57615834        <type name="VertexBuilder" context="Visual style definition">
    5762                 <element name="material" type="Object"/>
     5835                <element name="new" function="true" type="void">
     5836                        <arguments>
     5837                                <argument name="type" type="integer"/>
     5838                        </arguments>
     5839                </element>
     5840                <element name="newPolygon" function="true"/>
     5841                <element name="newTriangleFan" function="true"/>
     5842                <element name="newTriangles" function="true"/>
     5843                <element name="newTriangleStrip" function="true"/>
     5844                <element name="newQuads" function="true"/>
     5845                <element name="newQuadStrip" function="true"/>
     5846                <element name="newPoints" function="true"/>
     5847                <element name="newLines" function="true"/>
     5848                <element name="newLineLoop" function="true"/>
     5849                <element name="newLineStrip" function="true"/>
     5850                <element name="addVertex" function="true"/>
     5851                <element name="addNormal" function="true"/>
     5852                <element name="addNormal_1" function="true">
     5853                        <description><![CDATA[use addNormal instead of this function]]></description>
     5854                </element>
     5855                <element name="addCalculatedNormal" function="true">
     5856                        <description><![CDATA[calculate the normal vector from 3 coordinates. integer arguments are the vertices' indices. 0,1,2... = first, second, third vertex, -1,-2,-3,... = last, last-1, last-2 vertex]]></description>
     5857                </element>
     5858                <element name="addColor" function="true"/>
     5859                <element name="addTexCoord" function="true"/>
     5860                <element name="genTexCoordsXY" function="true"/>
     5861                <element name="genTexCoordsYZ" function="true"/>
     5862                <element name="genTexCoordsXZ" function="true"/>
     5863                <element name="genTexCoords" function="true"/>
    57635864                <element name="node" type="SSGNode">
    57645865                        <description><![CDATA[This field returns the geometry node for use in GeomBuilder. You have to set all relevant geometry properties before using this field. The usual sequence:
     
    576758683. Use the resulting node ( GeomBuilder.add(VertexBuilder.node) )]]></description>
    57685869                </element>
     5870                <element name="material" type="Object"/>
    57695871                <element name="twosided" type="integer" min="0" max="1"/>
    5770                 <element name="addCalculatedNormal" function="true">
    5771                         <description><![CDATA[calculate the normal vector from 3 coordinates. integer arguments are the vertices' indices. 0,1,2... = first, second, third vertex, -1,-2,-3,... = last, last-1, last-2 vertex]]></description>
    5772                 </element>
    5773                 <element name="addColor" function="true"/>
    5774                 <element name="addNormal" function="true"/>
    5775                 <element name="addNormal_1" function="true">
    5776                         <description><![CDATA[use addNormal instead of this function]]></description>
    5777                 </element>
    5778                 <element name="addTexCoord" function="true"/>
    5779                 <element name="addVertex" function="true"/>
    5780                 <element name="genTexCoords" function="true"/>
    5781                 <element name="genTexCoordsXY" function="true"/>
    5782                 <element name="genTexCoordsXZ" function="true"/>
    5783                 <element name="genTexCoordsYZ" function="true"/>
    5784                 <element name="new" function="true" type="void">
    5785                         <arguments>
    5786                                 <argument name="type" type="integer"/>
    5787                         </arguments>
    5788                 </element>
    5789                 <element name="newLineLoop" function="true"/>
    5790                 <element name="newLines" function="true"/>
    5791                 <element name="newLineStrip" function="true"/>
    5792                 <element name="newPoints" function="true"/>
    5793                 <element name="newPolygon" function="true"/>
    5794                 <element name="newQuads" function="true"/>
    5795                 <element name="newQuadStrip" function="true"/>
    5796                 <element name="newTriangleFan" function="true"/>
    5797                 <element name="newTriangles" function="true"/>
    5798                 <element name="newTriangleStrip" function="true"/>
    57995872        </type>
    58005873        <type name="VisParams" context="Visual style definition">
    5801                 <element name="axes" type="integer" min="0" max="1" default="0">
    5802                         <description><![CDATA[]]></description>
    5803                 </element>
    5804                 <element name="bbox" type="integer" min="0" max="1" default="1">
    5805                         <description><![CDATA[]]></description>
    5806                 </element>
    5807                 <element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
    5808                         <description><![CDATA[]]></description>
    5809                 </element>
     5874                <element name="clear" function="true"/>
     5875                <element name="add" function="true"/>
     5876                <element name="remove" function="true"/>
     5877                <element name="addGroup" function="true"/>
     5878                <element name="removeGroup" function="true"/>
    58105879                <element name="changedProperty" type="integer"/>
    58115880                <element name="changedPropertyId" type="string"/>
     5881                <element name="worldpan" type="integer" min="0" max="3" default="2">
     5882                        <description><![CDATA[]]></description>
     5883                </element>
     5884                <element name="modelpan" type="integer" min="0" max="3" default="1">
     5885                        <description><![CDATA[]]></description>
     5886                </element>
     5887                <element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
     5888                        <description><![CDATA[]]></description>
     5889                </element>
     5890                <element name="bbox" type="integer" min="0" max="1" default="1">
     5891                        <description><![CDATA[]]></description>
     5892                </element>
    58125893                <element name="joint_width" type="integer" min="10" max="150" default="100">
    58135894                        <description><![CDATA[]]></description>
    58145895                </element>
    5815                 <element name="modelpan" type="integer" min="0" max="3" default="1">
    5816                         <description><![CDATA[]]></description>
    5817                 </element>
    58185896                <element name="shadows" type="integer" min="0" max="1" default="1">
     5897                        <description><![CDATA[]]></description>
     5898                </element>
     5899                <element name="axes" type="integer" min="0" max="1" default="0">
    58195900                        <description><![CDATA[]]></description>
    58205901                </element>
     
    58265907Use scripting and the Symmetry class to compute symmetry accurately.]]></description>
    58275908                </element>
    5828                 <element name="worldpan" type="integer" min="0" max="3" default="2">
    5829                         <description><![CDATA[]]></description>
    5830                 </element>
    5831                 <element name="add" function="true"/>
    5832                 <element name="addGroup" function="true"/>
    5833                 <element name="clear" function="true"/>
    5834                 <element name="remove" function="true"/>
    5835                 <element name="removeGroup" function="true"/>
    58365909        </type>
    58375910        <type name="VisualModel" context="Visual style definition">
    58385911<description><![CDATA[Visual representation of the Creature object.]]></description>
     5912                <element name="rootNode" type="SSGNode"/>
     5913                <element name="partshadow" type="float"/>
     5914                <element name="jointshadow" type="float"/>
     5915                <element name="style" type="string">
     5916                        <description><![CDATA[visual style applied to this object]]></description>
     5917                </element>
    58395918                <element name="args" type="string">
    58405919                        <description><![CDATA[style parameters: Vstyle=name(args)]]></description>
    5841                 </element>
    5842                 <element name="color" type="integer">
    5843                         <description><![CDATA[0xBBGGRR, 0x808080=normal, 0x000000=black, 0xffffff=extra bright]]></description>
    5844                 </element>
    5845                 <element name="jointshadow" type="float"/>
    5846                 <element name="partshadow" type="float"/>
    5847                 <element name="rootNode" type="SSGNode"/>
    5848                 <element name="style" type="string">
    5849                         <description><![CDATA[visual style applied to this object]]></description>
    58505920                </element>
    58515921                <element name="getArg" function="true" type="string">
     
    58575927                        </arguments>
    58585928                </element>
     5929                <element name="color" type="integer">
     5930                        <description><![CDATA[0xBBGGRR, 0x808080=normal, 0x000000=black, 0xffffff=extra bright]]></description>
     5931                </element>
    58595932        </type>
    58605933        <type name="VisualStyle" context="Visual style definition">
    5861                 <element name="axes" type="integer" min="0" max="1" default="0">
    5862                         <description><![CDATA[]]></description>
    5863                 </element>
    5864                 <element name="bbox" type="integer" min="0" max="1" default="1">
    5865                         <description><![CDATA[]]></description>
    5866                 </element>
    5867                 <element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
    5868                         <description><![CDATA[]]></description>
    5869                 </element>
     5934                <element name="style" type="string"/>
     5935                <element name="name" type="string"/>
     5936                <element name="info" type="string"/>
     5937                <element name="code" type="string"/>
     5938                <element name="streload" function="true"/>
     5939                <element name="rebuild" function="true"/>
     5940                <element name="tex" type="integer" min="0" max="2" default="1"/>
     5941                <element name="smooth" type="integer" min="0" max="1" default="1"/>
     5942                <element name="neurons" type="integer" min="0" max="1" default="1"/>
     5943                <element name="clear" function="true"/>
     5944                <element name="add" function="true"/>
     5945                <element name="remove" function="true"/>
     5946                <element name="addGroup" function="true"/>
     5947                <element name="removeGroup" function="true"/>
    58705948                <element name="changedProperty" type="integer"/>
    58715949                <element name="changedPropertyId" type="string"/>
    5872                 <element name="code" type="string"/>
    5873                 <element name="info" type="string"/>
     5950                <element name="worldpan" type="integer" min="0" max="3" default="2">
     5951                        <description><![CDATA[]]></description>
     5952                </element>
     5953                <element name="modelpan" type="integer" min="0" max="3" default="1">
     5954                        <description><![CDATA[]]></description>
     5955                </element>
     5956                <element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
     5957                        <description><![CDATA[]]></description>
     5958                </element>
     5959                <element name="bbox" type="integer" min="0" max="1" default="1">
     5960                        <description><![CDATA[]]></description>
     5961                </element>
    58745962                <element name="joint_width" type="integer" min="10" max="150" default="100">
    58755963                        <description><![CDATA[]]></description>
    58765964                </element>
    5877                 <element name="modelpan" type="integer" min="0" max="3" default="1">
    5878                         <description><![CDATA[]]></description>
    5879                 </element>
    5880                 <element name="name" type="string"/>
    5881                 <element name="neurons" type="integer" min="0" max="1" default="1"/>
    58825965                <element name="shadows" type="integer" min="0" max="1" default="1">
    58835966                        <description><![CDATA[]]></description>
    58845967                </element>
     5968                <element name="axes" type="integer" min="0" max="1" default="0">
     5969                        <description><![CDATA[]]></description>
     5970                </element>
    58855971                <element name="shownames" type="integer" min="0" max="1" default="0">
    58865972                        <description><![CDATA[]]></description>
    58875973                </element>
    5888                 <element name="smooth" type="integer" min="0" max="1" default="1"/>
    5889                 <element name="style" type="string"/>
    58905974                <element name="symmetryplane" type="integer" min="0" max="1" default="0">
    58915975                        <description><![CDATA[Displays a guess of the symmetry plane (may take a long time to compue for complex bodies).
    58925976Use scripting and the Symmetry class to compute symmetry accurately.]]></description>
    58935977                </element>
    5894                 <element name="tex" type="integer" min="0" max="2" default="1"/>
    5895                 <element name="worldpan" type="integer" min="0" max="3" default="2">
    5896                         <description><![CDATA[]]></description>
    5897                 </element>
    5898                 <element name="add" function="true"/>
    5899                 <element name="addGroup" function="true"/>
    5900                 <element name="clear" function="true"/>
    5901                 <element name="rebuild" function="true"/>
    5902                 <element name="remove" function="true"/>
    5903                 <element name="removeGroup" function="true"/>
    5904                 <element name="streload" function="true"/>
    59055978        </type>
    59065979        <type name="World" context="Visual style definition">
    59075980<description><![CDATA[Environment properties.]]></description>
    5908                 <element name="nnspeed" type="float" min="0" max="1000" default="1.0">
    5909                         <description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
    5910                 </element>
    5911                 <element name="signals" type="WorldSignals"/>
    5912                 <element name="simtype" type="integer" min="0" max="1" default="0">
    5913                         <description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
    5914 ODE is Open Dynamics Engine by Russel Smith et al.
    5915 
    5916 NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
    5917                 </element>
    5918                 <element name="wrldbnd" type="integer" min="0" max="2" default="1"/>
    5919                 <element name="wrldg" type="float" min="0" max="10" default="1.0">
    5920                         <description><![CDATA[You can adjust gravity for your experiments.
    5921 The "official" setting used to evaluate and compare creatures is 1.]]></description>
     5981                <element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
     5982                <element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
     5983                        <description><![CDATA[Side length of the world]]></description>
    59225984                </element>
    59235985                <element name="wrldmap" type="string">
     
    59315993See also the WorldMap object.]]></description>
    59325994                </element>
    5933                 <element name="wrldsiz" type="float" min="10" max="1000" default="20.0">
    5934                         <description><![CDATA[Side length of the world]]></description>
    5935                 </element>
    5936                 <element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
    59375995                <element name="wrldwat" type="float" min="-20" max="200" default="-1.0"/>
     5996                <element name="wrldbnd" type="integer" min="0" max="2" default="1">
     5997                        <description><![CDATA[Teleporting 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).]]></description>
     5998                </element>
     5999                <element name="wrldg" type="float" min="0" max="10" default="1.0">
     6000                        <description><![CDATA[You can adjust gravity for your experiments.
     6001The "official" setting used to evaluate and compare creatures is 1.]]></description>
     6002                </element>
    59386003                <element name="wrldchg" function="true" type="void"><arguments/></element>
     6004                <element name="simtype" type="integer" min="0" max="1" default="0">
     6005                        <description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
     6006ODE is Open Dynamics Engine by Russel Smith et al.
     6007
     6008NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
     6009                </element>
     6010                <element name="nnspeed" type="float" min="0" max="1000" default="1.0">
     6011                        <description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
     6012                </element>
     6013                <element name="signals" type="WorldSignals"/>
    59396014        </type>
    59406015        <type name="WorldMap" context="Visual style definition">
     
    59816056        </type>
    59826057        <type name="Signal" context="Signal label formula">
     6058                <element name="value" type="untyped">
     6059                        <description><![CDATA[Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating functions receive() and receiveFilter() ignore this attribute.]]></description>
     6060                </element>
     6061                <element name="power" type="float">
     6062                        <description><![CDATA[Signal power affects the aggregated signal value returned from receive() and receiveFilter().]]></description>
     6063                </element>
     6064                <element name="flavor" type="float">
     6065                        <description><![CDATA[Signal flavor can be used to differentiate between signals in a single channel.]]></description>
     6066                </element>
    59836067                <element name="channel" type="string">
    59846068                        <description><![CDATA[Channel name, read-only.]]></description>
    59856069                </element>
    5986                 <element name="flavor" type="float">
    5987                         <description><![CDATA[Signal flavor can be used to differentiate between signals in a single channel.]]></description>
    5988                 </element>
    59896070                <element name="pos" type="XYZ">
    59906071                        <description><![CDATA[Signal position, read-only.]]></description>
    59916072                </element>
    5992                 <element name="power" type="float">
    5993                         <description><![CDATA[Signal power affects the aggregated signal value returned from receive() and receiveFilter().]]></description>
    5994                 </element>
    5995                 <element name="value" type="untyped">
    5996                         <description><![CDATA[Signal value can be any type. On the receiver side it is only available by accessing the individual Signal objects, i.e. after calling receiveSet() or receiveSingle(). The aggregating functions receive() and receiveFilter() ignore this attribute.]]></description>
    5997                 </element>
    59986073        </type>
    59996074        <type name="ClassBrowser" context="Command line interface">
    60006075<description><![CDATA[Object reference, can be used to provide online hints.]]></description>
     6076                <element name="search" function="true" type="integer">
     6077                        <description><![CDATA[Searches the class reference and returns the number of  hits (results). getXXX(item) function can be used to retrieve the results.]]></description>
     6078                        <arguments>
     6079                                <argument name="Text" type="string"/>
     6080                        </arguments>
     6081                </element>
    60016082                <element name="resultCount" type="integer"/>
    6002                 <element name="getLabel" function="true" type="string">
    6003                         <description><![CDATA[Short texual label of the search result.]]></description>
    6004                         <arguments>
    6005                                 <argument name="item" type="integer"/>
    6006                         </arguments>
    6007                 </element>
    6008                 <element name="getText" function="true" type="string">
    6009                         <description><![CDATA[Complete result text.]]></description>
    6010                         <arguments>
    6011                                 <argument name="item" type="integer"/>
    6012                         </arguments>
    6013                 </element>
    60146083                <element name="getType" function="true" type="integer">
    60156084                        <description><![CDATA[0 = Unknown
     
    60316100                        </arguments>
    60326101                </element>
    6033                 <element name="search" function="true" type="integer">
    6034                         <description><![CDATA[Searches the class reference and returns the number of  hits (results). getXXX(item) function can be used to retrieve the results.]]></description>
    6035                         <arguments>
    6036                                 <argument name="Text" type="string"/>
     6102                <element name="getLabel" function="true" type="string">
     6103                        <description><![CDATA[Short texual label of the search result.]]></description>
     6104                        <arguments>
     6105                                <argument name="item" type="integer"/>
     6106                        </arguments>
     6107                </element>
     6108                <element name="getText" function="true" type="string">
     6109                        <description><![CDATA[Complete result text.]]></description>
     6110                        <arguments>
     6111                                <argument name="item" type="integer"/>
    60376112                        </arguments>
    60386113                </element>
     
    60406115        <type name="CLI" context="Command line interface">
    60416116<description><![CDATA[Commandline support functions.]]></description>
     6117                <element name="script" type="string"/>
     6118                <element name="execute" function="true" type="void">
     6119                        <arguments>
     6120                                <argument name="command" type="string"/>
     6121                        </arguments>
     6122                </element>
    60426123                <element name="cmdhandler" type="string"/>
    6043                 <element name="msgtype" type="integer" min="0" max="1"/>
     6124                <element name="quit" function="true"/>
     6125                <element name="print" function="true" type="void">
     6126                        <arguments>
     6127                                <argument name="text" type="string"/>
     6128                        </arguments>
     6129                </element>
     6130                <element name="println" function="true" type="void">
     6131                        <arguments>
     6132                                <argument name="text" type="string"/>
     6133                        </arguments>
     6134                </element>
    60446135                <element name="quiet" type="integer" min="0" max="1">
    60456136                        <description><![CDATA[enabled by -Q]]></description>
    60466137                </element>
    6047                 <element name="script" type="string"/>
    6048                 <element name="stdin" type="Object"/>
    6049                 <element name="stdout" type="Object"/>
    60506138                <element name="addMacro" function="true" type="void">
    60516139                        <arguments>
     
    60566144                        </arguments>
    60576145                </element>
    6058                 <element name="execute" function="true" type="void">
    6059                         <arguments>
    6060                                 <argument name="command" type="string"/>
    6061                         </arguments>
    6062                 </element>
    6063                 <element name="listMacros" function="true" type="void"><arguments/></element>
    6064                 <element name="print" function="true" type="void">
    6065                         <arguments>
    6066                                 <argument name="text" type="string"/>
    6067                         </arguments>
    6068                 </element>
    6069                 <element name="println" function="true" type="void">
    6070                         <arguments>
    6071                                 <argument name="text" type="string"/>
    6072                         </arguments>
    6073                 </element>
    6074                 <element name="quit" function="true"/>
    60756146                <element name="removeMacro" function="true" type="void">
    60766147                        <description><![CDATA[(numargs==-2) means remove all macros matching the name, otherwise only one definition is removed]]></description>
     
    60806151                        </arguments>
    60816152                </element>
     6153                <element name="listMacros" function="true" type="void"><arguments/></element>
     6154                <element name="stdin" type="Object"/>
     6155                <element name="stdout" type="Object"/>
     6156                <element name="msgtype" type="integer" min="0" max="1"/>
    60826157        </type>
    60836158        <type name="CreatureCharts" context="Command line interface">
    60846159<description><![CDATA[Manages charts for monitoring creatures performance.
    60856160This class has no corresponding static object. If you want to use it, you have to create an object or get a reference to the existing object.]]></description>
    6086                 <element name="creature" type="untyped"/>
    60876161                <element name="selected" type="integer"/>
     6162                <element name="addSelected" function="true">
     6163                        <description><![CDATA[Add the chart for currenly selected property]]></description>
     6164                </element>
    60886165                <element name="add" function="true">
    60896166                        <description><![CDATA[return the new Window object with chart as its client
    60906167arguments: property to be tracked]]></description>
    60916168                </element>
    6092                 <element name="addSelected" function="true">
    6093                         <description><![CDATA[Add the chart for currenly selected property]]></description>
     6169                <element name="removeAll" function="true"/>
     6170                <element name="resetAll" function="true">
     6171                        <description><![CDATA[Removes all data from the chart windows.]]></description>
    60946172                </element>
    60956173                <element name="createChart" function="true">
     
    60976175arguments: property to be tracked]]></description>
    60986176                </element>
    6099                 <element name="removeAll" function="true"/>
    6100                 <element name="resetAll" function="true">
    6101                         <description><![CDATA[Removes all data from the chart windows.]]></description>
    6102                 </element>
     6177                <element name="creature" type="untyped"/>
    61036178        </type>
    61046179        <type name="CreatureSelection" context="Command line interface">
    61056180                <element name="count" type="integer"/>
     6181                <element name="get" function="true" type="Creature">
     6182                        <arguments>
     6183                                <argument name="index" type="integer"/>
     6184                        </arguments>
     6185                </element>
    61066186                <element name="add" function="true" type="void">
    61076187                        <arguments>
     
    61096189                        </arguments>
    61106190                </element>
     6191                <element name="remove" function="true" type="void">
     6192                        <arguments>
     6193                                <argument type="Creature"/>
     6194                        </arguments>
     6195                </element>
    61116196                <element name="clear" function="true" type="void"><arguments/></element>
    6112                 <element name="get" function="true" type="Creature">
    6113                         <arguments>
    6114                                 <argument name="index" type="integer"/>
    6115                         </arguments>
    6116                 </element>
    6117                 <element name="remove" function="true" type="void">
    6118                         <arguments>
    6119                                 <argument type="Creature"/>
    6120                         </arguments>
    6121                 </element>
    61226197        </type>
    61236198        <type name="DynaChart" context="Command line interface">
    61246199<description><![CDATA[Line chart (visual object). Can be used as the client object in the Window.]]></description>
    6125                 <element name="xscale" type="integer" min="1" max="20"/>
     6200                <element name="new" function="true" type="DynaChart"><arguments/></element>
    61266201                <element name="add" function="true">
    61276202                        <description><![CDATA[add new value]]></description>
    61286203                </element>
    61296204                <element name="clear" function="true" type="void"><arguments/></element>
    6130                 <element name="new" function="true" type="DynaChart"><arguments/></element>
     6205                <element name="xscale" type="integer" min="1" max="20"/>
    61316206        </type>
    61326207        <type name="DynaChart2D" context="Command line interface">
    61336208<description><![CDATA[2D Line chart (visual object). Can be used as the client object in the Window.]]></description>
     6209                <element name="new" function="true" type="DynaChart2D"><arguments/></element>
     6210                <element name="add" function="true" type="void">
     6211                        <description><![CDATA[add (x,y) values for the next graph point]]></description>
     6212                        <arguments>
     6213                                <argument name="x coordinate" type="float"/>
     6214                                <argument name="y coordinate" type="float"/>
     6215                        </arguments>
     6216                </element>
     6217                <element name="clear" function="true" type="void"><arguments/></element>
    61346218                <element name="memory" type="integer" min="1" max="1000" default="100">
    61356219                        <description><![CDATA[maximum number of (x,y) pairs drawn in the graph.]]></description>
    61366220                </element>
    6137                 <element name="add" function="true" type="void">
    6138                         <description><![CDATA[add (x,y) values for the next graph point]]></description>
    6139                         <arguments>
    6140                                 <argument name="x coordinate" type="float"/>
    6141                                 <argument name="y coordinate" type="float"/>
    6142                         </arguments>
    6143                 </element>
    6144                 <element name="clear" function="true" type="void"><arguments/></element>
    6145                 <element name="new" function="true" type="DynaChart2D"><arguments/></element>
    61466221        </type>
    61476222        <type name="GLDisplay" context="Command line interface">
    61486223<description><![CDATA[OpenGL display for the Framsticks Theater application.]]></description>
     6224                <element name="simsteps" type="integer" min="0" max="999999" default="0">
     6225                        <description><![CDATA[0 = simulation is disabled. In most cases you should use desiredsimspeed as it ensures automatic throttle control.]]></description>
     6226                </element>
     6227                <element name="desiredsimspeed" type="float" min="0" max="999999" default="0.0">
     6228                        <description><![CDATA[Desired simulation speed in steps/second. 0 = simulation is disabled.]]></description>
     6229                </element>
     6230                <element name="userspeed" type="float" min="0" max="100" default="1.0">
     6231                        <description><![CDATA[User interface sets this property to adjust simulation speed.]]></description>
     6232                </element>
     6233                <element name="stop" function="true"/>
     6234                <element name="resume" function="true"/>
     6235                <element name="draw" function="true"/>
     6236                <element name="quit" function="true"/>
    61496237                <element name="active" type="integer" min="0" max="1"/>
    61506238                <element name="banner" type="string"/>
    6151                 <element name="desiredsimspeed" type="float" min="0" max="999999" default="0.0">
    6152                         <description><![CDATA[Desired simulation speed in steps/second. 0 = simulation is disabled.]]></description>
    6153                 </element>
    6154                 <element name="fps" type="float">
    6155                         <description><![CDATA[Frames Per Second (measured)]]></description>
    6156                 </element>
    6157                 <element name="fpsvisible" type="integer" min="0" max="1"/>
    6158                 <element name="maxfps" type="integer" min="1" max="100" default="30"/>
    6159                 <element name="messagesVisible" type="integer" min="0" max="1"/>
    6160                 <element name="messagesWindow" type="Object">
    6161                         <description><![CDATA[get window object (class Window)]]></description>
    6162                 </element>
    6163                 <element name="minfps" type="integer" min="1" max="100" default="5"/>
    6164                 <element name="simsteps" type="integer" min="0" max="999999" default="0">
    6165                         <description><![CDATA[0 = simulation is disabled. In most cases you should use desiredsimspeed as it ensures automatic throttle control.]]></description>
    6166                 </element>
    6167                 <element name="size_x" type="integer"/>
    6168                 <element name="size_y" type="integer"/>
    61696239                <element name="user_interaction" type="integer" min="0" max="1" default="1">
    61706240                        <description><![CDATA[Bit field:
     
    61726242]]></description>
    61736243                </element>
    6174                 <element name="userspeed" type="float" min="0" max="100" default="1.0">
    6175                         <description><![CDATA[User interface sets this property to adjust simulation speed.]]></description>
    6176                 </element>
     6244                <element name="minfps" type="integer" min="1" max="100" default="5"/>
     6245                <element name="maxfps" type="integer" min="1" max="100" default="30"/>
     6246                <element name="fps" type="float">
     6247                        <description><![CDATA[Frames Per Second (measured)]]></description>
     6248                </element>
     6249                <element name="fpsvisible" type="integer" min="0" max="1"/>
     6250                <element name="messagesVisible" type="integer" min="0" max="1"/>
    61776251                <element name="clearMessages" function="true"/>
     6252                <element name="messagesWindow" type="Object">
     6253                        <description><![CDATA[get window object (class Window)]]></description>
     6254                </element>
     6255                <element name="size_x" type="integer"/>
     6256                <element name="size_y" type="integer"/>
    61786257                <element name="createWindow" function="true" type="Window">
    61796258                        <description><![CDATA[create and return the new window object.]]></description>
     
    61896268                        </arguments>
    61906269                </element>
    6191                 <element name="draw" function="true"/>
    61926270                <element name="newCreatureCharts" function="true"/>
    61936271                <element name="newSimStatsCharts" function="true"/>
    6194                 <element name="quit" function="true"/>
    6195                 <element name="resume" function="true"/>
    6196                 <element name="stop" function="true"/>
    61976272        </type>
    61986273        <type name="ImageExport" context="Command line interface">
    6199                 <element name="imgex_compress" type="integer" min="0" max="100" default="15"/>
    6200                 <element name="imgex_currframe" type="integer"/>
    6201                 <element name="imgex_enabled" type="integer" min="0" max="1"/>
    6202                 <element name="imgex_format" type="integer" min="0" max="2"/>
    6203                 <element name="imgex_lastfile" type="string"/>
    6204                 <element name="imgex_maxframes" type="integer" min="0" max="1000000" default="10000">
    6205                         <description><![CDATA[How many frames are to be generated?]]></description>
    6206                 </element>
    62076274                <element name="imgex_outdir" type="string">
    62086275                        <description><![CDATA[Directory name WITHOUT trailing '/' sign]]></description>
     
    62116278                        <description><![CDATA[Frame number replaces %d (eg. 'image%03d.jpg')]]></description>
    62126279                </element>
     6280                <element name="imgex_format" type="integer" min="0" max="2"/>
     6281                <element name="imgex_compress" type="integer" min="0" max="100" default="15"/>
    62136282                <element name="imgex_skip" type="integer">
    62146283                        <description><![CDATA[A scene file is generated each (n+1) simulation steps
     
    62186287                        <description><![CDATA[Starting number]]></description>
    62196288                </element>
     6289                <element name="imgex_maxframes" type="integer" min="0" max="1000000" default="10000">
     6290                        <description><![CDATA[How many frames are to be generated?]]></description>
     6291                </element>
     6292                <element name="imgex_enable" function="true"/>
    62206293                <element name="imgex_disable" function="true"/>
    6221                 <element name="imgex_enable" function="true"/>
    62226294                <element name="imgex_now" function="true"/>
     6295                <element name="imgex_currframe" type="integer"/>
     6296                <element name="imgex_enabled" type="integer" min="0" max="1"/>
     6297                <element name="imgex_lastfile" type="string"/>
    62236298        </type>
    62246299        <type name="NeuroDiagram" context="Command line interface">
    62256300<description><![CDATA[Can be used as the client object in the Window.]]></description>
    6226                 <element name="hide" function="true" type="void"><arguments/></element>
    62276301                <element name="new" function="true"/>
    62286302                <element name="showCreature" function="true" type="void">
     
    62366310                        </arguments>
    62376311                </element>
     6312                <element name="hide" function="true" type="void"><arguments/></element>
    62386313        </type>
    62396314        <type name="RowFormat" context="Command line interface">
     
    62446319RowFormat.prepare(Genotype.*,"name/20,strsiz/5,nnsiz/5,fit/6");
    62456320CLI.println(RowFormat.format(Genotype.*));]]></description>
    6246                 <element name="fieldsep" type="string">
    6247                         <description><![CDATA[The character used for separating columns]]></description>
    6248                 </element>
    6249                 <element name="fillchar" type="string">
    6250                         <description><![CDATA[The characted used for padding the columns contents]]></description>
    6251                 </element>
    6252                 <element name="header" type="string">
    6253                         <description><![CDATA[Contains the field names with the same formatting applied (i.e. with fill and separators)]]></description>
    6254                 </element>
    6255                 <element name="addColumn" function="true" type="void">
    6256                         <description><![CDATA[Low level call, adds a single column. "prepare" is better.]]></description>
    6257                         <arguments>
    6258                                 <argument name="Field#" type="integer"/>
    6259                                 <argument name="Column width" type="integer"/>
     6321                <element name="prepare" function="true" type="void">
     6322                        <description><![CDATA[Adds a number of columns, described as FIELD_NAME/WIDTH, columns are separated by "," (comma). Existing column definitions are not removed. Usually you will need to call "clear()" before "prepare".]]></description>
     6323                        <arguments>
     6324                                <argument name="Object" type="Object"/>
     6325                                <argument name="Column Descriptions" type="string"/>
     6326                        </arguments>
     6327                </element>
     6328                <element name="format" function="true" type="string">
     6329                        <description><![CDATA[Returns the formatted string taking data from the supplied object.]]></description>
     6330                        <arguments>
     6331                                <argument name="Object" type="Object"/>
    62606332                        </arguments>
    62616333                </element>
     
    62636335                        <description><![CDATA[Remove all existing column definitions.]]></description>
    62646336<arguments/></element>
    6265                 <element name="format" function="true" type="string">
    6266                         <description><![CDATA[Returns the formatted string taking data from the supplied object.]]></description>
    6267                         <arguments>
    6268                                 <argument name="Object" type="Object"/>
    6269                         </arguments>
    6270                 </element>
    6271                 <element name="prepare" function="true" type="void">
    6272                         <description><![CDATA[Adds a number of columns, described as FIELD_NAME/WIDTH, columns are separated by "," (comma). Existing column definitions are not removed. Usually you will need to call "clear()" before "prepare".]]></description>
    6273                         <arguments>
    6274                                 <argument name="Object" type="Object"/>
    6275                                 <argument name="Column Descriptions" type="string"/>
    6276                         </arguments>
     6337                <element name="addColumn" function="true" type="void">
     6338                        <description><![CDATA[Low level call, adds a single column. "prepare" is better.]]></description>
     6339                        <arguments>
     6340                                <argument name="Field#" type="integer"/>
     6341                                <argument name="Column width" type="integer"/>
     6342                        </arguments>
     6343                </element>
     6344                <element name="fillchar" type="string">
     6345                        <description><![CDATA[The characted used for padding the columns contents]]></description>
     6346                </element>
     6347                <element name="fieldsep" type="string">
     6348                        <description><![CDATA[The character used for separating columns]]></description>
     6349                </element>
     6350                <element name="header" type="string">
     6351                        <description><![CDATA[Contains the field names with the same formatting applied (i.e. with fill and separators)]]></description>
    62776352                </element>
    62786353        </type>
    62796354        <type name="ShowManager" context="Command line interface">
     6355                <element name="show" type="string"/>
     6356                <element name="name" type="string"/>
     6357                <element name="info" type="string"/>
     6358                <element name="dispinfo" type="integer" min="0" max="2"/>
     6359                <element name="userspeed" type="integer" min="0" max="5" default="3"/>
     6360                <element name="showlog" type="integer" min="0" max="1"/>
     6361                <element name="code" type="string"/>
     6362                <element name="expdef" type="string"/>
     6363                <element name="reload" function="true"/>
     6364                <element name="dummy" function="true">
     6365                        <description><![CDATA[This is the empty item in the Theater's menu]]></description>
     6366                </element>
     6367                <element name="about" function="true"/>
     6368                <element name="regname" type="string"/>
     6369                <element name="prev_show" type="string"/>
     6370                <element name="mode" type="integer" min="0" max="2"/>
     6371                <element name="switchmode" type="integer" min="0" max="3"/>
     6372                <element name="switchtime" type="integer" min="0" max="9999">
     6373                        <description><![CDATA[time between switching (seconds)]]></description>
     6374                </element>
     6375                <element name="switchshows" type="string">
     6376                        <description><![CDATA[names of the shows participating in automatic switching (comma separated). Use * as a wildcard.]]></description>
     6377                </element>
     6378                <element name="includeshows" type="string">
     6379                        <description><![CDATA[names of shows included in the show menu. Use * as a wildcard.]]></description>
     6380                </element>
     6381                <element name="excludeshows" type="string">
     6382                        <description><![CDATA[names of shows excluded from the show menu. Use * as a wildcard.]]></description>
     6383                </element>
     6384                <element name="clear" function="true"/>
     6385                <element name="add" function="true"/>
     6386                <element name="remove" function="true"/>
     6387                <element name="addGroup" function="true"/>
     6388                <element name="removeGroup" function="true"/>
    62806389                <element name="changedProperty" type="integer"/>
    62816390                <element name="changedPropertyId" type="string"/>
    6282                 <element name="code" type="string"/>
    6283                 <element name="dispinfo" type="integer" min="0" max="2"/>
    6284                 <element name="excludeshows" type="string">
    6285                         <description><![CDATA[names of shows excluded from the show menu. Use * as a wildcard.]]></description>
    6286                 </element>
    6287                 <element name="expdef" type="string"/>
    6288                 <element name="includeshows" type="string">
    6289                         <description><![CDATA[names of shows included in the show menu. Use * as a wildcard.]]></description>
    6290                 </element>
    6291                 <element name="info" type="string"/>
    6292                 <element name="mode" type="integer" min="0" max="2"/>
    6293                 <element name="name" type="string"/>
    6294                 <element name="prev_show" type="string"/>
    6295                 <element name="regname" type="string"/>
    6296                 <element name="show" type="string"/>
    6297                 <element name="showlog" type="integer" min="0" max="1"/>
    6298                 <element name="switchmode" type="integer" min="0" max="3"/>
    6299                 <element name="switchshows" type="string">
    6300                         <description><![CDATA[names of the shows participating in automatic switching (comma separated). Use * as a wildcard.]]></description>
    6301                 </element>
    6302                 <element name="switchtime" type="integer" min="0" max="9999">
    6303                         <description><![CDATA[time between switching (seconds)]]></description>
    6304                 </element>
    6305                 <element name="userspeed" type="integer" min="0" max="5" default="3"/>
    6306                 <element name="about" function="true"/>
    6307                 <element name="add" function="true"/>
    6308                 <element name="addGroup" function="true"/>
    6309                 <element name="clear" function="true"/>
    6310                 <element name="dummy" function="true">
    6311                         <description><![CDATA[This is the empty item in the Theater's menu]]></description>
    6312                 </element>
    6313                 <element name="reload" function="true"/>
    6314                 <element name="remove" function="true"/>
    6315                 <element name="removeGroup" function="true"/>
    63166391        </type>
    63176392        <type name="SimStatsCharts" context="Command line interface">
     
    63196394This class has no corresponding static object. If you want to use it, you have to create an object or get a reference to the existing object.]]></description>
    63206395                <element name="selected" type="integer"/>
     6396                <element name="sscAddSelected" function="true"/>
    63216397                <element name="add" function="true"/>
    6322                 <element name="createChart" function="true"/>
    63236398                <element name="removeAll" function="true"/>
    63246399                <element name="resetAll" function="true">
    63256400                        <description><![CDATA[Removes all data from the chart windows.]]></description>
    63266401                </element>
    6327                 <element name="sscAddSelected" function="true"/>
     6402                <element name="createChart" function="true"/>
    63286403        </type>
    63296404        <type name="TrackingCam" context="Command line interface">
    63306405<description><![CDATA[Camera object with the automatic target tracking ability.]]></description>
    6331                 <element name="cam_change" type="integer" min="0" max="5" default="2"/>
    6332                 <element name="cam_chspeed" type="float" min="0.1" max="10" default="1.0"/>
    6333                 <element name="cam_dir" type="float" min="0" max="360" default="30.0"/>
     6406                <element name="cam_tracking" type="integer" min="0" max="3" default="1"/>
     6407                <element name="cam_trspeed" type="float" min="0.1" max="10" default="5.0"/>
    63346408                <element name="cam_distrac" type="integer" min="0" max="1" default="0">
    63356409                        <description><![CDATA[Suspend automatic tracking when the camera is moved manually]]></description>
    6336                 </element>
    6337                 <element name="cam_h" type="float" min="0" max="360" default="45.0">
    6338                         <description><![CDATA[0=side view, 90=top view]]></description>
    63396410                </element>
    63406411                <element name="cam_restrac" type="integer" min="0" max="100" default="10">
     
    63426413(0 to never restore automatic tracking)]]></description>
    63436414                </element>
    6344                 <element name="cam_tracking" type="integer" min="0" max="3" default="1"/>
    6345                 <element name="cam_trspeed" type="float" min="0.1" max="10" default="5.0"/>
    6346                 <element name="cam_zoom" type="float" min="0.2" max="3" default="0.8"/>
    6347                 <element name="interacting" type="integer" min="0" max="2"/>
    63486415                <element name="cam_restore" function="true" type="void">
    63496416                        <description><![CDATA[Update camera position and restore automatic tracking]]></description>
    63506417<arguments/></element>
    6351                 <element name="moveTarget" function="true" type="void">
    6352                         <description><![CDATA[notify about the target location/size change]]></description>
     6418                <element name="cam_change" type="integer" min="0" max="5" default="2"/>
     6419                <element name="cam_chspeed" type="float" min="0.1" max="10" default="1.0"/>
     6420                <element name="cam_zoom" type="float" min="0.2" max="3" default="0.8"/>
     6421                <element name="cam_dir" type="float" min="0" max="360" default="30.0"/>
     6422                <element name="cam_h" type="float" min="0" max="360" default="45.0">
     6423                        <description><![CDATA[0=side view, 90=top view]]></description>
     6424                </element>
     6425                <element name="setTarget" function="true" type="void">
     6426                        <description><![CDATA[select a new target for the camera]]></description>
    63536427                        <arguments>
    63546428                                <argument name="location x" type="float"/>
     
    63586432                        </arguments>
    63596433                </element>
    6360                 <element name="setOrient" function="true" type="void">
    6361                         <arguments>
    6362                                 <argument type="Orient"/>
    6363                         </arguments>
    6364                 </element>
    6365                 <element name="setTarget" function="true" type="void">
    6366                         <description><![CDATA[select a new target for the camera]]></description>
     6434                <element name="moveTarget" function="true" type="void">
     6435                        <description><![CDATA[notify about the target location/size change]]></description>
    63676436                        <arguments>
    63686437                                <argument name="location x" type="float"/>
     
    63796448                        </arguments>
    63806449                </element>
     6450                <element name="setOrient" function="true" type="void">
     6451                        <arguments>
     6452                                <argument type="Orient"/>
     6453                        </arguments>
     6454                </element>
     6455                <element name="interacting" type="integer" min="0" max="2"/>
    63816456        </type>
    63826457        <type name="VisualStyle" context="Command line interface">
    6383                 <element name="axes" type="integer" min="0" max="1" default="0">
    6384                         <description><![CDATA[]]></description>
    6385                 </element>
    6386                 <element name="bbox" type="integer" min="0" max="1" default="1">
    6387                         <description><![CDATA[]]></description>
    6388                 </element>
    6389                 <element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
    6390                         <description><![CDATA[]]></description>
    6391                 </element>
     6458                <element name="style" type="string"/>
     6459                <element name="name" type="string"/>
     6460                <element name="info" type="string"/>
     6461                <element name="code" type="string"/>
     6462                <element name="streload" function="true"/>
     6463                <element name="rebuild" function="true"/>
     6464                <element name="tex" type="integer" min="0" max="2" default="1"/>
     6465                <element name="smooth" type="integer" min="0" max="1" default="1"/>
     6466                <element name="neurons" type="integer" min="0" max="1" default="1"/>
     6467                <element name="clear" function="true"/>
     6468                <element name="add" function="true"/>
     6469                <element name="remove" function="true"/>
     6470                <element name="addGroup" function="true"/>
     6471                <element name="removeGroup" function="true"/>
    63926472                <element name="changedProperty" type="integer"/>
    63936473                <element name="changedPropertyId" type="string"/>
    6394                 <element name="code" type="string"/>
    6395                 <element name="info" type="string"/>
     6474                <element name="worldpan" type="integer" min="0" max="3" default="2">
     6475                        <description><![CDATA[]]></description>
     6476                </element>
     6477                <element name="modelpan" type="integer" min="0" max="3" default="1">
     6478                        <description><![CDATA[]]></description>
     6479                </element>
     6480                <element name="bgcolor" type="integer" min="0" max="16777215" default="16764040">
     6481                        <description><![CDATA[]]></description>
     6482                </element>
     6483                <element name="bbox" type="integer" min="0" max="1" default="1">
     6484                        <description><![CDATA[]]></description>
     6485                </element>
    63966486                <element name="joint_width" type="integer" min="10" max="150" default="100">
    63976487                        <description><![CDATA[]]></description>
    63986488                </element>
    6399                 <element name="modelpan" type="integer" min="0" max="3" default="1">
    6400                         <description><![CDATA[]]></description>
    6401                 </element>
    6402                 <element name="name" type="string"/>
    6403                 <element name="neurons" type="integer" min="0" max="1" default="1"/>
    64046489                <element name="shadows" type="integer" min="0" max="1" default="1">
    64056490                        <description><![CDATA[]]></description>
    64066491                </element>
     6492                <element name="axes" type="integer" min="0" max="1" default="0">
     6493                        <description><![CDATA[]]></description>
     6494                </element>
    64076495                <element name="shownames" type="integer" min="0" max="1" default="0">
    64086496                        <description><![CDATA[]]></description>
    64096497                </element>
    6410                 <element name="smooth" type="integer" min="0" max="1" default="1"/>
    6411                 <element name="style" type="string"/>
    64126498                <element name="symmetryplane" type="integer" min="0" max="1" default="0">
    64136499                        <description><![CDATA[Displays a guess of the symmetry plane (may take a long time to compue for complex bodies).
    64146500Use scripting and the Symmetry class to compute symmetry accurately.]]></description>
    64156501                </element>
    6416                 <element name="tex" type="integer" min="0" max="2" default="1"/>
    6417                 <element name="worldpan" type="integer" min="0" max="3" default="2">
    6418                         <description><![CDATA[]]></description>
    6419                 </element>
    6420                 <element name="add" function="true"/>
    6421                 <element name="addGroup" function="true"/>
    6422                 <element name="clear" function="true"/>
    6423                 <element name="rebuild" function="true"/>
    6424                 <element name="remove" function="true"/>
    6425                 <element name="removeGroup" function="true"/>
    6426                 <element name="streload" function="true"/>
    64276502        </type>
    64286503        <type name="Window" context="Command line interface">
     
    64306505This class has no corresponding static object. If you want to use it, you have to create an object or get a reference to the existing object.
    64316506 See also: GLDisplay]]></description>
    6432                 <element name="backcolor" type="integer">
    6433                         <description><![CDATA[format: 0xAABBGGRR (alpha,blue,green,red)]]></description>
    6434                 </element>
    6435                 <element name="client" type="Object">
    6436                         <description><![CDATA[what is displayed in the window]]></description>
    6437                 </element>
    6438                 <element name="pos_x" type="integer"/>
    6439                 <element name="pos_y" type="integer"/>
    6440                 <element name="size_x" type="integer"/>
    6441                 <element name="size_y" type="integer"/>
    64426507                <element name="style" type="integer">
    64436508                        <description><![CDATA[bitfield:
     
    64496514                </element>
    64506515                <element name="title" type="string"/>
     6516                <element name="backcolor" type="integer">
     6517                        <description><![CDATA[format: 0xAABBGGRR (alpha,blue,green,red)]]></description>
     6518                </element>
     6519                <element name="pos_x" type="integer"/>
     6520                <element name="pos_y" type="integer"/>
     6521                <element name="size_x" type="integer"/>
     6522                <element name="size_y" type="integer"/>
     6523                <element name="client" type="Object">
     6524                        <description><![CDATA[what is displayed in the window]]></description>
     6525                </element>
    64516526        </type>
    64526527</framscript>
Note: See TracChangeset for help on using the changeset viewer.