Changeset 309


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