Index: /java/Framclipse/com.framsticks.framclipse/res/framscript.xml
===================================================================
--- /java/Framclipse/com.framsticks.framclipse/res/framscript.xml	(revision 1041)
+++ /java/Framclipse/com.framsticks.framclipse/res/framscript.xml	(revision 1042)
@@ -79,5 +79,7 @@
 		<element name="prefinputs" type="integer"/>
 		<element name="prefoutput" type="integer" min="0" max="1"/>
-		<element name="preflocation" type="integer" min="0" max="2"/>
+		<element name="preflocation" type="integer" min="0" max="2" default="0"/>
+		<element name="shape_types" type="integer" min="0" max="3" default="3"/>
+		<element name="joint_shapes" type="integer" min="0" max="15" default="15"/>
 		<element name="icon" type="string"/>
 		<element name="vhints" type="integer"/>
@@ -391,6 +393,6 @@
 		<element name="boundingBoxCollisions" function="true" type="integer" flags="34">
 			<description><![CDATA[Checks approximate collisions for the selected creature.
-Returns the collision mask calculated as ( creature.selfmask & other_creatures.othermask ).
-Passing non-zero argument is equivalent to setting a temporary selfmask for the current creature.]]></description>
+Returns the collision mask calculated as ( mask & colliding_creatures.othermask ). Usually called with mask=0, which has the special meaning of using the current creature.selmask instead of 0, so that it detects the same type of collisions as the current experiment configuration.
+Passing non-zero mask value uses it instead of creature.selfmask, allowing you to include or exclude other colliding populations, as if creature.selfmask were modified temporarily.]]></description>
 			<arguments>
 				<argument name="mask" type="integer"/>
@@ -398,7 +400,7 @@
 		</element>
 		<element name="checkCollisions" function="true" type="untyped" flags="34">
-			<description><![CDATA[Returns zero if creature does not collide with other creatures.
+			<description><![CDATA[Returns zero if the creature does not collide with other creatures.
 Arguments:
-- mask: see boundingBoxCollisions() (temporarily replaces the creature.selfmask if not zero)
+- mask: if not zero, temporarily replaces creature.selfmask. For details see boundingBoxCollisions()
 - accuracy:
  0 = testing creature bounding boxes
@@ -1181,5 +1183,11 @@
 		</element>
 		<element name="toHTMLshort" function="true" type="string" flags="2">
-			<description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
+			<description><![CDATA[returns genotype (abbreviated if needed) in colored HTML format]]></description>
+			<arguments>
+				<argument type="string"/>
+			</arguments>
+		</element>
+		<element name="toLaTeX" function="true" type="string" flags="2">
+			<description><![CDATA[returns genotype in colored LaTeX format]]></description>
 			<arguments>
 				<argument type="string"/>
@@ -1262,4 +1270,7 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="genoper_f0s" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
 		<element name="genoper_f1" type="integer" min="0" max="0" flags="65">
 			<description><![CDATA[]]></description>
@@ -1293,4 +1304,7 @@
 		</element>
 		<element name="genoper_fL" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_fS" type="integer" min="0" max="0" flags="65">
 			<description><![CDATA[]]></description>
 		</element>
@@ -1327,5 +1341,6 @@
 		</element>
 		<element name="neuadd_G" type="integer" min="0" max="1">
-			<description><![CDATA[Equilibrium sensor.
+			<description><![CDATA[Tilt sensor.
+Signal is proportional to sin(angle) = most sensitive in horizontal orientation.
 0=the stick is horizontal
 +1/-1=the stick is vertical
@@ -1337,9 +1352,8 @@
 ]]></description>
 		</element>
-		<element name="neuadd_T" type="integer" min="0" max="1">
-			<description><![CDATA[Touch sensor.
--1=no contact
-0=just touching
->0=pressing, value depends on the force applied
+		<element name="neuadd_Gpart" type="integer" min="0" max="1">
+			<description><![CDATA[Tilt sensor. Signal is directly proportional to the tilt angle.
+0=the part X axis is horizontal
++1/-1=the axis is vertical
 
 Characteristics:
@@ -1350,9 +1364,29 @@
 
 Properties:
-   Range (r) float 0..1 (default 1)]]></description>
-		</element>
-		<element name="neuadd_S" type="integer" min="0" max="1">
-			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
-Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="neuadd_T" type="integer" min="0" max="1">
+			<description><![CDATA[Touch and proximity sensor (Tc+Tp combined)
+-1=no contact
+0=just touching
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="neuadd_Tcontact" type="integer" min="0" max="1">
+			<description><![CDATA[Touch sensor.
+-1=no contact
+0=the Part is touching the obstacle
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
 
 Characteristics:
@@ -1362,4 +1396,30 @@
 ]]></description>
 		</element>
+		<element name="neuadd_Tproximity" type="integer" min="0" max="1">
+			<description><![CDATA[Proximity sensor detecting obstacles along the X axis.
+-1=distance is "r" or more
+0=zero distance
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="neuadd_S" type="integer" min="0" max="1">
+			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
+Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+]]></description>
+		</element>
 		<element name="neuadd_Constant" type="integer" min="0" max="1">
 			<description><![CDATA[Constant value
@@ -1391,4 +1451,15 @@
 Properties:
    power (p) float 0.01..1 (default 1)]]></description>
+		</element>
+		<element name="neuadd_M" type="integer" min="0" max="1">
+			<description><![CDATA[Characteristics:
+   uses single input
+   does not provide output value
+   should be located on a Joint
+
+
+Properties:
+   power (p) float 0.01..1 (default 1)
+   axis (a) integer 0..1 (default 0)]]></description>
 		</element>
 		<element name="neuadd_D" type="integer" min="0" max="1">
@@ -1563,6 +1634,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_p_mas" type="float" min="0" max="100" default="10.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_p_den" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[Density only has an influence under water]]></description>
 		</element>
 		<element name="f0_p_frc" type="float" min="0" max="100" default="10.0">
@@ -1572,9 +1643,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_p_asm" type="float" min="0" max="100" default="10.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0_p_vsiz" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_p_asm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
 		<element name="f0_j_new" type="float" min="0" max="100" default="5.0">
@@ -1584,6 +1652,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_j_stm" type="float" min="0" max="100" default="10.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_j_stm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
 		<element name="f0_j_stf" type="float" min="0" max="100" default="10.0">
@@ -1618,4 +1686,89 @@
 		</element>
 		<element name="f0_c_wei" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_nodel_tag" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[You can tag elements using their 'i' field and the i="mi=d" tag.
+Mutations will not delete such elements.
+The i="mi=dm" combination is allowed.]]></description>
+		</element>
+		<element name="f0s_nomod_tag" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[You can tag elements using their 'i' field and the i="mi=m" tag.
+Mutations will not modify properties of such elements.
+The i="mi=md" combination is allowed.]]></description>
+		</element>
+		<element name="f0s_circle_section" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Ensure that ellipsoids and cylinders have circle cross-section]]></description>
+		</element>
+		<element name="f0s_use_elli" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use ellipsoids in mutations]]></description>
+		</element>
+		<element name="f0s_use_cub" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cuboids in mutations]]></description>
+		</element>
+		<element name="f0s_use_cyl" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cylinders in mutations]]></description>
+		</element>
+		<element name="f0s_p_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_swp" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_pos" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_scale" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_frc" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_ing" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_asm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
+		</element>
+		<element name="f0s_p_vsiz" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_stm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
+		</element>
+		<element name="f0s_j_vred" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_vgrn" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_vblu" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_n_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_n_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_n_prp" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_c_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_c_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_c_wei" type="float" min="0" max="100" default="10.0">
 			<description><![CDATA[]]></description>
 		</element>
