Simulation du Système Solaire
2024-08-03Simulation & Physique

Simulation du Système Solaire

PythonPygameObject-Oriented ProgrammingCSV I/OPhysics Simulation+1

01. Vue d'ensemble

Simulation Python avec Pygame pour visualiser en temps réel la mécanique orbitale, les interactions gravitationnelles et les lois physiques célestes.

Objectif

Construire un outil éducatif interactif et physiquement cohérent pour explorer la dynamique orbitale.

Résultat

Une simulation Pygame complète avec rendu des planètes, interactions gravitationnelles, support des lunes et export CSV.

02. Stack technique

Python
Pygame
Object-Oriented Programming
CSV I/O
Physics Simulation
Decorators & Logging

03. Fonctionnalités clés

Simulation gravitationnelle en temps réel entre tous les corps

Calcul précis de la vitesse orbitale et de la période (3e loi de Kepler)

Support des objets Lune et Étoile

Calcul de la vitesse d'échappement, gravité de surface et période orbitale par planète

Export CSV des attributs calculés

Logging dynamique et gestion d'erreurs

04. Pipeline d'ingénierie

01

Conception des classes Planet, Sun, Moon et Star avec méthodes physiques complètes

02

Chargement dynamique des données planétaires depuis un fichier CSV structuré

03

Ajout de décorateurs de logging pour tracer les entrées/sorties de fonctions et le temps d'exécution

04

Création d'une fonctionnalité d'export CSV pour enregistrer les attributs calculés

05. Défis & exécution

Contrainte

Simuler avec précision l'attraction gravitationnelle entre toutes les paires de planètes en temps réel

Exécution

Implémentation de la loi de gravitation universelle de Newton avec décomposition complète des forces via atan2.

Contrainte

Décomposer les vecteurs de force en composantes x/y pour des trajectoires multi-corps

Exécution

Optimisation de la boucle de simulation pour itérer efficacement sur toutes les paires de planètes.

Contrainte

Maintenir la stabilité de la simulation avec de grandes variations de pas de temps

Exécution

Ajout d'un pas de temps configurable pour ralentir ou accélérer la simulation.

Retour à l'archive.

Emmanuel Adoum | Portfolio