diff --git a/ALVARIZA-BILLAR_DESERT_KANY/projet.js b/ALVARIZA-BILLAR_DESERT_KANY/projet.js
index 64165111f44477a2f31b10f6d7f182d544781bc5..c77e6dc2f46c94d009d86ccd1f8122d739e55aec 100644
--- a/ALVARIZA-BILLAR_DESERT_KANY/projet.js
+++ b/ALVARIZA-BILLAR_DESERT_KANY/projet.js
@@ -11,8 +11,6 @@ import * as dat from 'https://cdn.jsdelivr.net/npm/dat.gui@0.7.9/build/dat.gui.m
 import {MTLLoader} from 'three/addons/loaders/MTLLoader.js';
 import Stats from 'https://cdn.jsdelivr.net/npm/three@0.130.1/examples/jsm/libs/stats.module.js';
 
-
-
 window.scene = new THREE.Scene();
 
 // Variables globales
@@ -21,6 +19,7 @@ var cameraControls;
 var clock = new THREE.Clock();
 var beton;
 var car;
+
 var stats = new Stats();
 stats.showPanel(0);         // 0: afficher le panneau des FPS
 document.body.appendChild(stats.dom);
@@ -31,7 +30,21 @@ window.carMoving = true;
 function fillScene() {
     scene = new THREE.Scene();
 
-    // LIGHTS
+    light();
+    ground();
+    road();
+    loadCar();
+    capsuleBeton();
+    dalleBeton();
+    poleAndFlag();
+    // house();     // TODO
+    forest();
+}
+
+/**
+ * Fonction qui gère les lumières
+ */
+function light() {
     scene.add(new THREE.AmbientLight(0x222222));
     var light = new THREE.DirectionalLight(0xFFFFFF, 0.9);
     light.position.set(200, 500, 500);
@@ -39,8 +52,12 @@ function fillScene() {
     light = new THREE.DirectionalLight(0xFFFFFF, 10);
     light.position.set(-200, -100, -400);
     scene.add(light);
+}
 
-    // GROUND
+/**
+ * Function qui gère le sol
+ */
+function ground() {
     var texture = new THREE.TextureLoader();
     var grassTexture = texture.load('textures/grass.png');
     grassTexture.wrapS = THREE.RepeatWrapping;
@@ -57,8 +74,13 @@ function fillScene() {
     scene.background = new THREE.CubeTextureLoader()
         .setPath('textures/skybox/')
         .load(['px.jpg', 'nx.jpg', 'py.jpg', 'ny.jpg', 'pz.jpg', 'nz.jpg']);
+}
 
-    // ROUTE
+/**
+ * Fonction qui gère la route
+ */
+function road() {
+    var texture = new THREE.TextureLoader();
     var roadTexture = texture.load('textures/road.jpg');
     roadTexture.wrapS = THREE.RepeatWrapping;
     roadTexture.wrapT = THREE.RepeatWrapping;
@@ -78,29 +100,49 @@ function fillScene() {
     road.position.y = 10;
     road.position.z = 10;
     scene.add(road);
+}
+
+/**
+ * Fonction qui charge la voiture
+ */
+function loadCar() {
+    new OBJLoader().load('car.obj', function (object) {
+        car = object;
+        car.scale.setScalar(200);
+        car.position.set(0, 30, -9000);
+        car.rotation.y = 0;
 
 
-    // DALLE DE BÉTON (sous la maisonnette)
+        car.traverse(function (child) {
+            if (child.isMesh) {
+                child.material = new THREE.MeshStandardMaterial({color: 0xff0000});
+            }
+        });
+
+        scene.add(car);
+    });
+}
+
+/**
+ * Function qui crée la texture de béton
+ */
+function createBetonTexture() {
+    var texture = new THREE.TextureLoader();
     var betonTexture = texture.load('textures/beton.jpg');
     betonTexture.wrapS = THREE.RepeatWrapping;
     betonTexture.wrapT = THREE.RepeatWrapping;
     betonTexture.repeat.set(1, 1);
 
-    var betonMaterial = new THREE.MeshLambertMaterial({map: betonTexture});
-
-    beton = new THREE.Mesh(
-        new THREE.BoxGeometry(5500, 350, 5500),
-        betonMaterial
-    );
-    beton.position.set(-8000, 0, 1850);
-    beton.rotation.y = 0.2225;
-    scene.add(beton);
-
-
-
+    return betonTexture;
+}
 
+/**
+ * Fonction qui gère la casquette de béton (sous les pompes à essence)
+ */
+function capsuleBeton() {
+    // Récupérer la texture béton via la fonction dédiée
+    var betonTexture = createBetonTexture();
 
-    // CAPSULE EN BÉTON (sous les pompes à essence)
     var capsuleLength = 5700;         // Longueur de la capsule
     var capsuleHeight = 800;          // Largeur de la capsule
     var radius = capsuleHeight / 2;     // Rayon des extrémités arrondies
@@ -126,12 +168,35 @@ function fillScene() {
     capsuleMesh.position.set(-2750, 0, 650);
 
     scene.add(capsuleMesh);
+}
+
+/**
+ * Fonction qui gère la dalle de béton (sous la maisonnette)
+ */
+function dalleBeton() {
+    // Récupérer la texture béton via la fonction dédiée
+    var betonTexture = createBetonTexture();
+
+    var betonMaterial = new THREE.MeshLambertMaterial({map: betonTexture});
+
+    beton = new THREE.Mesh(
+        new THREE.BoxGeometry(5500, 350, 5500),
+        betonMaterial
+    );
+    beton.position.set(-8000, 0, 1850);
+    beton.rotation.y = 0.2225;
+    scene.add(beton);
+}
 
-	// Matériaux
+/**
+ * Fonction qui gère le poteau et son drapeau
+ */
+function poleAndFlag() {
+    // Matériaux
 	const redMaterial = new THREE.MeshStandardMaterial({ color: 0xff0000 }); // Rouge
 	const grayMaterial = new THREE.MeshStandardMaterial({ color: 0x888888 }); // Gris
 
-	// Bas du poteau (rouge)
+    // Bas du poteau (rouge)
 	const bottomPoleGeometry = new THREE.CylinderGeometry(30, 30, 1000, 32);
 	const bottomPole = new THREE.Mesh(bottomPoleGeometry, redMaterial);
 	bottomPole.position.set(-5000, 750, 6000);
@@ -150,75 +215,60 @@ function fillScene() {
 	const sign = new THREE.Mesh(signGeometry, signMaterial);
 
 	// enseigne comme un drapeau
-	sign.position.set(-4800, 2500, 6000); 
-	sign.rotation.y = 0; 
+	sign.position.set(-4800, 2750, 6000);
+	sign.rotation.y = 0;
 
 	// Ajouter l'enseigne
 	scene.add(sign);
 
-
-    // ARBRES
-    new MTLLoader()
-        .load('tree_bonus.mtl', function (materials) {
-            materials.preload();
-            new OBJLoader()
-                .setMaterials(materials)
-                .load('tree_bonus.obj', function (object) {
-                    object.traverse(function (child) {
-                        if (child.isMesh) {
-                            child.material = new THREE.MeshLambertMaterial({color: 0x006600});
-                        }
-                    });
-
-                    // Arbres à gauche de la route
-                    var numTreesX = 23, numTreesZ = 100, spacingX = 2000, spacingZ = 1000, startX = 3000,
-                        startZ = -50000;
-                    for (var x = 0; x < numTreesX; x++) {
-                        for (var z = 0; z < numTreesZ; z++) {
-                            var tree = object.clone();
-                            tree.position.set(startX + x * spacingX + Math.random() * spacingX, 0, startZ + z * spacingZ + Math.random() * spacingZ);
-                            tree.scale.setScalar(400);
-                            scene.add(tree);
-                        }
-                    }
-
-                    // Arbres à droite de la route
-                    var numTreesX = 19, numTreesZ = 100, spacingX = 2000, spacingZ = 1000, startX = 3000,
-                        startZ = -50000;
-                    startX = -10000;
-                    for (var x = 0; x < numTreesX; x++) {
-                        for (var z = 0; z < numTreesZ; z++) {
-                            var tree = object.clone();
-                            tree.position.set(startX - x * spacingX - 4000 + Math.random() * spacingX, 0, startZ + z * spacingZ + Math.random() * spacingZ);
-                            tree.scale.setScalar(400);
-                            scene.add(tree);
-                        }
-                    }
-                });
-        });
-
-    // Voiture
-    loadCar();
 }
 
 /**
- * Charge la voiture
+ * Fonction qui gère la maisonnette
  */
-function loadCar() {
-    new OBJLoader().load('car.obj', function (object) {
-        car = object;
-        car.scale.setScalar(200);
-        car.position.set(0, 30, -9000);
-        car.rotation.y = 0;
 
+// function house() {}
 
-        car.traverse(function (child) {
-            if (child.isMesh) {
-                child.material = new THREE.MeshStandardMaterial({color: 0xff0000});
-            }
-        });
+/**
+ * Fonction qui gère la forêt
+ */
+function forest() {
+    new MTLLoader().load('tree_bonus.mtl', function (materials) {
+        materials.preload();
+        new OBJLoader()
+            .setMaterials(materials)
+            .load('tree_bonus.obj', function (object) {
+                object.traverse(function (child) {
+                    if (child.isMesh) {
+                        child.material = new THREE.MeshLambertMaterial({color: 0x006600});
+                    }
+                });
 
-        scene.add(car);
+                // Arbres à gauche de la route
+                var numTreesX = 23, numTreesZ = 100, spacingX = 2000, spacingZ = 1000, startX = 3000,
+                    startZ = -50000;
+                for (var x = 0; x < numTreesX; x++) {
+                    for (var z = 0; z < numTreesZ; z++) {
+                        var tree = object.clone();
+                        tree.position.set(startX + x * spacingX + Math.random() * spacingX, 0, startZ + z * spacingZ + Math.random() * spacingZ);
+                        tree.scale.setScalar(400);
+                        scene.add(tree);
+                    }
+                }
+
+                // Arbres à droite de la route
+                var numTreesX = 19, numTreesZ = 100, spacingX = 2000, spacingZ = 1000, startX = 3000,
+                    startZ = -50000;
+                startX = -10000;
+                for (var x = 0; x < numTreesX; x++) {
+                    for (var z = 0; z < numTreesZ; z++) {
+                        var tree = object.clone();
+                        tree.position.set(startX - x * spacingX - 4000 + Math.random() * spacingX, 0, startZ + z * spacingZ + Math.random() * spacingZ);
+                        tree.scale.setScalar(400);
+                        scene.add(tree);
+                    }
+                }
+            });
     });
 }
 
@@ -282,3 +332,4 @@ try {
     var errorReport = "Your program encountered an unrecoverable error, can not draw on canvas. Error was:<br/><br/>";
     $('#webGL').append(errorReport + e);
 }
+