@@ -1631,9 +1784,9 @@
 		<element name="f1_smComma" type="float" min="0" max="100" default="0.02"/>
 		<element name="f1_smModif" type="float" min="0" max="100" default="0.1">
-			<description><![CDATA[Modifiers: LlRrCcQqFfMmIiEeWwAaSsDdGgBbHh]]></description>
+			<description><![CDATA[Modifiers: LlRrCcQqFfMmIiEeWwAaSsDdGgBb]]></description>
 		</element>
 		<element name="f1_mut_exmod" type="string" max="30">
 			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBbHh)]]></description>
+(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBb)]]></description>
 		</element>
 		<element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
@@ -1722,5 +1875,5 @@
 		<element name="f4_mut_exmod" type="string" max="30">
 			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBbHh)]]></description>
+(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBb)]]></description>
 		</element>
 		<element name="f8_mut_chg_begin_arg" type="float" min="0" max="100" default="7.0">
@@ -1898,4 +2051,61 @@
 		<element name="fL_mut_deletion" type="float" min="0" max="1" default="0.2">
 			<description><![CDATA[Probability of deleting random word from axiom or random successor (also deletes rule if there is only one word in successor)]]></description>
+		</element>
+		<element name="fS_mut_add_part" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a part]]></description>
+		</element>
+		<element name="fS_mut_rem_part" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of deleting a part]]></description>
+		</element>
+		<element name="fS_mut_mod_part" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing the part type]]></description>
+		</element>
+		<element name="fS_mut_change_joint" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing a joint]]></description>
+		</element>
+		<element name="fS_mut_add_param" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a parameter]]></description>
+		</element>
+		<element name="fS_mut_rem_param" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of removing a parameter]]></description>
+		</element>
+		<element name="fS_mut_mod_param" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of modifying a parameter]]></description>
+		</element>
+		<element name="fS_mut_mod_mod" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of modifying a modifier]]></description>
+		</element>
+		<element name="fS_mut_add_neuro" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a neuron]]></description>
+		</element>
+		<element name="fS_mut_rem_neuro" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of removing a neuron]]></description>
+		</element>
+		<element name="fS_mut_mod_neuro_conn" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing a neuron connection]]></description>
+		</element>
+		<element name="fS_mut_add_neuro_conn" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a neuron connection]]></description>
+		</element>
+		<element name="fS_mut_rem_neuro_conn" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of removing a neuron connection]]></description>
+		</element>
+		<element name="fS_mut_mod_neuro_params" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing a neuron param]]></description>
+		</element>
+		<element name="fS_circle_section" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Ensure that ellipsoids and cylinders have circle cross-section]]></description>
+		</element>
+		<element name="fS_use_elli" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use ellipsoids in mutations]]></description>
+		</element>
+		<element name="fS_use_cub" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cuboids in mutations]]></description>
+		</element>
+		<element name="fS_use_cyl" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cylinders in mutations]]></description>
+		</element>
+		<element name="fS_mut_add_part_strong" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Add part mutation will produce more parametrized parts]]></description>
 		</element>
 	</type>
