diff --git a/demo_calculs_TD_alea.html b/demo_calculs_TD_alea.html
new file mode 100644
index 0000000000000000000000000000000000000000..8cfcb584d94283f34a1aa9fd425aa08f02c55da5
--- /dev/null
+++ b/demo_calculs_TD_alea.html
@@ -0,0 +1,201 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>TD Aléa Inondation - INRAE</title>
+</head>
+<body>
+<h2>Démo pour le TD Aléa Inondation - INRAE </h2>
+<h3>Calculs simplifiés (trop ?) en section composée ! </h3>
+
+<p id ="consigne" >calculs indépendants par sous-sections, puis cumul</p>
+<p>(et on se pose des questions : comment font les codes de calcul ?)</p>
+
+
+<svg id="schema_section" width="400" height="150" viewBox="0,0,300,100"
+     inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+  xmlns="http://www.w3.org/2000/svg"
+     xmlns:svg="http://www.w3.org/2000/svg">
+
+  <path id="section totale" stroke="brown" stroke-width="4" fill="none"
+      d="M 0 0 v 45 h 100 v 45 h 40 v -40 h 50 v -15 h 100 v -40"/>
+
+  <path id="Z eau" stroke="blue" stroke-width="4" fill="none"
+      d="M 0 10 h 290">
+      <title> ligne d'eau </title>
+      </path>
+
+  <text id="texte Z eau" stroke="blue"  fill="none"
+      x = "50" y = "5">
+       ligne d'eau z = 109 m
+      </text>
+
+  <g id="canaux" >
+      <rect  id="vignoble"
+         x = "0"          y = "10"
+         width = "100"    height = "35"
+         style="fill:purple;fill-opacity:0.5;stroke:none;stroke-width:0.9;stop-color:#000000">
+          <title>Vignoble</title>
+         </rect>
+      <rect  id="lit mineur"
+         x = "100"          y = "10"
+         width = "40"    height = "80"
+         style="fill:blue;fill-opacity:0.5;stroke:none;stroke-width:0.9;stop-color:#000000">
+          <title>Lit mineur</title>
+         </rect>
+      <rect  id="champ"
+         x = "140"          y = "10"
+         width = "50"    height = "40"
+         style="fill:gold;fill-opacity:0.5;stroke:none;stroke-width:0.9;stop-color:#000000">
+          <title>Champs</title>
+         </rect>
+      <rect  id="village"
+         x = "190"          y = "10"
+         width = "100"    height = "25"
+         style="fill:red;fill-opacity:0.5;stroke:none;stroke-width:0.9;stop-color:#000000">
+          <title>Vieux Village</title>
+         </rect>
+    </g>
+
+</svg>
+<p id ="demo" >démonstrateur... version sympa de la feuille de calcul</p>
+ <button id="boutonPlus" onclick="clicPlus()"> [ + ] Monter la ligne d'eau </button>
+ <button id="boutonMoins"  onclick="clicMoins()">[ - ] Descendre la ligne d'eau </button>
+ <button id="boutonCalcul" onclick="calculMS()">[Calculer !]</button>
+<p id="journal"></p>
+
+<p id="nombre de chenaux inondés">108 m</p>
+<p id ="calcul" >démonstrateur...</p>
+
+<script>
+
+// Déclarations
+const zhautberge = 110 ;
+const zvignoble = 105.5 ;
+const zmineur =   101 ;
+const zchamp =   105 ;
+const zvillage =  106.5 ;
+const wvignoble = 100 ;
+const wmineur =   40 ;
+const wchamp =   50 ;
+const wvillage =  100 ;
+const Kvignoble = 15 ;
+const Kmineur =   30 ;
+const Kchamp =   20 ;
+const Kvillage =  15 ;
+const pente = 0.001 ;
+const deltaZ = 0.25 ;
+
+
+var zeau = 109 ;
+
+majZeau();
+calculMS();
+
+document.getElementById("calcul").innerHTML = " Position initiale Zeau = " + zeau + " m NGF";
+
+
+// fonctions boutons
+
+function majZeau() {
+document.getElementById("journal").innerHTML = " Zeau tracé = " + zeau + " m NGF";
+document.getElementById("texte Z eau").setAttribute("textContent", "tracé : " + zeau+" m") ;
+delta_y = (zhautberge - zeau) * 10 ;
+let chemin = "M 0 " + delta_y + "h 290";
+document.getElementById("Z eau").setAttribute("d", chemin) ;
+}
+
+function clicPlus() { zeau = zeau + deltaZ ;
+majZeau();
+}
+function clicMoins() { zeau = zeau - deltaZ ;
+majZeau();
+}
+
+function calculChenauxIndep(K, i, largeur, hauteur) {
+  let Sm = largeur * hauteur ;
+  let Pm = largeur + 2 * hauteur ;
+  let Rh = Sm / Pm ;
+
+  let Q = K * Math.pow(i , 0.5) * Sm * Math.pow( Rh, (2/3)) ;
+
+  return Q ;
+}
+
+function calculMS() {
+
+document.getElementById("journal").innerHTML = " Calcul pour Zeau = " + zeau;
+document.getElementById("texte Z eau").textContent = zeau+"m" ;
+let y = (zhautberge - zeau) * 10 ;
+let message = "" ;
+let message_chenaux = "";
+let pas_deau = "pas d'inondation " ;
+
+let h_vig = zeau - zvignoble ;
+message +=  "Qvignoble : " ;
+if (h_vig > 0) {
+ message_chenaux+= "Profondeurs : h(vignoble)= "+h_vig.toFixed(2);
+ let Q_vig = calculChenauxIndep(Kvignoble, pente, wvignoble, h_vig) ;
+ message +=  Q_vig.toFixed(2)  ;
+document.getElementById("vignoble").setAttribute("y", y) ;
+document.getElementById("vignoble").setAttribute("height", h_vig * 10) ;
+document.getElementById("vignoble").setAttribute("opacity", "1");
+}
+ else {document.getElementById("vignoble").setAttribute("opacity", "0.0");
+ message += pas_deau ; }
+
+ let h_min = zeau - zmineur ;
+ message +=  "  ; Qlit mineur : " ;
+if (h_min > 0) {
+ let Q_min = calculChenauxIndep(Kmineur, pente, wmineur, h_min) ;
+ message_chenaux +=  " ; dans le mineur h ="  + h_min.toFixed(2)  ;
+  message +=  Q_min.toFixed(2)  ;
+document.getElementById("lit mineur").setAttribute("y", y) ;
+document.getElementById("lit mineur").setAttribute("height", h_min * 10) ;
+document.getElementById("lit mineur").setAttribute("opacity", "1");
+}
+ else {document.getElementById("lit mineur").setAttribute("opacity", "0.0");
+  message += pas_deau;}
+
+ let h_champ = zeau - zchamp ;
+ message +=  "  ; Qchamp : " ;
+if (h_champ > 0) {
+ let Q_champ = calculChenauxIndep(Kchamp, pente, wchamp, h_champ) ;
+ message_chenaux +=  " ; dans les champs, h ="  + h_champ.toFixed(2)  ;
+  message +=  Q_champ.toFixed(2)  ;
+document.getElementById("champ").setAttribute("y", y) ;
+document.getElementById("champ").setAttribute("height", h_champ * 10) ;
+document.getElementById("champ").setAttribute("opacity", "1");
+}
+ else {document.getElementById("champ").setAttribute("opacity", "0.0");
+  message += pas_deau;}
+
+ let h_village = zeau - zvillage ;
+ message +=  "  ; Qvillage : " ;
+if (h_village > 0) {
+ let Q_village = calculChenauxIndep(Kvillage, pente, wvillage, h_village) ;
+ message_chenaux +=  " ; dans le village, h ="  + h_village.toFixed(2)  ;
+  message +=  Q_village.toFixed(2)  ;
+
+document.getElementById("village").setAttribute("y", y) ;
+document.getElementById("village").setAttribute("height", h_village * 10) ;
+document.getElementById("village").setAttribute("opacity", "1");
+}
+ else {document.getElementById("village").setAttribute("opacity", "0.0");
+  message += pas_deau;}
+
+document.getElementById("nombre de chenaux inondés").innerHTML = message_chenaux + " (m)" ;
+document.getElementById("calcul").innerHTML = "Formule de Manning-Strickler : " + message + " (m3/s)";
+}
+
+
+
+
+
+//Add event listeners
+
+
+</script>
+
+</body>
+</html>
\ No newline at end of file