How arima-ch/python-simulations works
The repository contains two independent runnable physics experiments: a Pygame particle CPU-load test and a cinematic pyglet/ModernGL n-body visualization. The particle workflow initializes a visible simulation and optional worker processes, advances particle collisions, and reports frame counts. The n-body workflow spawns particles, computes gravitational forces with a Barnes–Hut tree, integrates motion, and renders trails and glow. The sampled excerpts do not show all n-body setup and rendering details, so uncertain internal wiring is omitted.
Main entry points: nbody_cinematic.py N-body app · particle_simulation.py Simulation runner
Components 13
Particle CPU Test
- Simulation runner
particle_simulation.py - Worker pool
particle_simulation.py - CPU worker
particle_simulation.py
N-Body Visualization
- N-body app
nbody_cinematic.py - Particle state
nbody_cinematic.py
Physics Core
- Particle step
particle_simulation.py - Barnes-Hut tree
nbody_cinematic.py - Body model
nbody_cinematic.py
Other components
- User
- Pygame display
- Pyglet window
- ModernGL renderer
- Rendered display
Connections 13
- User → Simulation runner: runs
- Simulation runner → Worker pool: starts workers
- Worker pool → CPU worker: dispatches
- CPU worker → Particle step: advances state
- Simulation runner → Particle step: advances state
- Simulation runner → Pygame display: draws particles
- User → N-body app: runs
- N-body app → Pyglet window: creates window
- N-body app → ModernGL renderer: creates context
- N-body app → Particle state: updates particles
- N-body app → Barnes-Hut tree: computes forces
- Barnes-Hut tree → Body model: evaluates force
- ModernGL renderer → Rendered display: renders frames