diff --git a/benchmarks/misc/low_memory_animation.geo b/benchmarks/misc/low_memory_animation.geo
new file mode 100644
index 0000000000000000000000000000000000000000..639e2df97c98d768fed1f191a6946c7e5d5f322c
--- /dev/null
+++ b/benchmarks/misc/low_memory_animation.geo
@@ -0,0 +1,53 @@
+// Define some general options
+
+General.Trackball = 0; // use Euler angles
+General.RotationX = 30;
+General.RotationY = 10;
+General.RotationZ = -15;
+
+// One can use View.XXX instead of View[YYY].XXX to define general
+// View options!
+
+View.ShowElement = 1;
+View.ColorTable = {Red,Green,Blue};
+
+// Let's load the views one by one:
+
+For i In {0:1000} // we have 1001 views
+
+  If (!i)
+    // we force the bounding box to be the one of the first view:
+    MergeWithBoundingBox "view0.pos";
+  EndIf
+  If (i)
+    // we merge the other views using the same bounding box as the
+    // first one:
+    Merge Sprintf("view%g.pos",i);
+  EndIf
+
+  Draw;
+
+  Print Sprintf("out%g.jpeg",i);
+
+  // and we delete the view:
+  Delete View[0];
+
+EndFor
+
+// Why do we have to play such a game with the bounding box? 
+
+// If you don't load a geometry or a mesh at the same time as the
+// views, the bounding box is only computed at the end of the loading
+// of the main model file (the .geo). This is because a view should
+// normally NOT affect the bounding box of a scene, except if the .geo
+// file is indeed a view... So, without the MergeWithBoundingBox, the
+// bounding box is indeed undefined (well, set to some stupid default
+// value) when we want to draw our views (since this happens before
+// the main file (the script) is completely read)...
+
+// One solution would be to define dummy geometry points in the
+// script. This is not general since we may not know beforehand the
+// bounding box of the view. The correct way to handle this is to use
+// MergeWithBounding box, which forces the computation of the bounding
+// box.
+