09For engineers
Capability map vs STK & GMAT, the accuracy story, and the professional workflow.
Audience: aerospace / satellite engineers, grad students, anyone who already knows the domain and wants the capability map, the accuracy story, and the workflow. Honest throughout — no marketing.
The 60-second orientation#
Delta V Dynamics is a browser-native mission-design platform with the physics in a deterministic Rust → WASM engine (identical binary client and server) and an operational Orekit (Apache-2.0) service for high-fidelity work. The strategic bet is not to clone STK's module catalog, but to cover the ~20% of analyses ~80% of missions need — propagate · target · access · coverage · link — wrapped in collaboration, community, and a UI a desktop license can't match, free for academia.
If you've used GMAT or STK, the mental model is: GMAT's solver core and STK's bread-and-butter analyses, running at 60 fps in a tab, as forkable documents.
Capability map — what exists today#
Astrodynamics core (Rust engine, client-side, golden-bit tested)#
| Capability | Function(s) | Notes |
|---|---|---|
| Two-body propagation | propagate_orbit | RK4; L0, validated vs analytic refs |
| J2 perturbation | propagate_orbit_j2 | L1; matched to a GMAT-J2 case; nodal regression tested |
| Drag + 3rd-body (Sun/Moon) | propagate_orbit_forces | L2/L3 prototype (~km), behind a force bitmask |
| Elements ↔ state | state_from_elements, orbital elements readouts | Classical → ECI |
| Hohmann transfer | hohmann_transfer, hohmann_delta_v | Δv budget + transfer state |
| Lambert solver | lambert_uv (universal variables, Stumpff) | Validated vs Vallado Ex.7-5 & Curtis Ex.5.2 (<1 m/s) |
| Porkchop grids | porkchop_grid | Lambert-in-a-loop, heliocentric; Mars/Venus/Jupiter |
| Differential corrector (scalar) | correct_single_burn | GMAT-style Vary/Achieve; Newton + FD Jacobian; apoapsis/period/inclination |
| Differential corrector (vector) | correct_intercept | Single-shooting intercept; Levenberg–Marquardt; damped at conjugate points; Broyden update |
| Finite burns | propagate_finite_burn | RK4 7-state [r,v,m], thrust along v̂; gravity/steering loss |
| Event location | find_orbit_events | Apsis / node / eclipse via sign-change + bisection |
| Staged Δv / payload | staged_delta_v, max_payload_for_dv, propellant_fraction | Tsiolkovsky; bisection payload solver |
| Sun/Moon/planet ephemerides | sun_position_eci, moon_position_eci, planet_position_* | Analytic |
Access, coverage, links (S2 HORIZON — engine + UI)#
| Capability | Function(s) | Notes |
|---|---|---|
| GMST / station geometry | gmst_rad, subpoint | Vallado linear GMST; ECI↔ECEF |
| Access intervals | access_intervals | Rise/set via march-and-bisect on elevation−mask; max-el + slant range per pass; honest partial passes |
| Link budget | link_budget | Friis → EIRP → C/N0 → Eb/N0; labeled first-order; FSPL textbook-checked |
| Coverage grids | coverage_grid | Lat/lon grid × constellation → coverage fraction + max revisit gap |
| Walker constellations | walker_constellation, coverage_central_angle | i: T/P/F Walker-Delta; GPS/Galileo/Globalstar/Iridium presets |
| TLE ingest | tle_to_state | Kozai a-recovery (WGS-72), Kepler solve; CelesTrak GP; deep-space (P≥225 min) rejected |
Operational fidelity (Orekit, server-side — L2+)#
Full gravity field, NRLMSISE-00 drag, SRP, Sun/Moon/planet third-body (JPL
ephemerides). Wired browser → Fastify API (POST /api/v1/propagate, shared Zod
schema, honest error taxonomy) → FastAPI + orekit_jpype. Verified end-to-end
(e.g. a 300 km / 12 h drag decay of ~2.04 km). The Fidelity panel overlays the
authoritative trajectory against the browser line with a computed divergence.
Discovery (Deep Field — separate stack, NASA pipeline products)#
Lightkurve/astroquery/MAST/Exoplanet-Archive via a Python FastAPI service: light curve fetch + detrend, BLS periodogram with robust statistics, phase fold + a 7-check vetting suite, live NASA Exoplanet Archive cross-match, a committed TOI catalog (~7.6k stars), per-star MAST observation search, and a scikit-learn vetting model. See the Deep Field guide. (This is data analysis over pipeline products, not deterministic physics — it deliberately uses astronomy units and never enters the WASM engine.)
How this maps to STK / GMAT#
| You'd reach for… in | Delta V equivalent today | Status |
|---|---|---|
| GMAT Propagate + force models | L0/L1 client, L2+ Orekit server | ✅ (prototype L2/L3 client) |
| GMAT Target / Vary-Achieve | Target panel (correct_single_burn / correct_intercept) | ✅ scalar + vector |
| GMAT finite burns | Finite burn panel | ✅ (L0 constant-thrust along v̂) |
| GMAT Lambert / porkchop | Porkchop tool | ✅ |
| GMAT optimizer (SQP), low-thrust | — | ⏳ later (after a real use case) |
| STK Access | Access panel | ✅ |
| STK Comm / link budget | Access link desk | ✅ first-order |
| STK Coverage | Coverage panel + globe heatmap | ✅ |
| STK constellation design | Walker builder | ✅ |
| STK/GMAT TLE + SGP4 | Track panel (quick-look) | ◑ quick-look now; full SGP4 = S7 |
| STK orbit determination | — | ⏳ S7 (Orekit BLS/Kalman designed, not built) |
| STK conjunction (CA) | — | ⏳ S7 (screening, not operational) |
| CCSDS OEM/OPM/CDM interop | — | ⏳ S7 |
| STK radar / EOIR / Aviator | — | ❌ out of scope (later horizon; no missile modeling, ever) |
Legend: ✅ shipped · ◑ partial/quick-look · ⏳ planned · ❌ not planned soon.
The accuracy story (read chapter 7 in full)#
- L0 is validated against analytic references (ISS speed/period, Hohmann Δv), not yet against GMAT/STK, and not marketed as such.
- L1 (J2) has been matched to a GMAT-J2 case and has a nodal-regression test.
- L2/L3 in-browser are prototypes (~km) — for seeing the effect, not for operations.
- Operational fidelity = the Orekit server (L2+), verified end-to-end.
- Everything is deterministic and golden-bit tested — reproducible bit-for-bit across machines, which is the basis for verifiable shared results and anti-cheat replay. 66 cargo tests green; clippy clean.
- Link budgets are labeled first-order; coverage is quick-look; TLE propagation is osculating-at-epoch quick-look that drifts from SGP4 over days. Each label appears in-product.
A representative workflow#
- Define the orbit — Orbit panel preset or elements.
- Plan the transfer — Maneuver (Hohmann) for a budget, or Target to hit a precise apoapsis/period/inclination/intercept and watch the corrector converge.
- Check the real burn — Finite burn to see gravity/steering loss vs the impulsive ideal.
- Interplanetary? — switch to Solar System view, open Porkchop, find the launch window.
- Ground segment — Access for pass tables + link budget; Coverage + Walker builder for a constellation, with the heatmap painted on the globe.
- Fly a real bird — Track a current TLE from CelesTrak; draw AOS/LOS pins.
- Commit with precision — Fidelity → Compute L2+ (Orekit, server) and read the divergence.
- Vehicle sizing — Vehicle/VAB for staged Δv and payload-to-destination.
- Save → fork → publish — the result is a
.dvmissiondocument with lineage; share the link, post thedv-brief to the Loop.
Data sources & licensing (so you can cite)#
- TLEs: CelesTrak GP (redistribution-friendly) — not Space-Track.
- Exoplanets: NASA Exoplanet Archive + MAST (public; cached respectfully, credited per NASA/STScI guidelines).
- Ephemerides: analytic in-browser; JPL via Orekit server-side.
- Reference cases: Vallado, Curtis (validation suite).
What's coming for pros (the Precision Desk, S7)#
Unwrapping more of Orekit — TLE/SGP4 at precision, orbit determination (batch-LS / Kalman with residual plots), maneuver estimation, CCSDS OEM/OPM/CDM import-export, DSST for long-horizon studies, and conjunction screening (CDM export; honest "screening, not operational CA" label). This is the brief that turns Delta V from "credible" to "professionally trusted."
For the deep technical truth, see the repo's TECHNICAL_BIBLE.md,
ARCHITECTURE.md, and packages/engine/src/lib.rs.