Index: /java/Framclipse/com.framsticks.framclipse/res/framscript.xml
===================================================================
--- /java/Framclipse/com.framsticks.framclipse/res/framscript.xml	(revision 1170)
+++ /java/Framclipse/com.framsticks.framclipse/res/framscript.xml	(revision 1171)
@@ -182,11 +182,25 @@
 			<description><![CDATA["Lifespan" is the period during simulation of a creature when its performance measurement is enabled.]]></description>
 		</element>
-		<element name="distance" type="float"/>
-		<element name="c_velocity" type="float"/>
-		<element name="c_vertvelocity" type="float"/>
-		<element name="c_vertpos" type="float"/>
-		<element name="velocity" type="float"/>
-		<element name="vertpos" type="float"/>
-		<element name="vertvel" type="float"/>
+		<element name="distance" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_velocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_vertvelocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_vertpos" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="velocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="vertpos" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="vertvel" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
 		<element name="pos_x" type="float" deprecated="true" flags="8195">
 			<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>
@@ -227,5 +241,5 @@
 		</element>
 		<element name="centerOfGravity" type="XYZ" flags="3">
-			<description><![CDATA[Only updated once every 'perfperiod' steps!]]></description>
+			<description><![CDATA[Only updated once every 'perfperiod' steps! See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
 		</element>
 		<element name="numparts" type="integer" flags="3"/>
@@ -564,11 +578,25 @@
 			<description><![CDATA["Lifespan" is the period during simulation of a creature when its performance measurement is enabled.]]></description>
 		</element>
-		<element name="distance" type="float"/>
-		<element name="c_velocity" type="float"/>
-		<element name="c_vertvelocity" type="float"/>
-		<element name="c_vertpos" type="float"/>
-		<element name="velocity" type="float"/>
-		<element name="vertpos" type="float"/>
-		<element name="vertvel" type="float"/>
+		<element name="distance" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_velocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_vertvelocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_vertpos" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="velocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="vertpos" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="vertvel" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
 		<element name="center_x" type="float" deprecated="true" flags="8192">
 			<description><![CDATA[Center of gravity]]></description>
@@ -624,5 +652,5 @@
 			</arguments>
 		</element>
-		<element name="get" function="true" type="untyped" flags="256">
+		<element name="get" function="true" type="untyped" flags="257">
 			<description><![CDATA[Retrieves the named or indexed element (depending on the argument type: string or int). Accessing nonexistent keys is an error (use hasKey() if necessary).
 object.get(key) can be shortened to object[key].]]></description>
@@ -631,5 +659,5 @@
 			</arguments>
 		</element>
-		<element name="getKey" function="true" type="string" flags="256">
+		<element name="getKey" function="true" type="string" flags="257">
 			<description><![CDATA[Returns the key of the indexed element (0 <= index < size).]]></description>
 			<arguments>
@@ -637,5 +665,5 @@
 			</arguments>
 		</element>
-		<element name="hasKey" function="true" type="integer" flags="256">
+		<element name="hasKey" function="true" type="integer" flags="257">
 			<description><![CDATA[Returns 1 (interpreted as true) if dictionary contains the supplied key, or 0 (false) otherwise.
 Example:
@@ -658,5 +686,5 @@
 			</arguments>
 		</element>
-		<element name="find" function="true" type="untyped" flags="256">
+		<element name="find" function="true" type="untyped" flags="257">
 			<description><![CDATA[Returns the element key or null if not found.]]></description>
 			<arguments>
@@ -668,5 +696,5 @@
 <arguments/></element>
 		<element name="toString" type="string" flags="257"/>
-		<element name="clone" function="true" type="Dictionary" flags="256">
+		<element name="clone" function="true" type="Dictionary" flags="257">
 			<description><![CDATA[The resulting clone is a shallow copy (contains the same object references as the original). A deep copy can be obtained through serialization: String.deserialize(String.serialize(object));]]></description>
 <arguments/></element>
@@ -873,9 +901,21 @@
 			<description><![CDATA[A sum of Genotype.instances values of all Genotypes in this gene pool.]]></description>
 		</element>
-		<element name="totalpop" type="integer" deprecated="true" flags="8195">
+		<element name="totalpop" type="integer" deprecated="true" flags="8227">
 			<description><![CDATA[Please use 'genotype_instances' instead of this field.]]></description>
 		</element>
 		<element name="fitness" type="string">
-			<description><![CDATA[(intended for advanced users)]]></description>
+			<description><![CDATA[(For advanced users)]]></description>
+		</element>
+		<element name="fitness_is_valid" type="integer" min="0" max="1" flags="35">
+			<description><![CDATA[(valid means can be compiled)]]></description>
+		</element>
+		<element name="fitness_step_limit" type="integer" min="0" max="1000000000" default="0">
+			<description><![CDATA[(For advanced users)]]></description>
+		</element>
+		<element name="fitness_time_limit" type="float" min="0" max="1e+09" default="0.0">
+			<description><![CDATA[(For advanced users)]]></description>
+		</element>
+		<element name="fitness_allowed_objs" type="string">
+			<description><![CDATA[Comma-separated names of object classes allowed in the fitness formula.]]></description>
 		</element>
 		<element name="fitfun" type="integer" min="0" max="1" default="0">
@@ -1780,8 +1820,8 @@
 Thus, if both parents have the same number of neurons, then this will be preserved in their children.]]></description>
 		</element>
-		<element name="f1_smX" type="float" min="0" max="100" default="0.05"/>
-		<element name="f1_smJunct" type="float" min="0" max="100" default="0.02"/>
-		<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">
+		<element name="f1_smX" type="float" min="0" max="100" default="2.0"/>
+		<element name="f1_smJunct" type="float" min="0" max="100" default="2.0"/>
+		<element name="f1_smComma" type="float" min="0" max="100" default="0.5"/>
+		<element name="f1_smModif" type="float" min="0" max="100" default="2.5">
 			<description><![CDATA[Modifiers: LlRrCcQqFfMmIiEeWwAaSsDdGgBb]]></description>
 		</element>
@@ -1790,15 +1830,15 @@
 (all: LlRrCcQqFfMmIiEeWwAaSsDdGgBb)]]></description>
 		</element>