@@ -2256,5 +2466,15 @@
 		<element name="dy" type="float" min="-2" max="2" default="0.0" flags="1024"/>
 		<element name="dz" type="float" min="-2" max="2" default="0.0" flags="1024"/>
-		<element name="sh" type="integer" min="0" max="1" default="0"/>
+		<element name="sh" type="integer" min="0" max="3" default="0"/>
+		<element name="hx" type="float"/>
+		<element name="hy" type="float" flags="1024"/>
+		<element name="hz" type="float" flags="1024"/>
+		<element name="hrx" type="float"/>
+		<element name="hry" type="float" flags="1024"/>
+		<element name="hrz" type="float" flags="1024"/>
+		<element name="hxn" type="float" min="-6.2832" max="0" default="-1.5708"/>
+		<element name="hxp" type="float" min="0" max="6.2832" default="1.5708" flags="1024"/>
+		<element name="hyn" type="float" min="-6.2832" max="0" default="-1.5708"/>
+		<element name="hyp" type="float" min="0" max="6.2832" default="1.5708" flags="1024"/>
 		<element name="stif" type="float" min="0" max="1" default="1.0"/>
 		<element name="rotstif" type="float" min="0" max="1" default="1.0"/>
@@ -2449,4 +2669,7 @@
 		<element name="stress" type="float" flags="1"/>
 		<element name="rotstress" type="float" flags="1"/>
+		<element name="joint" type="Joint" flags="1">
+			<description><![CDATA[corresponding Joint object]]></description>
+		</element>
 	</type>
 	<type name="MechPart" context="Global context">
@@ -2480,4 +2703,7 @@
 			</arguments>
 		</element>
+		<element name="part" type="Part" flags="1">
+			<description><![CDATA[corresponding Part object]]></description>
+		</element>
 	</type>
 	<type name="Model" context="Global context">
@@ -2737,7 +2963,13 @@
 		<element name="position_y" type="float" flags="1"/>
 		<element name="position_z" type="float" flags="1"/>
+		<element name="relative_pos" type="XYZ" flags="1"/>
+		<element name="relative_orient" type="Orient" flags="1"/>
 		<element name="creature" type="Creature" flags="1"/>
