Skip to content
Handbook/For engineers
For engineers· 11 min read

09For engineers

Capability map vs STK & GMAT, the accuracy story, and the professional workflow.

departure date →

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)#

CapabilityFunction(s)Notes
Two-body propagationpropagate_orbitRK4; L0, validated vs analytic refs
J2 perturbationpropagate_orbit_j2L1; matched to a GMAT-J2 case; nodal regression tested
Drag + 3rd-body (Sun/Moon)propagate_orbit_forcesL2/L3 prototype (~km), behind a force bitmask
Elements ↔ statestate_from_elements, orbital elements readoutsClassical → ECI
Hohmann transferhohmann_transfer, hohmann_delta_vΔv budget + transfer state
Lambert solverlambert_uv (universal variables, Stumpff)Validated vs Vallado Ex.7-5 & Curtis Ex.5.2 (<1 m/s)
Porkchop gridsporkchop_gridLambert-in-a-loop, heliocentric; Mars/Venus/Jupiter
Differential corrector (scalar)correct_single_burnGMAT-style Vary/Achieve; Newton + FD Jacobian; apoapsis/period/inclination
Differential corrector (vector)correct_interceptSingle-shooting intercept; Levenberg–Marquardt; damped at conjugate points; Broyden update
Finite burnspropagate_finite_burnRK4 7-state [r,v,m], thrust along v̂; gravity/steering loss
Event locationfind_orbit_eventsApsis / node / eclipse via sign-change + bisection
Staged Δv / payloadstaged_delta_v, max_payload_for_dv, propellant_fractionTsiolkovsky; bisection payload solver
Sun/Moon/planet ephemeridessun_position_eci, moon_position_eci, planet_position_*Analytic
CapabilityFunction(s)Notes
GMST / station geometrygmst_rad, subpointVallado linear GMST; ECI↔ECEF
Access intervalsaccess_intervalsRise/set via march-and-bisect on elevation−mask; max-el + slant range per pass; honest partial passes
Link budgetlink_budgetFriis → EIRP → C/N0 → Eb/N0; labeled first-order; FSPL textbook-checked
Coverage gridscoverage_gridLat/lon grid × constellation → coverage fraction + max revisit gap
Walker constellationswalker_constellation, coverage_central_anglei: T/P/F Walker-Delta; GPS/Galileo/Globalstar/Iridium presets
TLE ingesttle_to_stateKozai 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… inDelta V equivalent todayStatus
GMAT Propagate + force modelsL0/L1 client, L2+ Orekit server✅ (prototype L2/L3 client)
GMAT Target / Vary-AchieveTarget panel (correct_single_burn / correct_intercept)✅ scalar + vector
GMAT finite burnsFinite burn panel✅ (L0 constant-thrust along v̂)
GMAT Lambert / porkchopPorkchop tool
GMAT optimizer (SQP), low-thrust⏳ later (after a real use case)
STK AccessAccess panel
STK Comm / link budgetAccess link desk✅ first-order
STK CoverageCoverage panel + globe heatmap
STK constellation designWalker builder
STK/GMAT TLE + SGP4Track 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#

  1. Define the orbitOrbit panel preset or elements.
  2. Plan the transferManeuver (Hohmann) for a budget, or Target to hit a precise apoapsis/period/inclination/intercept and watch the corrector converge.
  3. Check the real burnFinite burn to see gravity/steering loss vs the impulsive ideal.
  4. Interplanetary? — switch to Solar System view, open Porkchop, find the launch window.
  5. Ground segmentAccess for pass tables + link budget; Coverage + Walker builder for a constellation, with the heatmap painted on the globe.
  6. Fly a real birdTrack a current TLE from CelesTrak; draw AOS/LOS pins.
  7. Commit with precisionFidelityCompute L2+ (Orekit, server) and read the divergence.
  8. Vehicle sizingVehicle/VAB for staged Δv and payload-to-destination.
  9. Save → fork → publish — the result is a .dvmission document with lineage; share the link, post the dv-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.

Spotted something? Suggest an editPart of the Delta V Dynamics handbook