Index: experiments/frams/foraminifera/data/scripts/foraminifera.expdef
===================================================================
--- experiments/frams/foraminifera/data/scripts/foraminifera.expdef	(revision 1100)
+++ experiments/frams/foraminifera/data/scripts/foraminifera.expdef	(revision 1152)
@@ -30,5 +30,4 @@
 global changePeriod;
 global phase;
-global nutrientSqrCm;
 global species_genes;
 global max_chambers_def;
@@ -38,4 +37,5 @@
 global nutrient_num_counter;
 global wrldsizSquareMeters;
+const MIN_PART_SIZE = 0.05; //to avoid exceeding the allowed Part.size range when setting radius of body parts
 
 @include "foraminifera.inc"
@@ -86,5 +86,4 @@
 	World.wrldwat = 200;
 	World.wrldsiz = micronsToFrams(100000);
-	wrldsizSquareMeters = Math.pow(framsToMicrons(World.wrldsiz) * 0.000001, 2);
 	World.wrldbnd = 1;
 
@@ -95,5 +94,5 @@
 
 	//morphology
-	ExpProperties.zone1_range = micronsToFrams(1000);
+	ExpProperties.zone1_range = 5; //originally was micronsToFrams(1000); but this was exceeding the allowed Part.size range so was decreased to 5. TODO This change in reticulopodia size may slightly affect simulation and results, so verify/rethink/reimplement if using this expdef in further research.
 	ExpProperties.zone2_range = micronsToFrams(3000);
 	ExpProperties.chamber_proculus_haplo = micronsToFrams(20);
@@ -106,6 +105,4 @@
 	ExpProperties.nutrientradius = micronsToFrams(10);
 	ExpProperties.energy_nut = 200 * energyFromVolume(ExpProperties.nutrientradius, 1);
-	nutrientSqrCm = 10;
-	ExpProperties.nutrient_pop = Math.pow(framsToMicrons(World.wrldsiz) * 0.0001, 2) / nutrientSqrCm;
 
 	ExpState.totaltestedcr = 0;
@@ -125,4 +122,5 @@
 function onExpInit()
 {
+	wrldsizSquareMeters = Math.pow(framsToMicrons(World.wrldsiz) * 0.000001, 2);
 	species_genes = [];
 	foram_uid = 0;
@@ -398,5 +396,8 @@
 		Populations[2].delete(cr.data->reticulopodiacreature);
 	}
-	var ret = Populations[2].add("//0s\nm:Vstyle=reticulopodia\np:sh=1,sx=0.001,sy=0.001,sz=0.001\np:sh=3,sx=0.01,sy=" + radius + ",sz=" + radius + ",ry=1.57079633,vr=" + curColor + "\nj:0, 1, sh=1");
+	radius = Math.max(radius, MIN_PART_SIZE);
+	var ret = Populations[2].add("//0s\nm:Vstyle=reticulopodia\np:sh=1,sx=" + MIN_PART_SIZE + ",sy=" + MIN_PART_SIZE + ",sz=" + MIN_PART_SIZE + "\n" +
+		"p:sh=3,sx=" + MIN_PART_SIZE + ",sy=" + radius + ",sz=" + radius + ",ry=1.57079633,vr=" + curColor + "\n" + 
+		"j:0, 1, sh=1");
 	cr.data->reticulopodiacreature = ret;
 	ret.getMechPart(0).orient.set(cr.getMechPart(0).orient);
Index: experiments/frams/foraminifera/data/scripts/foraminifera.inc
===================================================================
--- experiments/frams/foraminifera/data/scripts/foraminifera.inc	(revision 1100)
+++ experiments/frams/foraminifera/data/scripts/foraminifera.inc	(revision 1152)
@@ -19,4 +19,5 @@
 				rgbstring = "0.9,0.9,0.9,i=\"growing=%g\"" % lastchambergrowth; //when the last chamber is growing, make it bright gray and add extra information in its "i" field
 		}
+		effectivesize = Math.max(effectivesize, MIN_PART_SIZE);
 		str += "p:sh=1,sx=%g,sy=%g,sz=%g,rz=3.14159265358979,vr=%s\n" % effectivesize % effectivesize % effectivesize % rgbstring;
 		if (i > 0)
Index: experiments/frams/foraminifera/data/scripts/foraminifera.show
===================================================================
--- experiments/frams/foraminifera/data/scripts/foraminifera.show	(revision 1100)
+++ experiments/frams/foraminifera/data/scripts/foraminifera.show	(revision 1152)
@@ -18,9 +18,17 @@
 function onLoad()
 {
+	// Since Theater is mostly for demos and visualization, we make the world smaller (than set by expdef) for clarity, and adjust other parameters accordingly
+	World.wrldsiz = 100;
 	var nutrient_multiple = 200;
-	Params = { "foodflux" : [0.0000000037815, 0.0000000075631, 0.000000015126], "feedtrans" : [0.0005, 0.001, 0.002], "energy_nut" : [nutrient_multiple * 144.54, nutrient_multiple * 544.54, nutrient_multiple * 944.54], "stress" : [0, 1], "visualize" : [0, 1]};
-	ShowProperties.visualize = 1;
+	Params = { "foodflux" : [0.000000037815, 0.000000075631, 0.00000015126], "feedtrans" : [0.0005, 0.001, 0.002], "energy_nut" : [nutrient_multiple * 144.54, nutrient_multiple * 544.54, nutrient_multiple * 944.54], "stress" : [0, 1], "visualize" : [0, 1]}; //a set of smaller food fluxes because of the smaller world
+	//larger initial energies result in fewer individuals that do not overcrowd the small world:
+	ExpProperties.energies0_haplo = 60;
+	ExpProperties.energies0_diplo = 3.75;
+	ShowProperties_foodflux_set(); //force call of the value change handler
+
+	ShowProperties.visualize = 1; //calls value change handler
 	ExpProperties.secPerStep = 50;
-	Simulator.init();
+
+	Simulator.init(); //calculates some parameters based on the current world size
 	last_simspeed = 0;
 	GLDisplay.desiredsimspeed = 50;
