diff --git a/demos/homology.geo b/demos/homology.geo
new file mode 100644
index 0000000000000000000000000000000000000000..d8ba7da69b631c9a6a731495b1cfc535c70339eb
--- /dev/null
+++ b/demos/homology.geo
@@ -0,0 +1,158 @@
+/********************************************************************* 
+ *
+ *  Gmsh tutorial 10
+ * 
+ *  Homology computation
+ *
+ *********************************************************************/
+ 
+// Homology computation in Gmsh finds representative chains of
+// (relative) homology spaces using a mesh of a model. Those
+// representatives generate the (relative) homology spaces of the
+// model. Alternatively, Gmsh can only look for the ranks of the
+// (relative) homology spaces, the Betti numbers of the model.
+
+// The generators chains are stored in a given .msh-file as physical
+// groups, whose mesh elements are oriented such that their
+// coefficients are 1 in the generator chain.
+
+// Create an example geometry
+
+m=0.5; // mesh characteristic length
+h=2;
+
+Point(newp) = {0, 0, 0, m};
+Point(newp) = {10, 0, 0, m};
+Point(newp) = {10, 10, 0, m};
+Point(newp) = {0, 10, 0, m};
+Point(newp) = {4, 4, 0, m};
+Point(newp) = {6, 4, 0, m};
+Point(newp) = {6, 6, 0, m};
+Point(newp) = {4, 6, 0, m};
+
+Point(newp) = {2, 0, 0, m};
+Point(newp) = {8, 0, 0, m};
+Point(newp) = {2, 10, 0, m};
+Point(newp) = {8, 10, 0, m};
+
+Point(newp) = {0, 0, h, m};
+Point(newp) = {10, 0, h, m};
+Point(newp) = {10, 10, h, m};
+Point(newp) = {0, 10, h, m};
+Point(newp) = {4, 4, h, m};
+Point(newp) = {6, 4, h, m};
+Point(newp) = {6, 6, h, m};
+Point(newp) = {4, 6, h, m};
+
+Point(newp) = {2, 0, h, m};
+Point(newp) = {8, 0, h, m};
+Point(newp) = {2, 10, h, m};
+Point(newp) = {8, 10, h, m};
+Line(1) = {16, 23};
+Line(2) = {23, 11};
+Line(3) = {11, 4};
+Line(4) = {4, 16};
+Line(5) = {24, 12};
+Line(6) = {12, 3};
+Line(7) = {3, 15};
+Line(8) = {15, 24};
+Line(9) = {10, 2};
+Line(10) = {2, 14};
+Line(11) = {14, 22};
+Line(12) = {22, 10};
+Line(13) = {21, 9};
+Line(14) = {9, 1};
+Line(15) = {1, 13};
+Line(16) = {13, 21};
+Line Loop(17) = {3, 4, 1, 2};
+Ruled Surface(18) = {17};
+Line Loop(19) = {6, 7, 8, 5};
+Ruled Surface(20) = {19};
+Line Loop(21) = {9, 10, 11, 12};
+Ruled Surface(22) = {21};
+Line Loop(23) = {14, 15, 16, 13};
+Ruled Surface(24) = {23};
+Line(25) = {16, 13};
+Line(26) = {1, 4};
+Line(27) = {11, 12};
+Line(28) = {24, 23};
+Line(29) = {21, 22};
+Line(30) = {10, 9};
+Line(31) = {2, 3};
+Line(32) = {15, 14};
+Line(33) = {20, 19};
+Line(34) = {19, 18};
+Line(35) = {18, 17};
+Line(36) = {17, 20};
+Line(37) = {8, 7};
+Line(38) = {7, 6};
+Line(39) = {6, 18};
+Line(40) = {5, 6};
+Line(41) = {5, 8};
+Line(42) = {20, 8};
+Line(43) = {17, 5};
+Line(44) = {19, 7};
+Line Loop(45) = {27, -5, 28, 2};
+Ruled Surface(46) = {45};
+Line Loop(47) = {25, -15, 26, 4};
+Ruled Surface(48) = {47};
+Line Loop(49) = {29, 12, 30, -13};
+Ruled Surface(50) = {49};
+Line Loop(51) = {32, -10, 31, 7};
+Ruled Surface(52) = {51};
+Line Loop(53) = {41, -42, -36, 43};
+Ruled Surface(54) = {53};
+Line Loop(55) = {35, 43, 40, 39};
+Ruled Surface(56) = {55};
+Line Loop(57) = {34, -39, -38, -44};
+Ruled Surface(58) = {57};
+Line Loop(59) = {33, 44, -37, -42};
+Ruled Surface(60) = {59};
+Line Loop(61) = {27, 6, -31, -9, 30, 14, 26, -3};
+Line Loop(62) = {37, 38, -40, 41};
+Plane Surface(63) = {61, 62};
+Line Loop(64) = {25, 16, 29, -11, -32, 8, 28, -1};
+Line Loop(65) = {34, 35, 36, 33};
+Plane Surface(66) = {64, 65};
+Surface Loop(67) = {46, 63, 20, 52, 66, 48, 24, 50, 22, 18, 60, 58, 56, 54};
+Volume(68) = {67};
+
+// Create physical groups, which are used to define the domain of the
+// homology computation and the subdomain of the relative homology
+// computation.
+
+// Whole domain
+Physical Volume(69) = {68};
+// Four "terminals" of the model
+Physical Surface(70) = {18};
+Physical Surface(71) = {20};
+Physical Surface(72) = {22};
+Physical Surface(73) = {24};
+// Whole domain surface
+Physical Surface(74) = {46, 18, 20, 52, 22, 50, 24, 48, 66, 63, 60, 58, 56, 54};
+// Complement of the domain surface respect to the four terminals
+Physical Surface(75) = {46, 63, 66, 52, 50, 48, 54, 60, 58, 56};
+
+// Create a mesh of the model
+Mesh 3;
+
+// Find generators of relative homology spaces of the domain modulo the 
+// four terminals.
+// Save the generator chains to t10_hom.msh.
+HomGen("t10_hom.msh") = {{69}, {70, 71, 72, 73}};
+
+// Find the corresponding thin cuts, 
+// generators of relative homology spaces modulo the 
+// non-terminal domain surface.
+// Save the cut chains to t10_hom.msh.
+HomGen("t10_hom.msh") = {{69}, {75}};
+
+// Find the corresponding thick cuts.
+// Save the cut chains to t10_hom.msh.
+HomCut("t10_hom.msh") = {{69}, {70, 71, 72, 73}};
+
+// More examples (uncomment):
+//  HomGen("t10_hom.msh") = {{69}, {}}; 
+//  HomGen("t10_hom.msh") = {{}, {}};
+//  HomGen("t10_hom.msh") = {{69}, {74}}; 
+//  HomGen("t10_hom.msh") = {{}, {74}}; 
diff --git a/tutorial/t10.geo b/tutorial/t10.geo
index cc9ccfa31c163d06fb4907ff85b581fbad6e5185..279a548683259fc8ad76e8f6286262cb149c4821 100644
--- a/tutorial/t10.geo
+++ b/tutorial/t10.geo
@@ -1,151 +1,8 @@
 /********************************************************************* 
  *
- *  Gmsh tutorial 10
+ *  Gmsh tutorial 11
  * 
- *  Homology computation
+ *  Remeshing
  *
  *********************************************************************/
