Ce projet modélise le syndrome de Kessler, un phénomène où les collisions entre satellites génèrent des débris qui, à leur tour, provoquent d’autres collisions.
À long terme, certaines orbites deviennent impraticables à cause de la densité croissante de débris spatiaux.
La simulation est réalisée avec Godot Engine 4.5, en utilisant une approche multi-agents.
Chaque agent agit selon un comportement propre :
-
Agent 1 – Satellite fonctionnel 🛰️
- Se déplace sur une orbite circulaire.
- Peut exploser lors d’une collision.
- Fournit des services comme GPS, télécommunication, observation.
-
Agent 2 – Débris spatial 💥
- Résultat des collisions.
- Se déplace à grande vitesse de façon aléatoire.
- Peut entrer en collision avec d’autres objets et créer plus de débris.
-
Agent 3 – Lanceur 🚀
- Envoie périodiquement de nouveaux satellites.
- Peut générer des débris s’il est détruit.
- Le lanceur crée de nouveaux satellites à intervalles réguliers.
- Les satellites orbitent autour de la Terre à différentes altitudes.
- Lorsqu’un satellite est percuté par un débris, il explose et crée de nouveaux débris.
- Ces débris entrent en collision avec d’autres objets, créant une cascade de collisions.
- À terme, certaines zones orbitales deviennent saturées, symbolisant la cascade de Kessler.
| Satellite3D.gd | Gère l’orbite et l’explosion des satellites |
| Debris3D.gd | Gère le comportement physique et les collisions des débris |
| Launcher3D.gd | Crée des satellites à intervalles réguliers |
| SimulationManager3D.gd | Gère la densité orbitale et l’indice de Kessler |
| CameraController.gd | Contrôle de la caméra (rotation, zoom) |
| HUD.gd | Affichage des statistiques et commandes |
| Main.gd | Initialisation générale de la scène principale |
- Ouvre Godot 4.x.
- Ouvre le dossier du projet (contenant
project.godot). - Ouvre
scenes/main/Main.tscn(ouEnv.tscn) et clique sur Play. - Utilise le HUD pour : pause / reset / changer vitesse.
- Godot Engine 4.5
- Langage : GDScript
- Simulation physique 3D avec
RigidBody3DetArea3D - Interface graphique avec
CanvasLayeretControl
Projet réalisé par Imane OUCHEN
Sous licence libre (MIT)