Système solaire
ISEN CIR 1 - 2022
Rôle
Développeur
Durée et résultat
1 Semaine | 19,5/20
Équipe
Projet individuel
Liens
Aperçu
En juin 2022, dans le cadre de ma première année à l’ISEN, j’ai réalisé un projet individuel (initialement prévu en binôme) portant sur le calcul et la représentation du système solaire. Ce projet, qui s'est déroulé sur une semaine, combinait des calculs en C pour simuler les trajectoires des planètes et le développement d’un site web interactif pour visualiser ces données. J’ai utilisé des méthodes de calcul comme Euler, Euler asymétrique et Runge-Kutta d'ordre 2, et la sortie de ces calculs était un fichier JSON contenant les trajectoires des planètes. Le site web affichait ces trajectoires grâce à la librairie graphique p5.js
Objectif
Calculer et visualiser les trajectoires planétaires avec plusieurs méthodes numériques
L'objectif principal du projet était double :
D’abord, calculer les trajectoires des planètes du système solaire en C en appliquant différentes méthodes numériques de résolution d’équations différentielles (Euler, Euler asymétrique, et Runge-Kutta d’ordre 2).
Ensuite, développer un site web capable d’afficher ces trajectoires de manière dynamique.
Contexte
Un projet individuel de simulation numérique
Le projet faisait partie du cursus de la première année en CIR à l'ISEN, et, bien que prévu en binôme, je l'ai réalisé seul. Ce défi a exigé de moi une gestion rigoureuse du temps et une approche méthodique pour résoudre les problématiques techniques liées à la simulation et à la visualisation des données en seulement une semaine.
Processus et méthodologie
Simulation en C et visualisation avec p5.js.
Calculs numériques en C : J’ai commencé par écrire un programme en langage C pour calculer les trajectoires des planètes du système solaire en utilisant trois méthodes de calcul : Méthode d'Euler : Une méthode simple mais moins précise. Méthode d'Euler asymétrique : Une variation améliorant la stabilité des calculs. Méthode de Runge-Kutta d'ordre 2 : Une méthode plus précise pour résoudre les équations différentielles. Le programme produisait un fichier JSON contenant les trajectoires calculées pour chaque planète.
Développement du site web : Une fois le fichier JSON généré, je l'ai intégré dans un site web conçu avec HTML, CSS, et JavaScript. Le site permettait de charger les trajectoires planétaires via un bouton et d’afficher les données en utilisant la librairie p5.js pour le rendu graphique.
Visualisation interactive : La représentation des trajectoires sur le site était interactive, avec plusieurs fonctionnalités avancées : Accélération/Décélération du temps pour visualiser les trajectoires à différentes vitesses. Zoom et inclinaison du système solaire pour l'explorer sous différents angles. Possibilité de comparer les différentes méthodes de calcul (Euler, Euler asymétrique, Runge-Kutta) en les affichant indépendamment ou simultanément grâce à des commandes intégrées.
Défis rencontrés et solutions
Gérer la complexité du projet en solo
Complexité des méthodes de calcul : La principale difficulté était de bien comprendre et implémenter les méthodes numériques tout en assurant la précision des résultats. Chaque méthode avait ses particularités, et j’ai dû tester rigoureusement le programme pour vérifier la cohérence des trajectoires simulées.
Visualisation interactive et manipulation des données : L’un des défis majeurs a été l’implémentation de la visualisation en 3D interactive avec p5.js.
Projet en solo : Réaliser un projet prévu pour deux personnes en tant que monome a nécessité une gestion stricte du temps. J'ai divisé le projet en étapes claires (calculs, visualisation, intégration) et fait preuve d'autonomie pour surmonter chaque difficulté.
Résultats
Un site web interactif et une simulation fidèle des trajectoires planétaires
Le projet a été un succès, avec une simulation précise des trajectoires des planètes et une visualisation interactive qui permettait de manipuler ces données en temps réel. Le site offrait une interface intuitive pour explorer les différentes méthodes de calcul et comparer leurs résultats. Ce projet a été évalué avec une note de 19,5/20.
Retours d'expérience et compétences acquises
Méthodes numériques, développement web et visualisation interactive
Ce projet m’a permis de renforcer mes compétences en programmation C, notamment dans l’utilisation de méthodes numériques pour résoudre des problèmes complexes. La gestion autonome d’un projet initialement prévu en binôme m’a aussi appris à mieux gérer mon temps et à résoudre des problématiques techniques de manière efficace.