-		<element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
+		<element name="f1_nmNeu" type="float" min="0" max="100" default="2.0">
 			<description><![CDATA[Adds a (connected) neuron or removes a neuron]]></description>
 		</element>
-		<element name="f1_nmConn" type="float" min="0" max="100" default="0.1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f1_nmProp" type="float" min="0" max="100" default="0.1">
+		<element name="f1_nmConn" type="float" min="0" max="100" default="1.5">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f1_nmProp" type="float" min="0" max="100" default="1.0">
 			<description><![CDATA[]]></description>
 		</element>
 		<element name="f1_nmWei" type="float" min="0" max="100" default="1.0"/>
-		<element name="f1_nmVal" type="float" min="0" max="100" default="0.05"/>
+		<element name="f1_nmVal" type="float" min="0" max="100" default="1.5"/>
 		<element name="f2_mutAddOper" type="float" min="0" max="1" default="0.4">
 			<description><![CDATA[]]></description>
@@ -1922,6 +1962,6 @@
 			<description><![CDATA[mutation: probability of deleting a production]]></description>
 		</element>
-		<element name="f9_mut" type="float" min="0" max="1" default="0.1">
-			<description><![CDATA[How many genes should be mutated during single mutation (1=all genes, 0.1=ten percent)]]></description>
+		<element name="f9_mut" type="float" min="0" max="1" default="0.0">
+			<description><![CDATA[How many genes should be mutated during a single mutation (1=all genes, 0.1=ten percent, 0=one gene)]]></description>
 		</element>
 		<element name="fF_xover" type="float" min="0.5" max="1" default="0.5">
@@ -1984,5 +2024,5 @@
 		</element>
 		<element name="fH_mut_add_connection" type="float" min="0" max="1" default="0.33">
-			<description><![CDATA[Probability of adding new connection handle]]></description>
+			<description><![CDATA[Probability of adding new neuron connection handle]]></description>
 		</element>
 		<element name="fH_mut_deletion" type="float" min="0" max="1" default="0.1">
@@ -2173,10 +2213,10 @@
 -1 = validity is not known. This is a transient state. The value of "is_valid" will never be -1 when read. It is safe to treat is_valid as boolean in statements like "if (g.is_valid) ...". Setting "is_valid=-1" will make it 0 or 1 again. This third state (-1) is only needed for loading Genotype objects from files where the "is_valid" field might not be present.]]></description>
 		</element>
-		<element name="getConverted" function="true" type="Geno" flags="256">
+		<element name="getConverted" function="true" type="Geno" flags="257">
 			<arguments>
 				<argument name="format" type="string"/>
 			</arguments>
 		</element>
-		<element name="getConvertedWithCheckpoints" function="true" type="Geno" flags="256">
+		<element name="getConvertedWithCheckpoints" function="true" type="Geno" flags="257">
 			<description><![CDATA[See also Model.newWithCheckpoints()]]></description>
 			<arguments>
@@ -2261,12 +2301,18 @@
 		</element>
 		<element name="lifespan" type="float">
-			<description><![CDATA[Average life span]]></description>
+			<description><![CDATA[See Creature.lifespan]]></description>
 		</element>
 		<element name="velocity" type="float">
-			<description><![CDATA[Average velocity]]></description>
-		</element>
-		<element name="distance" type="float"/>
-		<element name="vertvel" type="float"/>
-		<element name="vertpos" type="float"/>
+			<description><![CDATA[See Creature.velocity]]></description>
+		</element>
+		<element name="distance" type="float">
+			<description><![CDATA[See Creature.distance]]></description>
+		</element>
+		<element name="vertvel" type="float">
+			<description><![CDATA[See Creature.vertvel]]></description>
+		</element>
+		<element name="vertpos" type="float">
+			<description><![CDATA[See Creature.vertpos]]></description>
+		</element>
 		<element name="fit" type="float" flags="3"/>
 		<element name="fit2" type="float" flags="3">