- 
-// Homology computation in Gmsh finds representative chains of (relative) homology spaces using a mesh of a model. Those representatives generate the (relative) homology spaces of the model. Alternatively, Gmsh can only look for the ranks of the (relative) homology spaces, the Betti numbers of the model. 
 
-// The generators chains are stored in a given .msh-file as physical groups, whose mesh elements are oriented such that their coefficients are 1 in the generator chain.
-
-
-// Create an example geometry
-
-m=0.5; // mesh characteristic length
-h=2;
-
-Point(newp) = {0, 0, 0, m};
-Point(newp) = {10, 0, 0, m};
-Point(newp) = {10, 10, 0, m};
-Point(newp) = {0, 10, 0, m};
-Point(newp) = {4, 4, 0, m};
-Point(newp) = {6, 4, 0, m};
-Point(newp) = {6, 6, 0, m};
-Point(newp) = {4, 6, 0, m};
-
-Point(newp) = {2, 0, 0, m};
-Point(newp) = {8, 0, 0, m};
-Point(newp) = {2, 10, 0, m};
-Point(newp) = {8, 10, 0, m};
-
-Point(newp) = {0, 0, h, m};
-Point(newp) = {10, 0, h, m};
-Point(newp) = {10, 10, h, m};
-Point(newp) = {0, 10, h, m};
-Point(newp) = {4, 4, h, m};
-Point(newp) = {6, 4, h, m};
-Point(newp) = {6, 6, h, m};
-Point(newp) = {4, 6, h, m};
-
-Point(newp) = {2, 0, h, m};
-Point(newp) = {8, 0, h, m};
-Point(newp) = {2, 10, h, m};
-Point(newp) = {8, 10, h, m};
-Line(1) = {16, 23};
-Line(2) = {23, 11};
-Line(3) = {11, 4};
-Line(4) = {4, 16};
-Line(5) = {24, 12};
-Line(6) = {12, 3};
-Line(7) = {3, 15};
-Line(8) = {15, 24};
-Line(9) = {10, 2};
-Line(10) = {2, 14};
-Line(11) = {14, 22};
-Line(12) = {22, 10};
-Line(13) = {21, 9};
-Line(14) = {9, 1};
-Line(15) = {1, 13};
-Line(16) = {13, 21};
-Line Loop(17) = {3, 4, 1, 2};
-Ruled Surface(18) = {17};
-Line Loop(19) = {6, 7, 8, 5};
-Ruled Surface(20) = {19};
-Line Loop(21) = {9, 10, 11, 12};
-Ruled Surface(22) = {21};
-Line Loop(23) = {14, 15, 16, 13};
-Ruled Surface(24) = {23};
-Line(25) = {16, 13};
-Line(26) = {1, 4};
-Line(27) = {11, 12};
-Line(28) = {24, 23};
-Line(29) = {21, 22};
-Line(30) = {10, 9};
-Line(31) = {2, 3};
-Line(32) = {15, 14};
-Line(33) = {20, 19};
-Line(34) = {19, 18};
-Line(35) = {18, 17};
-Line(36) = {17, 20};
-Line(37) = {8, 7};
-Line(38) = {7, 6};
-Line(39) = {6, 18};
-Line(40) = {5, 6};
-Line(41) = {5, 8};
-Line(42) = {20, 8};
-Line(43) = {17, 5};
-Line(44) = {19, 7};
-Line Loop(45) = {27, -5, 28, 2};
-Ruled Surface(46) = {45};
-Line Loop(47) = {25, -15, 26, 4};
-Ruled Surface(48) = {47};
-Line Loop(49) = {29, 12, 30, -13};
-Ruled Surface(50) = {49};
-Line Loop(51) = {32, -10, 31, 7};
-Ruled Surface(52) = {51};
-Line Loop(53) = {41, -42, -36, 43};
-Ruled Surface(54) = {53};
-Line Loop(55) = {35, 43, 40, 39};
-Ruled Surface(56) = {55};
-Line Loop(57) = {34, -39, -38, -44};
-Ruled Surface(58) = {57};
-Line Loop(59) = {33, 44, -37, -42};
-Ruled Surface(60) = {59};
-Line Loop(61) = {27, 6, -31, -9, 30, 14, 26, -3};
-Line Loop(62) = {37, 38, -40, 41};
-Plane Surface(63) = {61, 62};
-Line Loop(64) = {25, 16, 29, -11, -32, 8, 28, -1};
-Line Loop(65) = {34, 35, 36, 33};
-Plane Surface(66) = {64, 65};
-Surface Loop(67) = {46, 63, 20, 52, 66, 48, 24, 50, 22, 18, 60, 58, 56, 54};
-Volume(68) = {67};
-
-// Create physical groups, which are used to define the domain of the homology computation and the subdomain of the relative homology computation.
-
-// Whole domain
-Physical Volume(69) = {68};
-// Four "terminals" of the model
-Physical Surface(70) = {18};
-Physical Surface(71) = {20};
-Physical Surface(72) = {22};
-Physical Surface(73) = {24};
-// Whole domain surface
-Physical Surface(74) = {46, 18, 20, 52, 22, 50, 24, 48, 66, 63, 60, 58, 56, 54};
-// Complement of the domain surface respect to the four terminals
-Physical Surface(75) = {46, 63, 66, 52, 50, 48, 54, 60, 58, 56};
-
-// Create a mesh of the model
-Mesh 3;
-
-// Find generators of relative homology spaces of the domain modulo the 
-// four terminals.
-// Save the generator chains to t10_hom.msh.
-HomGen("t10_hom.msh") = {{69}, {70, 71, 72, 73}};
-
-// Find the corresponding thin cuts, 
-// generators of relative homology spaces modulo the 
-// non-terminal domain surface.
-// Save the cut chains to t10_hom.msh.
-HomGen("t10_hom.msh") = {{69}, {75}};
-
-// Find the corresponding thick cuts.
-// Save the cut chains to t10_hom.msh.
-HomCut("t10_hom.msh") = {{69}, {70, 71, 72, 73}};
-
-// More examples (uncomment):
-//  HomGen("t10_hom.msh") = {{69}, {}}; 
-//  HomGen("t10_hom.msh") = {{}, {}};
-//  HomGen("t10_hom.msh") = {{69}, {74}}; 
-//  HomGen("t10_hom.msh") = {{}, {74}}; 
diff --git a/tutorial/t11.geo b/tutorial/t11.geo
new file mode 100644
index 0000000000000000000000000000000000000000..a1baa4ed4467d89b4965107583707d5a46f98e4d
--- /dev/null
+++ b/tutorial/t11.geo
@@ -0,0 +1,8 @@
+/********************************************************************* 
+ *
+ *  Gmsh tutorial 12
+ * 
+ *  Unstructured quadrangular meshes
+ *
+ *********************************************************************/
+