astrodyn_runner
Standalone arena-state simulation harness for the
astrodyn orbital-dynamics
pipeline.
astrodyn_runner is a parallel non-Bevy consumer of astrodyn. It owns
its own state and drives the same pipeline functions the Bevy adapter
runs from system schedules. Used for:
- Tier 3 cross-validation tests (
tests/tier3_*.rs) — propagating from JEOD initial conditions and comparing against Trick reference CSVs without standing up a BevyApp. - Batch propagation, scripting, and offline studies that don't need ECS scheduling, parallelism, or Bevy plugins.
Layered architecture
astrodyn
/ \
astrodyn_bevy astrodyn_runner ← this crate
(Bevy adapter) (plain Rust harness)
astrodyn_runner and astrodyn_bevy sit next to each other in the dep
graph — both depend on astrodyn and the wider astrodyn_* family;
neither depends on the other. Mission code targeting the production
Bevy runtime depends on astrodyn_bevy, never on astrodyn_runner.
Quick start
[]
= "0.1"
= "0.1"
use SimulationBuilderExt;
use Mission;
let mut sim = iss_leo.into_builder.build.unwrap;
sim.step_n;
let body = sim.body;
println!;
Mission::iss_leo() is one of the canned scenarios in
astrodyn::recipes::scenarios; see that module for the full list.
For Tier 3 verification scaffolding (Trick CSV diff, JEOD-source-backed
initial conditions), reach for astrodyn_verif_jeod in addition to this
crate.
See also
- Project README and
CLAUDE.md— workspace-level architecture, Tier conventions, regen workflow. - Rendered rustdoc: https://docs.rs/astrodyn_runner