A simple visualizer of planetary motion based on Newtonean mechanics.
Main intent of the project is to get some familiarity with Rust.
You can describe a simulation using .ron files with the parameters. See assets directory for examples.
Place compiled planets binary next to the assets
directory and start it.
,
- slows simulation down;.
- speeds simulation up;p
- pauses/resumes simulation;mouse wheel
- zooms in/out;esc
- exit simulation;
See cli help for details
planets --help
The simulation runs in the fullscreen mode by default.
You can change it to windowed mode via the --windowed
flag.
You can control the resolution using the --resolution=800x600
flag.
Note that when running in fullscreen mode on some systems the resolution might be igored. The OS might start simulation in a native screen resolution.
The project uses piston engine for rendering. World is built with hecs - nice implementation of ECS pattern.
- Paths to assets and file names inside are hardcoded.
- JetBrains - for CLion and JetBrains Mono font
- Kerbal Space Program - for inspiration and a ton of fun :)
- Fix immediate usage issues;
- Use patched conics for orbit prediction (and, possibly, for simulation as well);
- Change camera focus;
- Detect collisions;