-		<element name="part" type="MechPart" flags="1"/>
-		<element name="joint" type="MechJoint" flags="1"/>
+		<element name="mechpart" type="MechPart" flags="1">
+			<description><![CDATA[The MechPart object where this neuron is located]]></description>
+		</element>
+		<element name="mechjoint" type="MechJoint" flags="1">
+			<description><![CDATA[The MechJoint object where this neuron is located]]></description>
+		</element>
 		<element name="neuroproperties" type="NeuroProperties" flags="1">
 			<description><![CDATA[Neurons can have different fields depending on their class. Script neurons have their fields defined using the "property:" syntax. If you develop a custom neuron script you should use the NeuroProperties object for accessing your own neuron fields. The Neuro.neuroproperties property is meant for accessing the neuron fields from the outside script.
@@ -2775,4 +3007,10 @@
 		</element>
 		<element name="preflocation" type="integer" min="0" max="2"/>
+		<element name="shape_types" type="integer" min="0" max="3" default="3">
+			<description><![CDATA[Bit mask of supported (1<<Model::ShapeType) values, default 3=all shape types supported]]></description>
+		</element>
+		<element name="joint_shapes" type="integer" min="0" max="15" default="15">
+			<description><![CDATA[Bit mask of supported (1<<Joint::Shape) values, default 15=all joint shapes supported]]></description>
+		</element>
 		<element name="visualhints" type="integer">
 			<description><![CDATA[This is a bitfield. Compute the value by adding the following bits:
@@ -2885,5 +3123,6 @@
 		</element>
 		<element name="ncl_G" type="integer" min="0" max="1">
-			<description><![CDATA[Equilibrium sensor.
+			<description><![CDATA[Tilt sensor.
+Signal is proportional to sin(angle) = most sensitive in horizontal orientation.
 0=the stick is horizontal
 +1/-1=the stick is vertical
@@ -2895,9 +3134,8 @@
 ]]></description>
 		</element>
-		<element name="ncl_T" type="integer" min="0" max="1">
-			<description><![CDATA[Touch sensor.
--1=no contact
-0=just touching
->0=pressing, value depends on the force applied
+		<element name="ncl_Gpart" type="integer" min="0" max="1">
+			<description><![CDATA[Tilt sensor. Signal is directly proportional to the tilt angle.
+0=the part X axis is horizontal
++1/-1=the axis is vertical
 
 Characteristics:
@@ -2908,9 +3146,29 @@
 
 Properties:
-   Range (r) float 0..1 (default 1)]]></description>
-		</element>
-		<element name="ncl_S" type="integer" min="0" max="1">
-			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
-Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="ncl_T" type="integer" min="0" max="1">
+			<description><![CDATA[Touch and proximity sensor (Tc+Tp combined)
+-1=no contact
+0=just touching
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="ncl_Tcontact" type="integer" min="0" max="1">
+			<description><![CDATA[Touch sensor.
+-1=no contact
+0=the Part is touching the obstacle
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
 
 Characteristics:
@@ -2920,4 +3178,30 @@
 ]]></description>
 		</element>
+		<element name="ncl_Tproximity" type="integer" min="0" max="1">
+			<description><![CDATA[Proximity sensor detecting obstacles along the X axis.
+-1=distance is "r" or more
+0=zero distance
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="ncl_S" type="integer" min="0" max="1">
+			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
+Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+]]></description>
+		</element>
 		<element name="ncl_Constant" type="integer" min="0" max="1">
 			<description><![CDATA[Constant value
@@ -2949,4 +3233,15 @@
 Properties:
    power (p) float 0.01..1 (default 1)]]></description>
+		</element>
+		<element name="ncl_M" type="integer" min="0" max="1">
+			<description><![CDATA[Characteristics:
+   uses single input
+   does not provide output value
+   should be located on a Joint
+
+
+Properties:
+   power (p) float 0.01..1 (default 1)
+   axis (a) integer 0..1 (default 0)]]></description>
 		</element>
 		<element name="ncl_D" type="integer" min="0" max="1">
@@ -3323,7 +3618,7 @@
 		<element name="sh" type="integer" min="0" max="3" default="0"/>
 		<element name="s" type="float" min="0.1" max="10" default="1.0"/>
-		<element name="sx" type="float" min="0.001" max="1000" default="1.0"/>
-		<element name="sy" type="float" min="0.001" max="1000" default="1.0"/>
-		<element name="sz" type="float" min="0.001" max="1000" default="1.0"/>
+		<element name="sx" type="float" min="0.05" max="5" default="1.0"/>
+		<element name="sy" type="float" min="0.05" max="5" default="1.0"/>
+		<element name="sz" type="float" min="0.05" max="5" default="1.0"/>
 		<element name="h" type="float" min="0" max="1" default="0.0"/>
 		<element name="dn" type="float" min="0.2" max="5" default="1.0"/>
@@ -3336,5 +3631,4 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string" default="part"/>
-		<element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
 		<element name="vr" type="float" min="0" max="1" default="1.0"/>
 		<element name="vg" type="float" min="0" max="1" default="1.0" flags="1024"/>
@@ -4156,5 +4450,11 @@
 		</element>
 		<element name="toHTMLshort" function="true" type="string" flags="2">
-			<description><![CDATA[returns genotype (abbreviated if needed) expressed as colored HTML]]></description>
+			<description><![CDATA[returns genotype (abbreviated if needed) in colored HTML format]]></description>
+			<arguments>
+				<argument type="string"/>
+			</arguments>
+		</element>
+		<element name="toLaTeX" function="true" type="string" flags="2">
+			<description><![CDATA[returns genotype in colored LaTeX format]]></description>
 			<arguments>
 				<argument type="string"/>
@@ -4189,4 +4489,7 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="genoper_f0s" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
 		<element name="genoper_f1" type="integer" min="0" max="0" flags="65">
 			<description><![CDATA[]]></description>
@@ -4220,4 +4523,7 @@
 		</element>
 		<element name="genoper_fL" type="integer" min="0" max="0" flags="65">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="genoper_fS" type="integer" min="0" max="0" flags="65">
 			<description><![CDATA[]]></description>
 		</element>
@@ -4254,5 +4560,6 @@
 		</element>
 		<element name="neuadd_G" type="integer" min="0" max="1">
-			<description><![CDATA[Equilibrium sensor.
+			<description><![CDATA[Tilt sensor.
+Signal is proportional to sin(angle) = most sensitive in horizontal orientation.
 0=the stick is horizontal
 +1/-1=the stick is vertical
@@ -4264,9 +4571,8 @@
 ]]></description>
 		</element>
-		<element name="neuadd_T" type="integer" min="0" max="1">
-			<description><![CDATA[Touch sensor.
--1=no contact
-0=just touching
->0=pressing, value depends on the force applied
+		<element name="neuadd_Gpart" type="integer" min="0" max="1">
+			<description><![CDATA[Tilt sensor. Signal is directly proportional to the tilt angle.
+0=the part X axis is horizontal
++1/-1=the axis is vertical
 
 Characteristics:
@@ -4277,9 +4583,29 @@
 
 Properties:
-   Range (r) float 0..1 (default 1)]]></description>
-		</element>
-		<element name="neuadd_S" type="integer" min="0" max="1">
-			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
-Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="neuadd_T" type="integer" min="0" max="1">
+			<description><![CDATA[Touch and proximity sensor (Tc+Tp combined)
+-1=no contact
+0=just touching
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="neuadd_Tcontact" type="integer" min="0" max="1">
+			<description><![CDATA[Touch sensor.
+-1=no contact
+0=the Part is touching the obstacle
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
 
 Characteristics:
@@ -4289,4 +4615,30 @@
 ]]></description>
 		</element>
+		<element name="neuadd_Tproximity" type="integer" min="0" max="1">
+			<description><![CDATA[Proximity sensor detecting obstacles along the X axis.
+-1=distance is "r" or more
+0=zero distance
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="neuadd_S" type="integer" min="0" max="1">
+			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
+Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+]]></description>
+		</element>
 		<element name="neuadd_Constant" type="integer" min="0" max="1">
 			<description><![CDATA[Constant value
@@ -4318,4 +4670,15 @@
 Properties:
    power (p) float 0.01..1 (default 1)]]></description>
+		</element>
+		<element name="neuadd_M" type="integer" min="0" max="1">
+			<description><![CDATA[Characteristics:
+   uses single input
+   does not provide output value
+   should be located on a Joint
+
+
+Properties:
+   power (p) float 0.01..1 (default 1)
+   axis (a) integer 0..1 (default 0)]]></description>
 		</element>
 		<element name="neuadd_D" type="integer" min="0" max="1">
@@ -4490,6 +4853,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_p_mas" type="float" min="0" max="100" default="10.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_p_den" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[Density only has an influence under water]]></description>
 		</element>
 		<element name="f0_p_frc" type="float" min="0" max="100" default="10.0">
@@ -4499,9 +4862,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_p_asm" type="float" min="0" max="100" default="10.0">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f0_p_vsiz" type="float" min="0" max="100" default="0.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_p_asm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
 		<element name="f0_j_new" type="float" min="0" max="100" default="5.0">
@@ -4511,6 +4871,6 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="f0_j_stm" type="float" min="0" max="100" default="10.0">
-			<description><![CDATA[]]></description>
+		<element name="f0_j_stm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
 		</element>
 		<element name="f0_j_stf" type="float" min="0" max="100" default="10.0">
@@ -4545,4 +4905,89 @@
 		</element>
 		<element name="f0_c_wei" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_nodel_tag" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[You can tag elements using their 'i' field and the i="mi=d" tag.
+Mutations will not delete such elements.
+The i="mi=dm" combination is allowed.]]></description>
+		</element>
+		<element name="f0s_nomod_tag" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[You can tag elements using their 'i' field and the i="mi=m" tag.
+Mutations will not modify properties of such elements.
+The i="mi=md" combination is allowed.]]></description>
+		</element>
+		<element name="f0s_circle_section" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Ensure that ellipsoids and cylinders have circle cross-section]]></description>
+		</element>
+		<element name="f0s_use_elli" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use ellipsoids in mutations]]></description>
+		</element>
+		<element name="f0s_use_cub" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cuboids in mutations]]></description>
+		</element>
+		<element name="f0s_use_cyl" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cylinders in mutations]]></description>
+		</element>
+		<element name="f0s_p_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_swp" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_pos" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_scale" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_frc" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_ing" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_p_asm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
+		</element>
+		<element name="f0s_p_vsiz" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_stm" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[The interpretation and influence of this property must be implemented by the experiment definition]]></description>
+		</element>
+		<element name="f0s_j_vred" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_vgrn" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_j_vblu" type="float" min="0" max="100" default="0.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_n_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_n_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_n_prp" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_c_new" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_c_del" type="float" min="0" max="100" default="5.0">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f0s_c_wei" type="float" min="0" max="100" default="10.0">
 			<description><![CDATA[]]></description>
 		</element>
@@ -4558,9 +5003,9 @@
 		<element name="f1_smComma" type="float" min="0" max="100" default="0.02"/>
 		<element name="f1_smModif" type="float" min="0" max="100" default="0.1">
-			<description><![CDATA[Modifiers: LlRrCcQqFfMmIiEeWwAaSsDdGgBbHh]]></description>
+			<description><![CDATA[Modifiers: LlRrCcQqFfMmIiEeWwAaSsDdGgBb]]></description>
 		</element>
 		<element name="f1_mut_exmod" type="string" max="30">
 			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBbHh)]]></description>
+(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBb)]]></description>
 		</element>
 		<element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
