diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c8e4894416937b2d7c921cf5d1782a67e070fe7e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*.lock
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..8beed90767e77f7cafbe1ac15323351e741190fa
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "web/themes/hugo-flex"]
+	path = web/themes/hugo-flex
+	url = https://github.com/de-souza/hugo-flex.git
diff --git a/web/archetypes/default.md b/web/archetypes/default.md
new file mode 100644
index 0000000000000000000000000000000000000000..00e77bd79be44872c0b29256b03799c2fb00c10d
--- /dev/null
+++ b/web/archetypes/default.md
@@ -0,0 +1,6 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
+
diff --git a/web/config.toml b/web/config.toml
new file mode 100644
index 0000000000000000000000000000000000000000..526ed87a697654d86cf73cf1ddcdf2ac1a8d538e
--- /dev/null
+++ b/web/config.toml
@@ -0,0 +1,5 @@
+baseURL = 'http://example.org/'
+languageCode = 'fr-FR'
+title = "M1if37"
+
+theme = 'hugo-flex'
diff --git a/web/content/index.md b/web/content/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..c46ab89413ab2524642414ae07897ac3b2d3090b
--- /dev/null
+++ b/web/content/index.md
@@ -0,0 +1,51 @@
+# Master 1 Informatique - UE M1if37 Animation en synthèse d'image (3 ECTS)
+
+Responsables de l'enseignement : A. Meyer, N. Pronost et F. Zara
+
+Volume horaire : 10h30 CM, 18h TP
+
+
+![im_all.png](images/im_all.png)
+
+## Objectif de l'UE
+M1if37 est une UE optionnelle de la 1ère année du Master d'Informatique de l'Université Lyon 1. Les cours ont lieu au semestre 2 (printemps). L'objectif de l'UE est de donner les bases de l'animation en synthèse d'images. Nous aborderons les deux grandes familles de méthodes. L'animation basée sur des données, par exemple pour l'animation d'humain virtuel (données issues de capture de mouvement). Et l'animation basée sur un modèle physique pour la simulation de phénomènes naturels comme le mouvement de textiles ou de fluide. L'UE laissera une grande part à l'application pratique avec la réalisation de TPs en C++/OpenGL proposant d'animer par exemple des humains virtuels, des vêtements, des cordes, une surface d'eau, etc.
+
+[Les slides de la présentation des options sont ici](documents/M1if37_PresOption.pdf)
+
+
+## Thématiques abordées
+
+### Animation par modèles physiques (F. Zara) - 4h30 CM, 6h TP
+  * Concepts physiques (forces, lois de Newton)
+  * Méthodes d'intégration numérique
+  * [La page de cette partie](https://perso.liris.cnrs.fr/fzara/Web/M1Animation.html)
+
+
+### Animation de personnage (A. Meyer) - 4h30 CM, 6h TP
+  * Animation basée squelette
+  * Déformation de maillage (skinning)
+  * [La page de cette partie](https://perso.liris.cnrs.fr/alexandre.meyer/public_html/www/doku.php?id=charanim_m1#master_1_informatique_-_ue_m1if37_animation_en_synthese_d_image)
+
+
+### Contrôle de mouvement (Nicolas Pronost) - 1h30 CM, 6h TP
+  * Mouvement d'objets rigides articulés
+  * [La page de cette partie](NP_controle.md)
+
+
+## Emploi du temps 2023
+
+![documents/M1if37_edt.png](documents/M1if37_edt.png)
+
+
+
+## Modalités de contrôle des connaissances (MCC)
+   * 1 note de CCF portant sur les 3 parties du cours : examen le mardi 21 juin, de 8h à 9h30, salle : ??, Nautibus
+   * 3 notes de TP : TP F. Zara, TP A. Meyer, TP N. Pronost (code + rapport + démo ou vidéo)
+
+   * Examen écrit : mercredi 22 mai 8h-9h30
+   * Démo de TP : mercredi 22 mai, de 9h45 à 12h
+   * Date limite de rendu des 3 archives : mercredi 22 mai 12h
+
+Une archive sera à déposer sur TOMUSS (dans les 3 colonnes correspondantes). Cette archive contiendra le code du TP + un rapport.
+Nous vous demandons également de mettre dans les 3 autres colonnes correspondantes de TOMUSS, l'URL pour accéder à une vidéo de votre projet, si vous ne faites pa de démo (car nous ne le compilerons pas forcément, donc il faut montrer tout votre travail).
+
diff --git a/web/resources/_gen/assets/scss/sass/main.scss_48b060fe05b0a273d182ef83c0605941.content b/web/resources/_gen/assets/scss/sass/main.scss_48b060fe05b0a273d182ef83c0605941.content
new file mode 100644
index 0000000000000000000000000000000000000000..be461160cf6ddd7ab5cca151d0612232096110b0
--- /dev/null
+++ b/web/resources/_gen/assets/scss/sass/main.scss_48b060fe05b0a273d182ef83c0605941.content
@@ -0,0 +1 @@
+@charset "UTF-8";html{font-family:times new roman,times,noto serif,serif}body{margin:0;padding:0;background:#fff;color:#454545;font-size:calc(1em + .22vw);box-sizing:border-box;line-height:1.4;min-height:80vh}body ::selection{color:#fff;background:#000}body.dark{background:#1d2021;color:#fff}body.dark ::selection{color:#000;background:#fff}.verbatim{font-family:monospace;font-size:.8rem;padding:3px 5px;border-radius:3px}.title{display:flex;align-items:center;justify-content:space-around}.name{width:80%;flex:1;text-align:left;width:80%}.link,sup a{border-right:0;border-top:0;border-left:0;border-bottom:2px solid;border-style:dotted;text-decoration:none;color:#076678}.content{margin-top:10px;border-top:2px gray solid}.line{margin:0;background:#076678;height:5px;border-radius:4px;width:0%;position:fixed;top:0;z-index:1000}p a,li a{border-right:0;border-top:0;border-left:0;border-bottom:2px solid;border-style:dotted;text-decoration:none;color:#076678}.color-scheme{font-size:15px}.checkbox{opacity:0;position:absolute}.post-header{display:flex;align-items:center}.post-title{margin:5px 0;overflow-wrap:break-word;hyphens:manual;font-family:serif}.post-dets{margin:0 0 5px}.tags{display:flex;flex-wrap:wrap;boder-bottom:2px dotted;align-items:center}.tags h5{margin:6px 5px 6px 0}.tag{background:#e25555;color:#fff;padding:5px;border-radius:5px;text-decoration:none;margin-right:3px}.post-item{margin:10px 0}.well h5,.well h4,.well h3,.well p{margin:5px 0}.well h3{font-family:serif}.label{background-color:#282828;border-radius:50px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:5px;height:10px;width:40px;transform:scale(1.5);margin-top:10px}.label .ball{background-color:#fff;border-radius:50%;position:absolute;top:2px;left:2px;height:16px;width:16px;transform:translateX(0);transition:transform .2s linear}.label svg{height:12px;width:12px;color:#f39c12}.checkbox:checked+.label .ball{transform:translateX(28px)}.fa-moon{color:#f1c40f}.fa-sun{color:#f39c12}.main{display:flex;flex-direction:column;width:50%;margin:auto}.intro{display:flex;flex-direction:column}.intro p{text-align:justify}.intro-quote{font-family:serif;list-style:none;font-style:italic;text-align:center;width:400px}.image{width:200px;border-radius:200px;margin:10px}html.contrast body{color:#050505}small{font-size:calc(.5em + .33vw)}ul li img{height:1em}blockquote{margin-left:0}.nav{margin:20px auto}.nav a{background:#076678;background:linear-gradient(90deg,#076678 0%,#0a8fa8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="$primary-accent-color",endColorstr="#0a8fa8",GradientType=1);padding:10px;color:#fff;text-decoration:none;border-radius:3px;margin:5px}.nav a:hover{background:#fff;padding:8px;color:#076678;text-decoration:none;border:2px solid #076678;animation:blueToWhite .4s linear}.go-back{color:inherit;text-decoration:none;display:flex;margin:auto 10px auto 0}blockquote{background:lightgrey;color:#454545;border-left:5px solid #076678;margin:1.5em 20px;padding:.5em 10px;quotes:"“" "”" "‘" "’"}blockquote p{display:inline;font-style:italic;font-size:calc(.8em + .33vw)}blockquote:before{color:#ccc;font-size:calc(1em + .33vw);line-height:.1em;margin-right:.25em;vertical-align:-.4em}blockquote ul,ul{padding-left:20px}blockquote.dark{background:#282828;color:#fff}.social{display:flex;flex-wrap:wrap;margin:20px 0 0;justify-content:space-between;width:80%}.social a{text-decoration:none;margin:0;color:#076678}.social-link{font-size:30px}#footer{display:flex;flex-direction:column;justify-content:space-around;align-items:center;text-align:center;border-right:0;border-top:2px solid;border-left:0;border-bottom:0;margin:20px auto auto;width:100%}#footer p{width:90%;margin:10px auto}#footer strong{width:90%}#footer .copyleft{margin:10px 0;padding:0;font-size:calc(.5em + .33vw);list-style:none}#footer .copyleft b{display:inline-block;transform:rotate(180deg)}#footer .copyleft li{display:inline-block;margin:0 0 0 .45em;padding:0 0 0 .85em;border-left:solid 1px rgba(255,255,255,.5);line-height:1}#footer .copyleft li:first-child{border-left:0}pre{padding:10px;background-color:#2c2c2c;border-radius:5px;font-family:monospace;font-size:calc(.7em + .13vw);overflow-x:auto}code{background:#2c2c2c;color:#fff}@media screen and (max-width:1024px){html{font-size:1em}.main{width:90%}.tags,.post-title{margin:0}.post-header{flex-wrap:wrap}#footer p,.intro-quote{width:90%}}.back-transition{transition:background .2s linear}.footnote-definition{display:flex;padding:5px 0}.social{width:100%}.footnote-body,.footnote-body p{margin:0;padding:0 10px}ul li p{margin:5px}@keyframes blueToWhite{0%{background:#076678;background:linear-gradient(90deg,#076678 0%,#0a8fa8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="$primary-accent-color",endColorstr="#0a8fa8",GradientType=1);color:#fff}100%{background:#fff;color:#076678}}
\ No newline at end of file
diff --git a/web/resources/_gen/assets/scss/sass/main.scss_48b060fe05b0a273d182ef83c0605941.json b/web/resources/_gen/assets/scss/sass/main.scss_48b060fe05b0a273d182ef83c0605941.json
new file mode 100644
index 0000000000000000000000000000000000000000..7ca4a3e763232681dfac1539ceb13c1c6da5df2d
--- /dev/null
+++ b/web/resources/_gen/assets/scss/sass/main.scss_48b060fe05b0a273d182ef83c0605941.json
@@ -0,0 +1 @@
+{"Target":"sass/main.min.a669fc379ca0ba4d389af69be2682407e7bca16d368f2e7ad5b83c0cd80029b3.css","MediaType":"text/css","Data":{"Integrity":"sha256-pmn8N5yguk04mvab4mgkB+e8oW02jy561bg8DNgAKbM="}}
\ No newline at end of file
diff --git a/web/static/documents/M1if37_PresOption.pdf b/web/static/documents/M1if37_PresOption.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9d11d46c16dd22eef147ded489133733972f54f4
Binary files /dev/null and b/web/static/documents/M1if37_PresOption.pdf differ
diff --git a/web/static/documents/M1if37_edt.pdf b/web/static/documents/M1if37_edt.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..32dc166b028596d8c01b0f2a64df5f8b6d3068ce
Binary files /dev/null and b/web/static/documents/M1if37_edt.pdf differ
diff --git a/web/static/documents/M1if37_edt.png b/web/static/documents/M1if37_edt.png
new file mode 100644
index 0000000000000000000000000000000000000000..b50d2b589ff5fa05b68ae7aa1bffdb9fded40b0a
Binary files /dev/null and b/web/static/documents/M1if37_edt.png differ
diff --git a/web/static/documents/NP_controle/M1IF37_CM_CONTROLEUR.pdf b/web/static/documents/NP_controle/M1IF37_CM_CONTROLEUR.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0a4e4bee4fba212d4993b8707a926cff353b715c
Binary files /dev/null and b/web/static/documents/NP_controle/M1IF37_CM_CONTROLEUR.pdf differ
diff --git a/web/static/documents/NP_controle/M1IF37_TP_CONTROLEUR-modele_rapport.docx b/web/static/documents/NP_controle/M1IF37_TP_CONTROLEUR-modele_rapport.docx
new file mode 100644
index 0000000000000000000000000000000000000000..6e67d023174eddf0ca3c8ac0c8a76b1f8dcc8fe2
Binary files /dev/null and b/web/static/documents/NP_controle/M1IF37_TP_CONTROLEUR-modele_rapport.docx differ
diff --git a/web/static/documents/NP_controle/M1IF37_TP_CONTROLEUR.pdf b/web/static/documents/NP_controle/M1IF37_TP_CONTROLEUR.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9605c5936278141543e99a1aa92f2ea974a7af40
Binary files /dev/null and b/web/static/documents/NP_controle/M1IF37_TP_CONTROLEUR.pdf differ
diff --git a/web/static/images/M1if37.png b/web/static/images/M1if37.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a3840271c3f3ee046425b5a3e421bd9f51997b1
Binary files /dev/null and b/web/static/images/M1if37.png differ
diff --git a/web/static/images/im1.png b/web/static/images/im1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5addb53174cda137ba3bfaf39362059f89ff6b7
Binary files /dev/null and b/web/static/images/im1.png differ
diff --git a/web/static/images/im2.png b/web/static/images/im2.png
new file mode 100644
index 0000000000000000000000000000000000000000..acacf58cca8d9b16a9d8b6eb619eed919726dd34
Binary files /dev/null and b/web/static/images/im2.png differ
diff --git a/web/static/images/im_all.png b/web/static/images/im_all.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a1c0089687d223f7e9161021790246aa6f2b641
Binary files /dev/null and b/web/static/images/im_all.png differ
diff --git a/web/themes/hugo-flex b/web/themes/hugo-flex
new file mode 160000
index 0000000000000000000000000000000000000000..eb5e35185457e68cdfafa90bc5eef578266bb430
--- /dev/null
+++ b/web/themes/hugo-flex
@@ -0,0 +1 @@
+Subproject commit eb5e35185457e68cdfafa90bc5eef578266bb430