diff --git a/Train/SimpleTrainTrack.mch b/Train/SimpleTrainTrack.mch
new file mode 100644
index 0000000000000000000000000000000000000000..b34d333e55109ba4d9c4396e6debf7e8e6f447eb
--- /dev/null
+++ b/Train/SimpleTrainTrack.mch
@@ -0,0 +1,18 @@
+MACHINE TrainTrack
+// A small example to show how one can use LibrarySVG to flexibliy visualise
+// train track zones,...
+SETS
+  TTDS = {ttd1,ttd2,ttd3}
+CONSTANTS
+  TrackElementNumber, TRACK, TTD_TrackElements
+PROPERTIES
+  TrackElementNumber : NATURAL1
+& TRACK = 1..TrackElementNumber
+
+& TTD_TrackElements : TTDS --> FIN1(TRACK)
+
+& TrackElementNumber = 30
+& TTD_TrackElements = {ttd1 |-> 1..10 , ttd2 |-> 11..25 , ttd3 |-> 26..30}
+DEFINITIONS
+ "LibrarySVG.def" // enable to use the external functions in the VisB json file
+END
\ No newline at end of file
diff --git a/Train/Track.json b/Train/Track.json
new file mode 100644
index 0000000000000000000000000000000000000000..dc4626698dc4ef90f5274ad5b7c7c8c0a2f23328
--- /dev/null
+++ b/Train/Track.json
@@ -0,0 +1,31 @@
+{
+  "svg":"Track.svg",
+  "items":[
+  
+    {
+      "id":"track_polyline",
+      "attr":"points",
+      "value":"svg_axis(TRACK,100.0/real(TrackElementNumber),1.0,100.0,1.0)",
+      "comment":"show ticks for Track units"
+    },
+    {
+      "id":"ttd_polyline",
+      "attr":"points",
+      "value":"svg_set_polygon(ran(%tt.(tt:TTDS|max(TTD_TrackElements(tt)))),100.0/real(TrackElementNumber),1.0,100.0,2.0)",
+      "comment":"show ticks for TTD Limits"
+    },
+    {
+      "id":"occupied_ttd_polygon",
+      "attr":"points",
+      "value":"svg_axis(union(ran(%tt.(tt:{ttd1}|TTD_TrackElements(tt)))),100.0/real(TrackElementNumber),1.0,100.0,2.0)",
+      "comment":"show ticks for TTD Limits"
+    },
+    {
+      "id":"cleared_ttd_polygon",
+      "attr":"points",
+      "value":"svg_set_polygon(union(ran(%tt.(tt:{ttd2,ttd3}|TTD_TrackElements(tt)))),100.0/real(TrackElementNumber),1.0,100.0,2.0)",
+      "comment":"show ticks for TTD Limits"
+    }
+    ],
+  "events":[ ]
+}
\ No newline at end of file
diff --git a/Train/Track.svg b/Train/Track.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e028a48bdd54d9b7f6d898af7d069699a3605e70
--- /dev/null
+++ b/Train/Track.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   width="750"
+   height="300"
+   viewBox="0 5 150 65"
+   version="1.1"
+   id="svg5154">
+
+  <polygon id = "track_polyline"
+       points="0,0 100,0"
+       style="stroke-width: 0.3"
+       stroke="red" fill="none"
+       transform="translate(10,20.5)" />
+  <polygon id = "ttd_polyline"
+       points="0,0 100,0"
+       style="stroke-width: 0.3"
+       stroke="red" fill="none"
+       transform="translate(10,22.5)" />
+       
+       
+  <rect id = "ttd_rect"
+       style="stroke-width: 0.1"
+       width="100" height="2" x="0"  y="0"
+       stroke="black" fill="none"
+       transform="translate(10,23)" />
+  <polygon id = "occupied_ttd_polygon"
+       points="0,0 0,2 10,2 10,0 70,0 70,1 90,1 90,0"
+       stroke="none" fill="red"
+       opacity="0.70"
+       style="stroke-width: 0.2"
+       transform="translate(10,23)" />
+  <polygon id = "cleared_ttd_polygon"
+       points="0,0 10,2 20,2 20,0 90,0 90,1 100,1 100,0"
+       stroke="none" fill="blue"
+       opacity="0.70"
+       style="stroke-width: 0.2"
+       transform="translate(10,23)" />
+
+    <text  text-align="left"  x="5"  y="41"
+       font-size ="2" fill="gray"  font-family="sans-serif">
+       <tspan x="15" dy = "0.6em" id="visb_debug_messages">.TXT</tspan>
+    </text>
+</svg>
\ No newline at end of file