@@ -2290,5 +2336,5 @@
 -1 = validity is not known. This is a transient state. The value of "is_valid" will never be -1 when read. It is safe to treat is_valid as boolean in statements like "if (g.is_valid) ...". Setting "is_valid=-1" will make it 0 or 1 again. This third state (-1) is only needed for loading Genotype objects from files where the "is_valid" field might not be present.]]></description>
 		</element>
-		<element name="getNormalized" function="true" type="float" flags="32">
+		<element name="getNormalized" function="true" type="float" flags="33">
 			<arguments>
 				<argument name="property name or index" type="untyped"/>
@@ -2302,5 +2348,5 @@
 See also: num]]></description>
 		</element>
-		<element name="getModel" function="true" type="Model" flags="32"><arguments/></element>
+		<element name="getModel" function="true" type="Model" flags="33"><arguments/></element>
 		<element name="splitInstances" function="true" type="void" flags="32"><arguments/></element>
 		<element name="newFromString" function="true" type="Genotype" flags="32">
@@ -2331,5 +2377,5 @@
 			</arguments>
 		</element>
-		<element name="clone" function="true" type="Genotype" flags="32">
+		<element name="clone" function="true" type="Genotype" flags="33">
 			<description><![CDATA[Returns a duplicated genotype, not attached to any gene pool. All genotype fields are copied including 'data' (for which Dictionary.clone() produces a shallow copy).]]></description>
 <arguments/></element>
@@ -2454,4 +2500,15 @@
 				<argument name="function name or index" type="untyped"/>
 				<argument name="arguments" type="Vector"/>
+			</arguments>
+		</element>
+		<element name="readonly" type="integer" min="0" max="1" flags="257"/>
+		<element name="isReadonly" function="true" type="integer">
+			<arguments>
+				<argument type="Object"/>
+			</arguments>
+		</element>
+		<element name="makeReadonly" function="true" type="Object">
+			<arguments>
+				<argument type="Object"/>
 			</arguments>
 		</element>
@@ -2482,7 +2539,7 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string" default="joint"/>
-		<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"/>
-		<element name="vb" type="float" min="0" max="1" default="1.0" flags="1024"/>
+		<element name="vr" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Loader" context="Global context">
@@ -2678,5 +2735,7 @@
 		<element name="z" type="float"/>
 		<element name="pos" type="XYZ" flags="1"/>
-		<element name="m" type="float"/>
+		<element name="m" type="float">
+			<description><![CDATA[The mass of a MechPart is the same as the mass of its corresponding Part and cannot be changed. For f0, the mass of each Part is calculated as the number of its incident Joints. For f0s, the mass of each Part is calculated internally as its density*volume.]]></description>
+		</element>
 		<element name="s" type="float"/>
 		<element name="vol" type="float"/>
@@ -2743,15 +2802,15 @@
 		<element name="numneurons" type="integer" flags="259"/>
 		<element name="numconnections" type="integer" flags="259"/>
-		<element name="getPart" function="true" type="Part" flags="288">
+		<element name="getPart" function="true" type="Part" flags="289">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getJoint" function="true" type="Joint" flags="288">
+		<element name="getJoint" function="true" type="Joint" flags="289">
 			<arguments>
 				<argument name="index" type="integer"/>
 			</arguments>
 		</element>
-		<element name="getNeuroDef" function="true" type="NeuroDef" flags="288">
+		<element name="getNeuroDef" function="true" type="NeuroDef" flags="289">
 			<arguments>
 				<argument name="index" type="integer"/>
@@ -2770,5 +2829,5 @@
 		<element name="bboxSize" type="XYZ" flags="257"/>
 		<element name="numcheckpoints" type="integer" flags="259"/>
-		<element name="getCheckpoint" function="true" type="Model" flags="288">
+		<element name="getCheckpoint" function="true" type="Model" flags="289">
 			<description><![CDATA[Checkpoint Model objects are only valid as long as the parent Model object exists.
 See also: Model.newWithCheckpoints()
@@ -2799,6 +2858,6 @@
 var mg=ModelGeometry.forModel(GenePools[0][0].getModel()); mg.geom_density=2; GenePools[0][0].data->area=mg.area();
 ]]></description>
-		<element name="geom_density" type="float" min="0.01" max="100" default="1.0">
-			<description><![CDATA[Affects the geometry calculation precision]]></description>
+		<element name="geom_density" type="float" min="0.01" max="100" default="3.0">
+			<description><![CDATA[The number of samples (per unit length in one dimension) that affects the precision of estimation of geometrical properties.]]></description>
 		</element>
 		<element name="forModel" function="true" type="ModelGeometry" flags="32">
@@ -2810,4 +2869,7 @@
 		<element name="volume" function="true" type="float" flags="288"><arguments/></element>
 		<element name="area" function="true" type="float" flags="288"><arguments/></element>
