diff --git a/Physics/MovingParticles_simulation.json b/Physics/MovingParticles_simulation.json
new file mode 100644
index 0000000000000000000000000000000000000000..0fe55e760b857a4de4420df3d89931e584c23e31
--- /dev/null
+++ b/Physics/MovingParticles_simulation.json
@@ -0,0 +1,20 @@
+{
+    "activations": [
+        {
+            "id": "$setup_constants",
+            "execute": "$setup_constants"
+        },
+        {
+            "id": "$initialise_machine",
+            "execute": "$initialise_machine",
+            "activating": "Move"
+        },
+        {
+            "id": "Move",
+            "execute": "Move",
+            "after": 100,
+            "probabilisticVariables": "uniform",
+            "activating": "Move"
+        }
+    ]
+}
diff --git a/Physics/SolarSystem.mch b/Physics/SolarSystem.mch
new file mode 100644
index 0000000000000000000000000000000000000000..6723e649285b20f1a29064d2d980bc9e4904be88
--- /dev/null
+++ b/Physics/SolarSystem.mch
@@ -0,0 +1,49 @@
+MACHINE SolarSystem
+// Encoding of an n-body problem in B using the REAL datatype
+INCLUDES MovingParticles PROMOTES Move
+DEFINITIONS
+  VISB_JSON_FILE == "three_bodies.json";
+  NOBJS == 9;
+  SCALE == 5.0e11; // 100 % in visualisation
+  SCALE100 == (SCALE/100.0);
+  SPEED_MULTIPLIER == 1000000.0;
+  GRAV_MULTIPLIER == 1000000000000.0;
+  MAXMASS == 1.989e30;
+  "SORT.def";
+  gravitation == %i.(i:OBJ | sigma_vecs(
+                              SQUASH(
+                               %j.(j:OBJ & j/=i |
+                                times_vec( force_between(i,j,pos(i),pos(j)) / mass(i) ,
+                                           unit_vec(delta_vec(pos(j),pos(i)))))
+                                     )  ) ) // acceleration due to gravitation
+PROPERTIES
+   nobjs = NOBJS & 
+   /*@label "mass_values" */ mass = [1.989e30, 3.30e23, 4.87e24, 5.97e24, 0.64e24, 1898.19e24, 568.34e24, 86.81e24, 102.41e24]
+    /*@desc "The mass of the 9 objects" */
+   &
+   initial_pos =   [ make_vec([0.0,0.0])    ,  make_vec([0.0,57.91e9]),   make_vec([0.0,108.21e9]),  
+                     make_vec([0.0,149.6e9]), make_vec([0.0,227.92e9]),  make_vec([0.0,778.57e9]),
+                     make_vec([0.0,1433.53e9]), make_vec([0.0,2872.46e9]), make_vec([0.0,4495.06e9])]  &
+   initial_speed = [ make_vec([0.0,0.0]),      make_vec([4.736e04,0.0]),   make_vec([3.5e04,0.0]),
+                     make_vec([2.98e04,0.0]),  make_vec([2.41e04,0.0]),   make_vec([1.3e04,0.0]),
+                     make_vec([0.97e04,0.0]),  make_vec([0.68e04,0.0]),   make_vec([0.54e04,0.0])  ] 
+
+//orbital_entities[0] = { 0.0,0.0,0.0,        0.0,0.0,0.0,        1.989e30 }; // a star similar to the sun
+//orbital_entities[1] = { 57.909e9,0.0,0.0,   0.0,47.36e3,0.0,    0.33011e24 }; // a planet similar to mercury
+//orbital_entities[2] = { 108.209e9,0.0,0.0,  0.0,35.02e3,0.0,    4.8675e24 }; // a planet similar to venus
+//orbital_entities[3] = { 149.596e9,0.0,0.0,  0.0,29.78e3,0.0,    5.9724e24 }; // a planet similar to earth
+//orbital_entities[4] = { 227.923e9,0.0,0.0,  0.0,24.07e3,0.0,    0.64171e24 }; // a planet similar to mars
+//orbital_entities[5] = { 778.570e9,0.0,0.0,  0.0,13e3,0.0,       1898.19e24 }; // a planet similar to jupiter
+//orbital_entities[6] = { 1433.529e9,0.0,0.0, 0.0,9.68e3,0.0,     568.34e24 }; // a planet similar to saturn
+//orbital_entities[7] = { 2872.463e9,0.0,0.0, 0.0,6.80e3,0.0,     86.813e24 }; // a planet similar to uranus
+//orbital_entities[8] = { 4495.060e9,0.0,0.0, 0.0,5.43e3,0.0,     102.413e24 }; // a planet similar to neptune
+
+END
+
+/*
+ 3 
+ 1.25e11 
+ 0.0e00  0.0e00 0.05e04 0.0e00 5.97e24 
+ 0.0e00  4.5e10  3.0e04 0.0e00 1.989e30 
+ 0.0e00 -4.5e10 -3.0e04 0.0e00 1.989e30 
+*/
\ No newline at end of file
diff --git a/Physics/n_bodies.svg b/Physics/n_bodies.svg
index 1f4f045b8e99df2f0fb5e01424c308f188120f8d..462cd666f0f1c55f8c093d307b556f8b675c1593 100644
--- a/Physics/n_bodies.svg
+++ b/Physics/n_bodies.svg
@@ -1,29 +1,29 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg 
+<svg
    xmlns="http://www.w3.org/2000/svg"
