Partie 2 - Du prototype à l’étude mathématique - Réalisation de la première "vraie" version JavaScript

Une fois le premier modèle mathématique en place, j’ai décidé de passer à une version plus propre, complète et structurée en JavaScript. L’idée était de passer d’un simple script à une vraie application web interactive, qui permette de visualiser en temps réel le vol d’une fusée à partir de paramètres choisis par l’utilisateur.

J’ai commencé par revoir l’architecture de mon code. J’ai transformé ma boucle de simulation en fonction réutilisable, prenant en entrée un objet contenant les paramètres physiques de la fusée (masse, poussée, surface frontale, etc.). J’ai ensuite déplacé le calcul de la trajectoire dans une classe à part, pour isoler les éléments liés au mouvement. Cela m’a permis de préparer le terrain pour une gestion multiple de modèles de fusées dans le futur.

Sur le plan visuel, j’ai utilisé le canvas HTML5 pour tracer l’évolution de la position de la fusée en fonction du temps. J’ai aussi affiché les courbes de la vitesse et de l’accélération à l’aide de graphiques simples, pour que l’utilisateur puisse visualiser l’évolution du vol étape par étape. Même si le rendu était basique, cette étape m’a montré à quel point une simulation peut devenir pédagogique si elle est bien présentée.

L’interface HTML était encore rudimentaire : quelques champs pour entrer les paramètres (masse, poussée, durée), un bouton “Lancer”, et un petit encart pour afficher les résultats chiffrés. Mais cela suffisait à créer une interaction utilisateur. Chaque clic lançait un calcul complet et actualisait les graphiques. J’avais l’impression que mon programme « vivait ».

Pour que le code reste compréhensible et évolutif, j’ai commencé à créer un dossier js/Simulation, avec des modules séparés : un pour les constantes physiques, un autre pour les équations de mouvement, un pour l’historique des trajectoires, etc. Ce travail de séparation des responsabilités était nouveau pour moi, mais il m’a beaucoup aidé par la suite, notamment lors de l’intégration avec le backend.

J’ai aussi pris le temps d’ajouter une gestion des erreurs : si l’utilisateur entrait une poussée négative ou une masse trop faible, la simulation affichait un message explicatif plutôt que de planter. C’était un détail important pour rendre le programme utilisable par quelqu’un d’autre que moi.

Ce prototype a été la première version publique de ma simulation. Je l’ai hébergée temporairement pour la montrer à quelques amis et à un professeur de physique, ce qui m’a permis de recueillir des retours. Certains trouvaient que l’affichage était trop rapide, d’autres auraient voulu pouvoir zoomer sur les courbes. Ces remarques m’ont poussé à imaginer des évolutions futures : ajout de plusieurs axes (X/Y), inclinaison au lancement, ou même un suivi 3D.

Voilà ce que cela donnait, je commençais à être fier 😋 :

Deuxième version du Programme

Synthèse

La réalisation de cette première version m’a permis de passer d’une idée scientifique abstraite à une application interactive concrète. J’ai appris à structurer un projet JavaScript plus complexe, à créer une interface utilisateur simple mais fonctionnelle, et à transformer un ensemble de calculs en une simulation visuelle. C’est à ce moment-là que j’ai commencé à considérer le projet comme une vraie application, pas seulement comme un exercice personnel.