+		<element name="voxels" function="true" type="Vector" flags="288">
+			<description><![CDATA[Returns a Vector of Pt3D objects from a regular 3D grid (sampled according to ModelGeometry.geom_density) that are inside of the Model body (Parts and Joints).]]></description>
+<arguments/></element>
 		<element name="sizesAndAxes" function="true" type="Vector" flags="288">
 			<description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
@@ -3608,10 +3670,10 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string" default="part"/>
-		<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"/>
-		<element name="vb" type="float" min="0" max="1" default="1.0" flags="1024"/>
+		<element name="vr" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Population" context="Global context">
-<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><![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 (e.g. Creatures groups and Food group in standard.expdef).
 You can iterate directly over Creatures in a Population using for(...in...) loops:
 	for(var c in Populations[0]) Simulator.print(c.name);]]></description>
@@ -3629,5 +3691,5 @@
 		</element>
 		<element name="initial_nn_active" type="integer" min="0" max="2" default="1">
-			<description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
+			<description><![CDATA[Stabilization means no significant movement during a specified period of time. See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
 		</element>
 		<element name="nn_paused" type="integer" min="0" max="1" default="0">
@@ -3635,5 +3697,5 @@
 		</element>
 		<element name="perfperiod" type="integer" min="0" max="1000000" default="100">
-			<description><![CDATA[Defines how often onUpdate() events are called and how often the built-in performance counters (distance, speed, etc.) are calculated.]]></description>
+			<description><![CDATA[Defines how often onUpdate() events are called and how often the built-in performance counters (distance, speed, etc.) are calculated. See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
 		</element>
 		<element name="stabilperiod" type="integer" min="0" max="1000000" default="100">
@@ -3650,5 +3712,5 @@
 		</element>
 		<element name="initial_perf_measuring" type="integer" min="0" max="2" default="1">
-			<description><![CDATA[Stabilization means no significant movement during a specified period of time.]]></description>
+			<description><![CDATA[Stabilization means no significant movement during a specified period of time. See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
 		</element>
 		<element name="colmask" type="integer" min="0" max="65535" default="0" deprecated="true" flags="8224">
@@ -4976,8 +5038,8 @@
 Thus, if both parents have the same number of neurons, then this will be preserved in their children.]]></description>
 		</element>
-		<element name="f1_smX" type="float" min="0" max="100" default="0.05"/>
-		<element name="f1_smJunct" type="float" min="0" max="100" default="0.02"/>
-		<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">
+		<element name="f1_smX" type="float" min="0" max="100" default="2.0"/>
+		<element name="f1_smJunct" type="float" min="0" max="100" default="2.0"/>
+		<element name="f1_smComma" type="float" min="0" max="100" default="0.5"/>
+		<element name="f1_smModif" type="float" min="0" max="100" default="2.5">
 			<description><![CDATA[Modifiers: LlRrCcQqFfMmIiEeWwAaSsDdGgBb]]></description>
 		</element>
@@ -4986,15 +5048,15 @@
 (all: LlRrCcQqFfMmIiEeWwAaSsDdGgBb)]]></description>
 		</element>
-		<element name="f1_nmNeu" type="float" min="0" max="100" default="0.05">
+		<element name="f1_nmNeu" type="float" min="0" max="100" default="2.0">
 			<description><![CDATA[Adds a (connected) neuron or removes a neuron]]></description>
 		</element>
-		<element name="f1_nmConn" type="float" min="0" max="100" default="0.1">
-			<description><![CDATA[]]></description>
-		</element>
-		<element name="f1_nmProp" type="float" min="0" max="100" default="0.1">
+		<element name="f1_nmConn" type="float" min="0" max="100" default="1.5">
+			<description><![CDATA[]]></description>
+		</element>
+		<element name="f1_nmProp" type="float" min="0" max="100" default="1.0">
 			<description><![CDATA[]]></description>
 		</element>
 		<element name="f1_nmWei" type="float" min="0" max="100" default="1.0"/>
-		<element name="f1_nmVal" type="float" min="0" max="100" default="0.05"/>
+		<element name="f1_nmVal" type="float" min="0" max="100" default="1.5"/>
 		<element name="f2_mutAddOper" type="float" min="0" max="1" default="0.4">
 			<description><![CDATA[]]></description>
@@ -5118,6 +5180,6 @@
 			<description><![CDATA[mutation: probability of deleting a production]]></description>
 		</element>
-		<element name="f9_mut" type="float" min="0" max="1" default="0.1">
-			<description><![CDATA[How many genes should be mutated during single mutation (1=all genes, 0.1=ten percent)]]></description>
+		<element name="f9_mut" type="float" min="0" max="1" default="0.0">
+			<description><![CDATA[How many genes should be mutated during a single mutation (1=all genes, 0.1=ten percent, 0=one gene)]]></description>
 		</element>
 		<element name="fF_xover" type="float" min="0.5" max="1" default="0.5">
@@ -5180,5 +5242,5 @@
 		</element>
 		<element name="fH_mut_add_connection" type="float" min="0" max="1" default="0.33">
-			<description><![CDATA[Probability of adding new connection handle]]></description>
+			<description><![CDATA[Probability of adding new neuron connection handle]]></description>
 		</element>
 		<element name="fH_mut_deletion" type="float" min="0" max="1" default="0.1">
@@ -5685,5 +5747,5 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="simil_samples_num" type="integer" min="1" max="1048576" default="1048576">
+		<element name="simil_samples_num" type="integer" min="1" max="1048576" default="10000">
 			<description><![CDATA[]]></description>
 		</element>
@@ -5728,6 +5790,6 @@
 		<element name="symResultC" type="float" flags="35"/>
 		<element name="symResultD" type="float" flags="35"/>
-		<element name="geom_density" type="float" min="0.01" max="100" default="1.0">
-			<description><![CDATA[Affects the geometry calculation precision]]></description>
+		<element name="geom_density" type="float" min="0.01" max="100" default="3.0">
+			<description><![CDATA[The number of samples (per unit length in one dimension) that affects the precision of estimation of geometrical properties.]]></description>
 		</element>
 		<element name="forModel" function="true" type="ModelGeometry" flags="32">
@@ -5739,4 +5801,7 @@
 		<element name="volume" function="true" type="float" flags="288"><arguments/></element>
 		<element name="area" function="true" type="float" flags="288"><arguments/></element>
+		<element name="voxels" function="true" type="Vector" flags="288">
+			<description><![CDATA[Returns a Vector of Pt3D objects from a regular 3D grid (sampled according to ModelGeometry.geom_density) that are inside of the Model body (Parts and Joints).]]></description>
+<arguments/></element>
 		<element name="sizesAndAxes" function="true" type="Vector" flags="288">
 			<description><![CDATA[The returned vector contains XYZ (sizes) and Orient (axes) objects.]]></description>
@@ -5770,5 +5835,5 @@
 			<description><![CDATA[]]></description>
 		</element>
-		<element name="simil_samples_num" type="integer" min="1" max="1048576" default="1048576">
+		<element name="simil_samples_num" type="integer" min="1" max="1048576" default="10000">
 			<description><![CDATA[]]></description>
 		</element>
@@ -6509,4 +6574,14 @@
 			</arguments>
 		</element>
+		<element name="urlEncode" function="true" type="string">
+			<arguments>
+				<argument type="string"/>
+			</arguments>
+		</element>
+		<element name="urlDecode" function="true" type="string">
+			<arguments>
+				<argument type="string"/>
+			</arguments>
+		</element>
 		<element name="SERIALIZATION_PREFIX" type="string" flags="1">
 			<description><![CDATA[String prefix used in the Framsticks file format to indicate object fields that contain serialized objects.]]></description>
@@ -6584,5 +6659,5 @@
 			</arguments>
 		</element>
-		<element name="get" function="true" type="untyped" flags="256">
+		<element name="get" function="true" type="untyped" flags="257">
 			<description><![CDATA[object[position] can be always used instead of object.get(position)]]></description>
 			<arguments>
@@ -6608,5 +6683,5 @@
 			</arguments>
 		</element>
-		<element name="find" function="true" type="integer" flags="256">
+		<element name="find" function="true" type="integer" flags="257">
 			<description><![CDATA[returns the element index or -1 if not found]]></description>
 			<arguments>
@@ -6632,5 +6707,5 @@
 		</element>
 		<element name="iterator" type="Object" flags="257"/>
-		<element name="clone" function="true" type="Vector" flags="256">
+		<element name="clone" function="true" type="Vector" flags="257">
 			<description><![CDATA[The resulting clone is a shallow copy (contains the same object references as the original). A deep copy can be obtained through serialization: String.deserialize(String.serialize(object));]]></description>
 <arguments/></element>
@@ -6823,5 +6898,5 @@
 			</arguments>
 		</element>
-		<element name="clone" function="true" type="XYZ" flags="256">
+		<element name="clone" function="true" type="XYZ" flags="257">
 			<description><![CDATA[Note: copying object references does not create new objects. Use clone() if a new object is needed.
 
@@ -6876,5 +6951,5 @@
 			</arguments>
 		</element>
-		<element name="get" function="true" type="float" flags="256">
+		<element name="get" function="true" type="float" flags="257">
 			<description><![CDATA[this function makes the XYZ objects "indexable" (so you can use [] for accessing subsequent fields, like in Vector)]]></description>
 			<arguments>
@@ -7170,12 +7245,18 @@
 		</element>
 		<element name="lifespan" type="float">
-			<description><![CDATA[Average life span]]></description>
+			<description><![CDATA[See Creature.lifespan]]></description>
 		</element>
 		<element name="velocity" type="float">
-			<description><![CDATA[Average velocity]]></description>
-		</element>
-		<element name="distance" type="float"/>
-		<element name="vertvel" type="float"/>
-		<element name="vertpos" type="float"/>
+			<description><![CDATA[See Creature.velocity]]></description>
+		</element>
+		<element name="distance" type="float">
+			<description><![CDATA[See Creature.distance]]></description>
+		</element>
+		<element name="vertvel" type="float">
+			<description><![CDATA[See Creature.vertvel]]></description>
+		</element>
+		<element name="vertpos" type="float">
+			<description><![CDATA[See Creature.vertpos]]></description>
+		</element>
 		<element name="fit" type="float" flags="3"/>
 		<element name="fit2" type="float" flags="3">
@@ -7199,5 +7280,5 @@
 -1 = validity is not known. This is a transient state. The value of "is_valid" will never be -1 when read. It is safe to treat is_valid as boolean in statements like "if (g.is_valid) ...". Setting "is_valid=-1" will make it 0 or 1 again. This third state (-1) is only needed for loading Genotype objects from files where the "is_valid" field might not be present.]]></description>
 		</element>
-		<element name="getNormalized" function="true" type="float" flags="32">
+		<element name="getNormalized" function="true" type="float" flags="33">
 			<arguments>
 				<argument name="property name or index" type="untyped"/>
@@ -7211,5 +7292,5 @@
 See also: num]]></description>
 		</element>