-   height="400" width="400"
-   viewBox="-100 -100 200 200"
+   height="1200" width="400"
+   viewBox="-100 -100 200 1100"
    >
-  
-   
+
+
    <defs>
-    <marker id="arrowhead" markerWidth="10" markerHeight="7" 
+    <marker id="arrowhead" markerWidth="10" markerHeight="7"
     refX="0" refY="3.5" orient="auto">
       <polygon points="0 0, 10 3.5, 0 7" />
     </marker>
-    
-    <marker id="startarrow" markerWidth="10" markerHeight="7" 
+
+    <marker id="startarrow" markerWidth="10" markerHeight="7"
     refX="10" refY="3.5" orient="auto">
       <polygon points="10 0, 10 7, 0 3.5" fill="green" />
     </marker>
-    
-    <marker id="endarrow" markerWidth="10" markerHeight="7" 
+
+    <marker id="endarrow" markerWidth="10" markerHeight="7"
     refX="0" refY="3.5" orient="auto">
       <polygon points="0 0, 10 3.5, 0 7"  fill="green" />
     </marker>
   </defs>
-  
-  
 
-    
-</svg> 
+
+
+
+</svg>
diff --git a/VisB-Examples.prob2project b/VisB-Examples.prob2project
index f10a67c0ec2a282ace46406c7964767b8381f6c3..51b36dd756febdb22ab8137df7ff5fcde289e0a6 100644
--- a/VisB-Examples.prob2project
+++ b/VisB-Examples.prob2project
@@ -7,7 +7,8 @@
       "description": "",
       "location": "Button/button.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [
@@ -36,7 +37,8 @@
       "description": "",
       "location": "N-Queens/QueensWithEvents.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [
@@ -72,7 +74,8 @@
       "description": "",
       "location": "Reals/Grapher.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -90,7 +93,8 @@
       "description": "",
       "location": "Physics/MovingParticles3.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -111,7 +115,8 @@
       "description": "",
       "location": "Physics/MovingParticles4.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -121,7 +126,7 @@
       "traces": [],
       "modelcheckingItems": [],
       "simulation": null,