@@ -4649,5 +5094,5 @@
 		<element name="f4_mut_exmod" type="string" max="30">
 			<description><![CDATA[Modifiers that will not be added nor deleted during mutation
-(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBbHh)]]></description>
+(all: LlRrCcQqFfMmIiEeWwAaSsDdGgBb)]]></description>
 		</element>
 		<element name="f8_mut_chg_begin_arg" type="float" min="0" max="100" default="7.0">
@@ -4825,4 +5270,61 @@
 		<element name="fL_mut_deletion" type="float" min="0" max="1" default="0.2">
 			<description><![CDATA[Probability of deleting random word from axiom or random successor (also deletes rule if there is only one word in successor)]]></description>
+		</element>
+		<element name="fS_mut_add_part" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a part]]></description>
+		</element>
+		<element name="fS_mut_rem_part" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of deleting a part]]></description>
+		</element>
+		<element name="fS_mut_mod_part" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing the part type]]></description>
+		</element>
+		<element name="fS_mut_change_joint" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing a joint]]></description>
+		</element>
+		<element name="fS_mut_add_param" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a parameter]]></description>
+		</element>
+		<element name="fS_mut_rem_param" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of removing a parameter]]></description>
+		</element>
+		<element name="fS_mut_mod_param" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of modifying a parameter]]></description>
+		</element>
+		<element name="fS_mut_mod_mod" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of modifying a modifier]]></description>
+		</element>
+		<element name="fS_mut_add_neuro" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a neuron]]></description>
+		</element>
+		<element name="fS_mut_rem_neuro" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of removing a neuron]]></description>
+		</element>
+		<element name="fS_mut_mod_neuro_conn" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing a neuron connection]]></description>
+		</element>
+		<element name="fS_mut_add_neuro_conn" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of adding a neuron connection]]></description>
+		</element>
+		<element name="fS_mut_rem_neuro_conn" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of removing a neuron connection]]></description>
+		</element>
+		<element name="fS_mut_mod_neuro_params" type="float" min="0" max="100" default="10.0">
+			<description><![CDATA[mutation: probability of changing a neuron param]]></description>
+		</element>
+		<element name="fS_circle_section" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Ensure that ellipsoids and cylinders have circle cross-section]]></description>
+		</element>
+		<element name="fS_use_elli" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use ellipsoids in mutations]]></description>
+		</element>
+		<element name="fS_use_cub" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cuboids in mutations]]></description>
+		</element>
+		<element name="fS_use_cyl" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Use cylinders in mutations]]></description>
+		</element>
+		<element name="fS_mut_add_part_strong" type="integer" min="0" max="1" default="1">
+			<description><![CDATA[Add part mutation will produce more parametrized parts]]></description>
 		</element>
 		<element name="genkonw0" type="integer" min="0" max="1"/>