-		<element name="getModel" function="true" type="Model" flags="32"><arguments/></element>
+		<element name="getModel" function="true" type="Model" flags="33"><arguments/></element>
 		<element name="splitInstances" function="true" type="void" flags="32"><arguments/></element>
 		<element name="newFromString" function="true" type="Genotype" flags="32">
@@ -7240,5 +7321,5 @@
 			</arguments>
 		</element>
-		<element name="clone" function="true" type="Genotype" flags="32">
+		<element name="clone" function="true" type="Genotype" flags="33">
 			<description><![CDATA[Returns a duplicated genotype, not attached to any gene pool. All genotype fields are copied including 'data' (for which Dictionary.clone() produces a shallow copy).]]></description>
 <arguments/></element>
@@ -7327,11 +7408,25 @@
 			<description><![CDATA["Lifespan" is the period during simulation of a creature when its performance measurement is enabled.]]></description>
 		</element>
-		<element name="distance" type="float"/>
-		<element name="c_velocity" type="float"/>
-		<element name="c_vertvelocity" type="float"/>
-		<element name="c_vertpos" type="float"/>
-		<element name="velocity" type="float"/>
-		<element name="vertpos" type="float"/>
-		<element name="vertvel" type="float"/>
+		<element name="distance" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_velocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_vertvelocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="c_vertpos" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="velocity" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="vertpos" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
+		<element name="vertvel" type="float">
+			<description><![CDATA[See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
+		</element>
 		<element name="pos_x" type="float" deprecated="true" flags="8195">
 			<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>
@@ -7372,5 +7467,5 @@
 		</element>
 		<element name="centerOfGravity" type="XYZ" flags="3">
-			<description><![CDATA[Only updated once every 'perfperiod' steps!]]></description>
+			<description><![CDATA[Only updated once every 'perfperiod' steps! See http://www.framsticks.com/a/al_params.html#exper-perfcalc]]></description>
 		</element>
 		<element name="numparts" type="integer" flags="3"/>
@@ -7774,7 +7869,7 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string" default="joint"/>
-		<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"/>
-		<element name="vb" type="float" min="0" max="1" default="1.0" flags="1024"/>
+		<element name="vr" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Loader" context="Visual style definition">
@@ -7882,7 +7977,7 @@
 		<element name="i" type="string"/>
 		<element name="Vstyle" type="string" default="part"/>
-		<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"/>
-		<element name="vb" type="float" min="0" max="1" default="1.0" flags="1024"/>
+		<element name="vr" type="float" min="0" max="1" default="0.5"/>
+		<element name="vg" type="float" min="0" max="1" default="0.5" flags="1024"/>
+		<element name="vb" type="float" min="0" max="1" default="0.5" flags="1024"/>
 	</type>
 	<type name="Scene" context="Visual style definition">
@@ -8142,90 +8237,4 @@
 		</element>
 	</type>
-	<type name="World" context="Visual style definition">
-<description><![CDATA[Environment properties.]]></description>
-		<element name="wrldtyp" type="integer" min="0" max="2" default="0"/>
-		<element name="wrldsiz" type="float" min="10" max="10000" default="20.0">
-			<description><![CDATA[Side length of the world]]></description>
-		</element>
-		<element name="wrldmap" type="string">
-			<description><![CDATA[Description of the world (only applies to world types: "Blocks" or "Height field").
-To generate a random landscape, use:
-   r[scaling] <sizex> <sizey> [seed]
-To generate a custom landscape, provide height values:
-   m[scaling] <sizex> <sizey> digits...
- or
-   M[scaling] <sizex> <sizey> numbers...
-
-"digits..." is a sequence of integer values 0,1,2,..,9. You may also use '-' and '|' characters for smooth slides between blocks.
-"numbers..." is a sequence of floating point values, so the "M" option provides more freedom.
-[scaling] is an optional linear scaling expression in the form of *FACTOR+OFFSET or *FACTOR-OFFSET, for example "r*0.1-2 5 5" creates a 5x5 random map with a 10% amplitude, shifted down by 2.
-
-See also the WorldMap object.]]></description>
-		</element>
-		<element name="wrldwat" type="float" min="-20" max="200" default="-1.0"/>
-		<element name="wrldbnd" type="integer" min="0" max="2" default="0">
-			<description><![CDATA[Teleporting a creature that is outside of the world area is attempted every 'performance sampling period' steps. Teleport succeeds only when the target location in the world is empty (there is no collision).]]></description>
-		</element>
-		<element name="wrldg" type="float" min="0" max="10" default="1.0">
-			<description><![CDATA[You can adjust gravity for your experiments.
-The "official" setting used to evaluate and compare creatures is 1.]]></description>
-		</element>
-		<element name="wrldchg" function="true" type="void" flags="32"><arguments/></element>
-		<element name="simtype" type="integer" min="0" max="1" default="0">
-			<description><![CDATA[MechaStick is a fast and simple primary Framsticks simulation engine.
-ODE is Open Dynamics Engine by Russel Smith et al.
-
-NOTE: switching between simulation engines causes removal of all objects in the world (e.g. creatures).]]></description>
-		</element>
-		<element name="nnspeed" type="float" min="0" max="1000" default="1.0">
-			<description><![CDATA[Number of neural network simulation steps in each physics simulation step]]></description>
-		</element>
-		<element name="rndcollisions" type="integer" min="0" max="1" default="1">
-			<description><![CDATA[When enabled, custom collision handlers are invoked in random order. This can help remove unfair bias in some experiments - for example where the same collision order in each simulation step would cause some creatures colliding with food to consume energy while other colliding creatures would starve.]]></description>
-		</element>
-		<element name="signals" type="WorldSignals" flags="35"/>
-	</type>
-	<type name="WorldMap" context="Visual style definition">
-<description><![CDATA[Environment details for "Blocks" and "Heightfield" world type. The most important concept is a "Map", which is the array of Map elements. Internally, Maps have more elements than could be deduced from the user-supplied World.wrldsiz, as additional rows of element are added to provide smooth transitions to the flat surroundings.
-
-Blocks: x/ysize=World.wrldsiz+4 rows of blocks (from which only 2+World.wrldsiz rows are placed within the world boundaries)
-
-Smooth: x/ysize=World.wrldsiz+2 rows of vertices (creating World.wrldsiz+1 rows of triangles, everything within the world boundaries)
-]]></description>
-		<element name="xsize" type="integer" flags="1"/>
-		<element name="ysize" type="integer" flags="1"/>
-		<element name="getHeight" function="true" type="float">
-			<description><![CDATA[Height at any 2d coordinate]]></description>
-			<arguments>
-				<argument name="x" type="float"/>
-				<argument name="y" type="float"/>
-			</arguments>
-		</element>
-		<element name="getMap" function="true" type="Object">
-			<description><![CDATA[retrieve map cell object]]></description>
-			<arguments>
-				<argument name="x" type="integer"/>
-				<argument name="y" type="integer"/>
-			</arguments>
-		</element>
-		<element name="intersect" function="true" type="Vector">
-			<description><![CDATA[Calculate the intersection point between the world surface and the ray projected from "3d point" towards the given direction. 3D points are actually 3-elements Vector objects. The resulting vector contains the additional fourth element - the intersection point distance. The function returns null if there is no intersection.
-
-See "standard_events.inc" file, which uses "intersect" for calculating the world coordinates corresponding to the user-clicked screen location.
-Bugs: This function does not currently handle the heightfield environment correctly (works as if it was flat)]]></description>
-			<arguments>
-				<argument name="3d point" type="Vector"/>
-				<argument name="3d direction" type="Vector"/>
-				<argument name="range" type="float"/>
-			</arguments>
-		</element>
-		<element name="intersect" function="true" type="Vector">
-			<description><![CDATA[Works like intersect(3d point,3d direction,range) for inifinite range, that is without limiting the intersection distance]]></description>
-			<arguments>
-				<argument name="3d point" type="Vector"/>
-				<argument name="3d direction" type="Vector"/>
-			</arguments>
-		</element>
-	</type>
 	<type name="Signal" context="Signal label formula">
 		<element name="value" type="untyped" flags="1">
@@ -8287,5 +8296,5 @@
 	</type>
 	<type name="CLI" context="Command line interface">
-<description><![CDATA[Commandline support functions.]]></description>
+<description><![CDATA[Command-line support functions.]]></description>
 		<element name="script" type="string"/>
 		<element name="execute" function="true" type="void">
@@ -8325,4 +8334,9 @@
 		</element>
 		<element name="listMacros" function="true" type="void"><arguments/></element>
+		<element name="findAndExpandMacro" function="true" type="string">
+			<arguments>
+				<argument name="text" type="string"/>
+			</arguments>
+		</element>
 		<element name="stdin" type="Object" flags="3"/>
 		<element name="stdout" type="Object" flags="3"/>
@@ -8478,5 +8492,5 @@
 		<element name="newCreatureCharts" function="true"/>
 		<element name="newSimStatsCharts" function="true"/>
-		<element name="user_interaction" type="integer" min="0" max="31" default="31">
+		<element name="user_interaction" type="integer" min="0" max="255" default="127">
 			<description><![CDATA[Bit field:
 1 - menu access
@@ -8485,5 +8499,8 @@
 8 - select creatures
 16 - change ShowManager options in menu (including switching shows)
-Bits 2-16 are not implemented in the old Framsticks Theater application.]]></description>
+32 - change display mode (normal/VR/AR)
+64 - extract genotype
+128 - change display mode buttons visibility
+Bits 2-128 are not implemented in the old Framsticks Theater application.]]></description>
 		</element>
 		<element name="world_visibility" type="integer" min="0" max="31" default="31">
@@ -8502,4 +8519,8 @@
 			<description><![CDATA[Not implemented in the old Framsticks Theater application.]]></description>
 		</element>
+		<element name="menu_group" type="string">
+			<description><![CDATA[Default empty value means all groups. Groups can be also displayed as submenus by adding action parameters having ids of "showgroup_TheNameOfTheGroupToShow".
+Not implemented in the old Framsticks Theater application.]]></description>
+		</element>
 		<element name="back_action" type="string">
 			<description><![CDATA[Not implemented in the old Framsticks Theater application.]]></description>
@@ -8614,4 +8635,10 @@
 			<arguments>
 				<argument name="name" type="string"/>
+			</arguments>
+		</element>
+		<element name="newMenu" function="true" type="GUIElement">
+			<arguments>
+				<argument name="name" type="string"/>
+				<argument name="menu items" type="Object"/>
 			</arguments>
 		</element>
@@ -8725,4 +8752,10 @@
 			</arguments>
 		</element>
+		<element name="getItemGUI" function="true" type="untyped">
+			<description><![CDATA[Returns null if the requested item is scrolled out of view.]]></description>
+			<arguments>
+				<argument name="index" type="integer"/>
+			</arguments>
+		</element>
 		<element name="removeItem" function="true" type="void">
 			<arguments>
@@ -8807,5 +8840,5 @@
 			<description><![CDATA[Button: 0=regular, 1=borderless
 List: 0=regular, 1=invisible selection
-Textfield: 0=dark border, 1=bright border]]></description>
+Textfield: 0=dark border, 1=bright borderModel: 0=no shadow, 1=with shadow]]></description>
 		</element>
 		<element name="feedback" type="integer"/>