-      "visBVisualisation": "Physics/four_bodies.json",
+      "visBVisualisation": "Physics/n_bodies_visb.json",
       "historyChartItems": []
     },
     {
@@ -129,7 +134,8 @@
       "description": "",
       "location": "Waterboiler/WasserkocherEinfach_mch.eventb",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -160,7 +166,8 @@
       "description": "",
       "location": "Waterboiler/WasserKocherFalsch1_mch.eventb",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -178,7 +185,8 @@
       "description": "",
       "location": "Waterboiler/WasserkocherFalsch2_mch.eventb",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -196,7 +204,8 @@
       "description": "",
       "location": "Bridge/m0_island_bridge_3cars_mch.eventb",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -214,7 +223,8 @@
       "description": "",
       "location": "Bridge/m1_bridge_mch.eventb",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -232,7 +242,8 @@
       "description": "",
       "location": "Lift/Lift.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -250,7 +261,8 @@
       "description": "",
       "location": "Train/SimpleTrainTrack.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -270,7 +282,8 @@
       "description": "",
       "location": "TrafficLight/TrafficLight.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -288,7 +301,8 @@
       "description": "",
       "location": "Button/Z/button.tex",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -306,7 +320,8 @@
       "description": "",
       "location": "Button/TLA/button.tla",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -324,7 +339,8 @@
       "description": "",
       "location": "Einstein/einsteins_puzzle.als",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -348,7 +364,8 @@
       "description": "",
       "location": "Einstein/Einstein.tla",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [
@@ -372,7 +389,8 @@
       "description": "",
       "location": "Einstein/einsteins_enum.als",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -390,7 +408,8 @@
       "description": "",
       "location": "Train/TwoTrains.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -410,7 +429,8 @@
       "description": "",
       "location": "Train/TwoTrainsB.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -442,7 +462,8 @@
       "description": "",
       "location": "Train/TwoTrainsMA.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -488,7 +509,8 @@
       "description": "",
       "location": "Train/TwoTrainsMA_Unicode.mch",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -508,7 +530,8 @@
       "description": "",
       "location": "LandingGear/model/R6GearsDoorsHandleValvesControllerSwitch.bum",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -526,7 +549,8 @@
       "description": "",
       "location": "HD/m913.bum",
       "lastUsedPreferenceName": "default",
-      "requirements": [],
+      "validationTasks": [],
+      "validationObligations": [],
       "ltlFormulas": [],
       "ltlPatterns": [],
       "symbolicCheckingFormulas": [],
@@ -541,13 +565,52 @@
       "simulation": null,
       "visBVisualisation": "HD/hd.json",
       "historyChartItems": []
+    },
+    {
+      "name": "button2",
+      "description": "",
+      "location": "Button/button2.mch",
+      "lastUsedPreferenceName": "default",
+      "validationTasks": [],
+      "validationObligations": [],
+      "ltlFormulas": [],
+      "ltlPatterns": [],
+      "symbolicCheckingFormulas": [],
+      "symbolicAnimationFormulas": [],
+      "simulationItems": [],
+      "testCases": [],
+      "traces": [],
+      "modelcheckingItems": [],
+      "simulation": null,
+      "visBVisualisation": "Button/button2.json",
+      "historyChartItems": []
+    },
+    {
+      "name": "SolarSystem",
+      "description": "",
+      "location": "Physics/SolarSystem.mch",
+      "lastUsedPreferenceName": "default",
+      "validationTasks": [],
+      "validationObligations": [],
+      "ltlFormulas": [],
+      "ltlPatterns": [],
+      "symbolicCheckingFormulas": [],
+      "symbolicAnimationFormulas": [],
+      "simulationItems": [],
+      "testCases": [],
+      "traces": [],
+      "modelcheckingItems": [],
+      "simulation": "Physics/MovingParticles_simulation.json",
+      "visBVisualisation": null,
+      "historyChartItems": []
     }
   ],
+  "requirements": [],
   "preferences": [],
   "metadata": {
     "fileType": "Project",
-    "formatVersion": 20,
-    "savedAt": "2022-01-31T10:28:13.452413Z",
+    "formatVersion": 23,
+    "savedAt": "2022-04-14T12:01:28.278060Z",
     "creator": "User",
     "proB2KernelVersion": "4.0.0-SNAPSHOT",
     "proBCliVersion": null,