N-body gravity simulation in 2 or 3 dimensions using numpy
Find a file
2025-01-02 00:05:03 +13:00
data Add 3d state with many large masses 2023-10-08 13:13:14 -04:00
.gitignore Basic working implementation 2023-10-07 16:52:20 -04:00
data.py Improve 3d quality 2023-10-08 12:55:08 -04:00
gen_data.py Add generation of 3d data 2023-10-08 12:21:51 -04:00
main.py Add generation of 3d data 2023-10-08 12:21:51 -04:00
physics.py Support 3d simulations 2023-10-08 12:13:53 -04:00
README.md Add README 2023-10-08 13:08:15 -04:00
requirements.txt Update packages 2025-01-02 00:05:03 +13:00

nbody

Threw this together in a day or two cause I thought it would be fun to mess around with. Can simulate a few hundred bodies in 2 or 3 dimensions without much hassle (hardware dependent of course).

Comments are non-existent, sorry about that.

To set up:

python -m venv venv
source venv/bin/activate
pip -r requirements.txt

To run:

# 2d simulation
./main.py -f 2d/simple.csv

# 3d simulation, increased gravity
./main.py -f 3d/some.csv -d 3 -g 30

To create a new start state:

# New 3d simulation of 100 particles in 300x200 box with max velocity components 2 and mass up to 3
./gen_data.py -c 100 -w 300 -h 200 -v 2 -m 3 > data/2d/new.csv

# New 3d simulation of 500 particles in 1000^3 box with velocity components up to 3 and mass up to 5
./gen_data.py -c 500 -d 1000 -w 1000 -h 1000 -v 3 -m 5 > data/3d/new.csv