@@ -8843,4 +8876,21 @@
 				<argument name="duration" type="float"/>
 			</arguments>
+		</element>
+		<element name="gui_owner" type="GUIElement" flags="1">
+			<description><![CDATA[GUIElement that owns this GUIElement's GUIContext.
+Multiple GUI context are currently only used for list items, with each item creating independent GUI namespace.
+Example:
+function onGUIEvent(elem, arg)
+{
+Simulator.print("clicked "+elem.name);
+Simulator.print("inside item #"+elem.gui_owner_item+" in the list "+elem.gui_owner.name);
+}
+]]></description>
+		</element>
+		<element name="gui_owner_item" type="integer" flags="1">
+			<description><![CDATA[Index of the list item element owning this GUIElement's GUIContext. Valid when gui_owner is a list.]]></description>
+		</element>
+		<element name="gui" type="untyped" flags="1">
+			<description><![CDATA[GUIContext of this GUIElement]]></description>
 		</element>
 	</type>
@@ -8880,5 +8930,5 @@
 		<element name="shine" type="integer" flags="256"/>
 		<element name="texture" type="string" flags="256"/>
-		<element name="shader" type="Shader" flags="256"/>
+		<element name="shader" type="string" flags="256"/>
 	</type>
 	<type name="Matrix" context="Framsticks Theater">
@@ -8989,5 +9039,5 @@
 		<element name="get" function="true" type="Obj3D" flags="256">
 			<arguments>
-				<argument name="index" type="integer"/>
+				<argument name="or name" type="untyped"/>
 			</arguments>
 		</element>
@@ -9040,14 +9090,4 @@
 			</arguments>
 		</element>
-	</type>
-	<type name="Shader" context="Framsticks Theater">
-<description><![CDATA[Shader object]]></description>
-		<element name="new" function="true" type="Shader">
-			<arguments>
-				<argument name="flags" type="integer"/>
-			</arguments>
-		</element>
-		<element name="vertex" type="string" flags="256"/>
-		<element name="fragment" type="string" flags="256"/>
 	</type>
 	<type name="Sharing" context="Framsticks Theater">
