Skip to content

Getting Started

Clone the repository and build:

Terminal window
git clone https://github.com/sksat/orts.git
cd orts
cargo build --workspace

orts run propagates an orbit and records the result. It needs an orbit to propagate — --sat altitude=400 is the shortest way to say so:

Terminal window
cargo run --bin orts -- run --sat altitude=400

That writes output.rrd and, with no --duration, covers one orbital period. For CSV on stdout instead:

Terminal window
cargo run --bin orts -- run --sat altitude=400 --format csv

orts serve streams the simulation over WebSocket and serves the embedded viewer:

Terminal window
cargo run --bin orts -- serve --sat altitude=400

Then open http://localhost:9001 in your browser.

Terminal window
# Higher altitude orbit with larger time step
cargo run --bin orts -- serve --sat altitude=800 --dt 5
# Fine time step with decimated output
cargo run --bin orts -- serve --sat altitude=400 --dt 1 --output-interval 10

--sat is a shorthand for simple cases. For generated or multi-satellite setups, describe the mission in a config file:

Terminal window
cargo run --bin orts -- config example > mission.toml
cargo run --bin orts -- config validate mission.toml
cargo run --bin orts -- serve --config mission.toml

orts --help lists every subcommand (run, serve, replay, convert, config), and orts <subcommand> --help lists its options.

CrateDescription
ortsCore orbital mechanics library
orts-cliCLI and WebSocket server
arikaGeodesy and coordinate transforms
utsuroiODE numerical integrators
tobariAtmosphere models
uneriDuckDB + uPlot charting library
viewerReact + Three.js 3D visualization