@@ -4837,4 +5339,5 @@
 		<element name="genkonw9" type="integer" min="0" max="1"/>
 		<element name="genkonw10" type="integer" min="0" max="1"/>
+		<element name="genkonw11" type="integer" min="0" max="1"/>
 		<element name="randinit" type="float" min="0" max="10" default="0.01">
 			<description><![CDATA[Allowed range for initializing all neuron states with uniform distribution random numbers and zero mean. Set to 0 for deterministic initialization.]]></description>
@@ -4882,5 +5385,6 @@
 		</element>
 		<element name="ncl_G" type="integer" min="0" max="1">
-			<description><![CDATA[Equilibrium sensor.
+			<description><![CDATA[Tilt sensor.
+Signal is proportional to sin(angle) = most sensitive in horizontal orientation.
 0=the stick is horizontal
 +1/-1=the stick is vertical
@@ -4892,9 +5396,8 @@
 ]]></description>
 		</element>
-		<element name="ncl_T" type="integer" min="0" max="1">
-			<description><![CDATA[Touch sensor.
--1=no contact
-0=just touching
->0=pressing, value depends on the force applied
+		<element name="ncl_Gpart" type="integer" min="0" max="1">
+			<description><![CDATA[Tilt sensor. Signal is directly proportional to the tilt angle.
+0=the part X axis is horizontal
++1/-1=the axis is vertical
 
 Characteristics:
@@ -4905,9 +5408,29 @@
 
 Properties:
-   Range (r) float 0..1 (default 1)]]></description>
-		</element>
-		<element name="ncl_S" type="integer" min="0" max="1">
-			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
-Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="ncl_T" type="integer" min="0" max="1">
+			<description><![CDATA[Touch and proximity sensor (Tc+Tp combined)
+-1=no contact
+0=just touching
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="ncl_Tcontact" type="integer" min="0" max="1">
+			<description><![CDATA[Touch sensor.
+-1=no contact
+0=the Part is touching the obstacle
+>0=pressing, value depends on the force applied (not implemented in ODE mode)
 
 Characteristics:
@@ -4917,4 +5440,30 @@
 ]]></description>
 		</element>
+		<element name="ncl_Tproximity" type="integer" min="0" max="1">
+			<description><![CDATA[Proximity sensor detecting obstacles along the X axis.
+-1=distance is "r" or more
+0=zero distance
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+
+
+Properties:
+   Range (r) float 0..1 (default 1)
+   rotation.y (ry) float -6.282..6.282 (default 0)
+   rotation.z (rz) float -6.282..6.282 (default 0)]]></description>
+		</element>
+		<element name="ncl_S" type="integer" min="0" max="1">
+			<description><![CDATA[Smell sensor. Aggregated "smell of energy" experienced from all energy objects (creatures and food pieces).
+Close objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)
+
+Characteristics:
+   does not use inputs
+   provides output value
+   should be located on a Part
+]]></description>
+		</element>
 		<element name="ncl_Constant" type="integer" min="0" max="1">
 			<description><![CDATA[Constant value
@@ -4946,4 +5495,15 @@
 Properties:
    power (p) float 0.01..1 (default 1)]]></description>
+		</element>
+		<element name="ncl_M" type="integer" min="0" max="1">
+			<description><![CDATA[Characteristics:
+   uses single input
+   does not provide output value
+   should be located on a Joint
+
+
+Properties:
+   power (p) float 0.01..1 (default 1)
+   axis (a) integer 0..1 (default 0)]]></description>
 		</element>
 		<element name="ncl_D" type="integer" min="0" max="1">
@@ -6426,7 +6986,13 @@
 		<element name="position_y" type="float" flags="1"/>
 		<element name="position_z" type="float" flags="1"/>
+		<element name="relative_pos" type="XYZ" flags="1"/>
+		<element name="relative_orient" type="Orient" flags="1"/>
 		<element name="creature" type="Creature" flags="1"/>
-		<element name="part" type="MechPart" flags="1"/>
-		<element name="joint" type="MechJoint" flags="1"/>
+		<element name="mechpart" type="MechPart" flags="1">
+			<description><![CDATA[The MechPart object where this neuron is located]]></description>
+		</element>
+		<element name="mechjoint" type="MechJoint" flags="1">
+			<description><![CDATA[The MechJoint object where this neuron is located]]></description>
+		</element>
 		<element name="neuroproperties" type="NeuroProperties" flags="1">
 			<description><![CDATA[Neurons can have different fields depending on their class. Script neurons have their fields defined using the "property:" syntax. If you develop a custom neuron script you should use the NeuroProperties object for accessing your own neuron fields. The Neuro.neuroproperties property is meant for accessing the neuron fields from the outside script.
@@ -6868,6 +7434,6 @@
 		<element name="boundingBoxCollisions" function="true" type="integer" flags="34">
 			<description><![CDATA[Checks approximate collisions for the selected creature.
-Returns the collision mask calculated as ( creature.selfmask & other_creatures.othermask ).
-Passing non-zero argument is equivalent to setting a temporary selfmask for the current creature.]]></description>
+Returns the collision mask calculated as ( mask & colliding_creatures.othermask ). Usually called with mask=0, which has the special meaning of using the current creature.selmask instead of 0, so that it detects the same type of collisions as the current experiment configuration.
+Passing non-zero mask value uses it instead of creature.selfmask, allowing you to include or exclude other colliding populations, as if creature.selfmask were modified temporarily.]]></description>
 			<arguments>
 				<argument name="mask" type="integer"/>
@@ -6875,7 +7441,7 @@
 		</element>
 		<element name="checkCollisions" function="true" type="untyped" flags="34">
-			<description><![CDATA[Returns zero if creature does not collide with other creatures.
+			<description><![CDATA[Returns zero if the creature does not collide with other creatures.
 Arguments:
-- mask: see boundingBoxCollisions() (temporarily replaces the creature.selfmask if not zero)
+- mask: if not zero, temporarily replaces creature.selfmask. For details see boundingBoxCollisions()
 - accuracy:
  0 = testing creature bounding boxes
@@ -6938,4 +7504,5 @@
 		<element name="useModel" function="true"/>
 		<element name="useCreature" function="true"/>
+		<element name="refno" type="integer" flags="1"/>
 	</type>
 	<type name="GeomBuilder" context="Visual style definition">
@@ -6962,11 +7529,14 @@
 		<element name="matrix32" type="float" flags="34"/>
 		<element name="matrix33" type="float" flags="34"/>
-		<element name="addTransform" function="true" flags="32">
-			<description><![CDATA[create the transform node as a child of the current node and make it the new current node.]]></description>
-		</element>
-		<element name="addBranch" function="true" flags="32">
+		<element name="addTransform" function="true" type="SSGNode" flags="32">
+			<description><![CDATA[create the transform node as a child of the parent node and make it the new current node.]]></description>
+			<arguments>
+				<argument name="parent node" type="SSGNode"/>
+			</arguments>
+		</element>
+		<element name="addBranch" function="true" type="SSGNode" flags="32">
 			<description><![CDATA[create the branch node as a child of the current node and make it the new current node]]></description>
-		</element>
-		<element name="add" function="true" type="void" flags="32">
+<arguments/></element>
+		<element name="add" function="true" type="SSGNode" flags="32">
 			<description><![CDATA[add a child node to the current node]]></description>
 			<arguments>
@@ -6974,5 +7544,5 @@
 			</arguments>
 		</element>
-		<element name="matrixReset" function="true" flags="32"/>
+		<element name="matrixReset" function="true" type="void" flags="32"><arguments/></element>
 		<element name="matrixMove" function="true" type="void" flags="32">
 			<arguments>
@@ -7012,5 +7582,5 @@
 		<element name="matrixRotate1" function="true" type="void" flags="32">
 			<arguments>
-				<argument name="xyz" type="integer"/>
+				<argument type="Orient"/>
 			</arguments>
 		</element>
@@ -7018,5 +7588,5 @@
 			<description><![CDATA[MechPart.pos can be used here]]></description>
 			<arguments>
-				<argument name="xyz" type="integer"/>
+				<argument type="XYZ"/>
 			</arguments>
 		</element>
@@ -7024,5 +7594,5 @@
 			<description><![CDATA[MechPart.pos can be used here]]></description>
 			<arguments>
-				<argument name="xyz" type="integer"/>
+				<argument type="XYZ"/>
 			</arguments>
 		</element>
@@ -7030,5 +7600,5 @@
 			<description><![CDATA[MechPart.orient can be used here]]></description>
 			<arguments>
-				<argument name="xyz" type="integer"/>
+				<argument type="Orient"/>
 			</arguments>
 		</element>
@@ -7039,5 +7609,5 @@
 			</arguments>
 		</element>
-		<element name="getBranch" function="true" type="integer" flags="32">
+		<element name="getBranch" function="true" type="SSGNode" flags="32">
 			<arguments>
 				<argument name="branch node" type="SSGNode"/>
@@ -7084,5 +7654,15 @@
 		<element name="dy" type="float" min="-2" max="2" default="0.0" flags="1024"/>
 		<element name="dz" type="float" min="-2" max="2" default="0.0" flags="1024"/>
-		<element name="sh" type="integer" min="0" max="1" default="0"/>
+		<element name="sh" type="integer" min="0" max="3" default="0"/>
+		<element name="hx" type="float"/>
+		<element name="hy" type="float" flags="1024"/>
+		<element name="hz" type="float" flags="1024"/>
+		<element name="hrx" type="float"/>
+		<element name="hry" type="float" flags="1024"/>
+		<element name="hrz" type="float" flags="1024"/>
+		<element name="hxn" type="float" min="-6.2832" max="0" default="-1.5708"/>
+		<element name="hxp" type="float" min="0" max="6.2832" default="1.5708" flags="1024"/>
+		<element name="hyn" type="float" min="-6.2832" max="0" default="-1.5708"/>
+		<element name="hyp" type="float" min="0" max="6.2832" default="1.5708" flags="1024"/>
 		<element name="stif" type="float" min="0" max="1" default="1.0"/>
 		<element name="rotstif" type="float" min="0" max="1" default="1.0"/>
@@ -7176,4 +7756,5 @@
 		<element name="classObject" type="NeuroClass" flags="3"/>
 		<element name="class" type="string"/>
+		<element name="liveNeuro" type="Neuro" flags="1"/>
 		<element name="state" type="float"/>
 	</type>
@@ -7184,7 +7765,7 @@
 		<element name="sh" type="integer" min="0" max="3" default="0"/>
 		<element name="s" type="float" min="0.1" max="10" default="1.0"/>
-		<element name="sx" type="float" min="0.001" max="1000" default="1.0"/>
-		<element name="sy" type="float" min="0.001" max="1000" default="1.0"/>
-		<element name="sz" type="float" min="0.001" max="1000" default="1.0"/>
+		<element name="sx" type="float" min="0.05" max="5" default="1.0"/>
+		<element name="sy" type="float" min="0.05" max="5" default="1.0"/>
+		<element name="sz" type="float" min="0.05" max="5" default="1.0"/>
 		<element name="h" type="float" min="0" max="1" default="0.0"/>
 		<element name="dn" type="float" min="0.2" max="5" default="1.0"/>
@@ -7197,5 +7778,4 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string" default="part"/>
-		<element name="vs" type="float" min="0.05" max="0.7" default="0.2"/>
 		<element name="vr" type="float" min="0" max="1" default="1.0"/>
 		<element name="vg" type="float" min="0" max="1" default="1.0" flags="1024"/>
@@ -7321,4 +7901,7 @@
 		</element>
 		<element name="axes" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="haxes" type="integer" min="0" max="1" default="0" flags="192">
 			<description><![CDATA[]]></description>
 		</element>
@@ -7443,4 +8026,7 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="haxes" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
 		<element name="shownames" type="integer" min="0" max="1" default="0" flags="192">
 			<description><![CDATA[]]></description>
@@ -7837,4 +8423,10 @@
 			</arguments>
 		</element>
+		<element name="mode" type="integer" min="0" max="2">
+			<description><![CDATA[Not implemented in the old Framsticks Theater application.]]></description>
+		</element>
+		<element name="supported_modes" type="integer" min="0" max="7" flags="1">
+			<description><![CDATA[Bitmask of supported display modes.Not implemented in the old Framsticks Theater application.]]></description>
+		</element>
 	</type>
 	<type name="GUI" context="Framsticks Theater">
@@ -7970,10 +8562,4 @@
 		<element name="KEY_LEFT" type="integer" flags="1"/>
 		<element name="KEY_RIGHT" type="integer" flags="1"/>
-		<element name="SHARING_HTML" type="string" flags="1"/>
-		<element name="sharingButtonClicked" function="true" type="void">
-			<arguments>
-				<argument name="code" type="integer"/>
-			</arguments>
-		</element>
 		<element name="top_left" type="Element" flags="1"/>
 		<element name="top_center" type="Element" flags="1"/>
@@ -8048,5 +8634,5 @@
 		</element>
 		<element name="item_count" type="integer">
-			<description><![CDATA[Number of items is readonly for Vector lists (reflects the current Vector size). The number of items in the Callback list must be set explicitly.
+			<description><![CDATA[Number of items is readonly for Vector lists (reflects the current Vector size). The number of items in the Callback list must be set explicitly. Setting the item_count must be the last stage of setting up a callback list because it triggers the refresh (and is the only list property that does so).
 Example:
 GUI->list.items=function listfun; GUI->list.item_count=1000;
@@ -8266,4 +8852,18 @@
 				<argument name="vertical align" type="integer"/>
 				<argument name="transformation" type="Matrix"/>
+			</arguments>
+		</element>
+		<element name="newImage" function="true" type="Obj3D">
+			<arguments>
+				<argument name="image" type="string"/>
+				<argument name="width" type="float"/>
+				<argument name="height" type="float"/>
+				<argument name="horizontal align" type="float"/>
+				<argument name="vertical align" type="float"/>
+			</arguments>
+		</element>
+		<element name="newBillboard" function="true" type="Obj3D">
+			<arguments>
+				<argument name="payload" type="Obj3D"/>
 			</arguments>
 		</element>
@@ -8305,4 +8905,9 @@
 			</arguments>
 		</element>
+		<element name="transformMesh" function="true" type="void" flags="256">
+			<arguments>
+				<argument type="Matrix"/>
+			</arguments>
+		</element>
 	</type>
 	<type name="Rectangle" context="Framsticks Theater">
@@ -8318,4 +8923,15 @@
 				<argument name="width" type="float"/>
 				<argument name="height" type="float"/>
+			</arguments>
+		</element>
+		<element name="inset" function="true" type="Rectangle" flags="256">
+			<description><![CDATA[Negative inset value extends the rectangle]]></description>
+			<arguments>
+				<argument name="inset" type="float"/>
+			</arguments>
+		</element>
+		<element name="fitAspect" function="true" type="Rectangle" flags="256">
+			<arguments>
+				<argument name="aspect" type="float"/>
 			</arguments>
 		</element>
@@ -8346,4 +8962,12 @@
 		</element>
 		<element name="execute" function="true" type="void"><arguments/></element>
+		<element name="HTML" type="string" flags="1"/>
+		<element name="initiate" function="true" type="void">
+			<arguments>
+				<argument name="code" type="integer"/>
+			</arguments>
+		</element>
+		<element name="tip_units" type="integer" flags="1"/>
+		<element name="tip_value" type="integer" flags="1"/>
 	</type>
 	<type name="ShowManager" context="Framsticks Theater">
@@ -8636,4 +9260,7 @@
 			<description><![CDATA[]]></description>
 		</element>
+		<element name="haxes" type="integer" min="0" max="1" default="0" flags="192">
+			<description><![CDATA[]]></description>
+		</element>
 		<element name="shownames" type="integer" min="0" max="1" default="0" flags="192">
 			<description><![CDATA[]]></description>
