Simulation N-corps gravitationnelle en C (norme 42, MiniLibX) - Big Bang procedural
  • C 90.3%
  • Makefile 9.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-05 15:16:29 +02:00
docs README: ajoute une capture d'ecran de la simulation 2026-09-05 15:16:29 +02:00
include big_bang: simulation N-corps en C (norme 42, MiniLibX) 2026-09-05 14:29:24 +02:00
mlx@f07d00f07c big_bang: simulation N-corps en C (norme 42, MiniLibX) 2026-09-05 14:29:24 +02:00
srcs big_bang: simulation N-corps en C (norme 42, MiniLibX) 2026-09-05 14:29:24 +02:00
.gitignore big_bang: simulation N-corps en C (norme 42, MiniLibX) 2026-09-05 14:29:24 +02:00
.gitmodules big_bang: simulation N-corps en C (norme 42, MiniLibX) 2026-09-05 14:29:24 +02:00
Makefile big_bang: simulation N-corps en C (norme 42, MiniLibX) 2026-09-05 14:29:24 +02:00
README.md README: ajoute une capture d'ecran de la simulation 2026-09-05 15:16:29 +02:00

big_bang

Simulation N-corps en C (norme 42, MiniLibX) : un « Big Bang » miniature.

Toutes les particules démarrent au même point avec une vitesse initiale aléatoire (l'expansion), puis la gravité newtonienne (avec un facteur d'adoucissement pour éviter les singularités) s'exerce entre chaque paire de particules à chaque frame. Sans intervention, l'expansion initiale finit par être rattrapée par l'attraction gravitationnelle : des amas et filaments de matière se forment, comme dans un vrai modèle de formation des structures cosmiques.

Simulation big_bang après ~90s : noyau lié entouré d'un halo de particules échappées

Build

git submodule update --init --recursive
make

Lancer

./big_bang

Contrôles

  • ESC ou croix de la fenêtre : quitter
  • R : relancer le Big Bang (réinitialise les particules)
  • Espace : pause / reprise

Structure

  • include/big_bang.h : structures (t_vec2, t_particle, t_universe, t_mlx, t_app) et prototypes
  • srcs/init_universe.c : création des particules au point d'origine
  • srcs/physics.c : gravité (paires) + intégration des positions
  • srcs/render.c : rendu direct dans le buffer de l'image MLX
  • srcs/hooks.c : boucle de simulation, clavier, fermeture
  • mlx/ : sous-module minilibx-linux

Réglages

Les constantes physiques (GRAVITY_CONST, SOFTENING, TIME_STEP, NB_PARTICLES) sont dans include/big_bang.h : à ajuster pour changer la vitesse d'effondrement ou la densité de l'univers simulé.