Simulation N-corps gravitationnelle en C (norme 42, MiniLibX) - Big Bang procedural
- C 90.3%
- Makefile 9.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014uxtxNpEwsn1dK8n8gG69A |
||
| docs | ||
| include | ||
| mlx@f07d00f07c | ||
| srcs | ||
| .gitignore | ||
| .gitmodules | ||
| Makefile | ||
| README.md | ||
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.
Build
git submodule update --init --recursive
make
Lancer
./big_bang
Contrôles
ESCou croix de la fenêtre : quitterR: 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 prototypessrcs/init_universe.c: création des particules au point d'originesrcs/physics.c: gravité (paires) + intégration des positionssrcs/render.c: rendu direct dans le buffer de l'image MLXsrcs/hooks.c: boucle de simulation, clavier, fermeturemlx/: 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é.
