Computational Proof
We certify the computation. You certify the inputs. Anyone can verify a signed result without trusting us. Your data stays your responsibility — and your property.
--
Headless API SaaS Engine for Modern Astrodynamics & Spaceflight
Deterministic computational modules exposed as a pure machine interface — no console, no dashboards, no operator seat. Requests carry your state vectors in; signed, verifiable results and verification artifacts come back out. Every engine is anchored either to a published reference value or to a structural invariant the mathematics forces, and the anchors are listed so you can re-run them yourself. Where a structural invariant exists — Laplace's equation on a gravity gradient, the symplectic form on conservative flow — it is tested too, because an invariant cannot be satisfied by accident the way a tolerance can.
The anchors above are claims. This is the evidence: closed-form and conservation tests, a reference-frame chain checked against an independent implementation, and the limits of every result stated with it.
FOUR FOUNDATIONAL PRINCIPLES · BINDING ACROSS EVERY MODULE, EVERY REQUEST, EVERY RELEASE.
We certify the computation. You certify the inputs. Anyone can verify a signed result without trusting us. Your data stays your responsibility — and your property.
Computation requests — state vectors, ephemerides, covariances — are computed on and discarded, and a signed result carries the SHA-256 of your request rather than the request, unless you ask for it to be echoed back. The one exception is Sweep data: an SSA catalogue uploaded for signed derivation is held in memory for up to 24 hours, then expires. Credentials are held only as digests.
The physics cannot be switched off. Tier-0 variables sit beyond every password. Including ours.
Advisory class. Results are signed and independently verifiable, but not flight certified. We advise; you execute. Requires explicit FDO sign-off.
MODULES IN SIX FAMILIES · MOST ADDRESSABLE AS AN INDEPENDENT HEADLESS ENDPOINT.
The modules are grouped by what they are for rather than by which library they live in. Several of them compose: screening finds the encounter, the state transition matrix carries each object's covariance to it, the probability engine scores the geometry, and the manoeuvre engine prices the fix. That chain is the reason they are listed together, and it runs end to end from two state vectors without a conjunction data message from anyone else.
The trajectory itself, and every force that acts on it. Conservative terms come from a potential and cannot change orbital energy; the non-conservative ones can, and are the only reason an orbit decays.
Numerically integrated arcs under the full zonal field J2 through J8 from EGM96 coefficients, with the first post-Newtonian Schwarzschild term and Lense-Thirring frame dragging available separately so each can be measured on its own. These are integrated trajectories, not orbit-averaged secular rates.
Atmospheric drag against a co-rotating atmosphere, and solar radiation pressure with a dual-cone umbra and penumbra. Altitude is geodetic, not geocentric: the ellipsoid lifts the sub-satellite point by up to 21 km at mid latitudes, which against a 60 km thermospheric scale height is a factor of 1.4 in density.
Chebyshev interpolation of a caller-supplied kernel, with split-epoch Julian dates throughout because an absolute Julian Date near J2000 has a 40 µs ulp — 1.2 m of solar position. Outside the supplied span it refuses rather than extrapolating a fit into a confident wrong answer.
Störmer-Cowell order 8, summed Adams-Moulton, PECE. The coefficient tables are derived as exact rationals in the source rather than transcribed as decimals, so a table that does not sum to unity cannot survive a build.
A state without a covariance is a guess with extra digits. These carry the customer's own orbit-determination uncertainty forward, and say when the mapping has stopped being trustworthy.
The variational equations dΦ/dt = A(t)Φ, integrated jointly with the trajectory under the same force model — six state components and thirty-six matrix components as one system, so the two cannot drift apart. The gravity gradient is analytic through J8, and its trace vanishes identically because the perturbing potential is harmonic outside the body.
Along-track uncertainty in low Earth orbit does not stay Gaussian — it curves with the orbit, and a collision probability built on a linearly mapped covariance can then be wrong by orders of magnitude while looking healthy. This measures the curvature the linear map cannot represent, and reports when to stop trusting it.
The full chain, not a re-score. Two state vectors in; time of closest approach, a covariance at that epoch, a probability, and a candidate avoidance manoeuvre — with no externally produced conjunction message anywhere in the path.
Every stationary point of the range is a root of Δr·Δv, and the minima are the sign changes. The engine reports its own sampling density against the shorter orbital period, because its characteristic failure is not a wrong number — it is stepping over an approach entirely and saying nothing at all.
Foster encounter-plane probability, integrated in the covariance's principal axes where the Gaussian separates. The second axis then reduces to an exact error-function difference, so an elongated covariance — the normal case, where along-track uncertainty exceeds radial by two or three orders of magnitude — never has to be resolved by a grid.
The cheapest burn at a given lead time that brings Pc under a threshold. The burn-to-miss map is the state transition matrix, not a Clohessy-Wiltshire approximation. Execution error is carried explicitly, because a burn's own uncertainty works against the separation it just bought.
What the residuals say about an object you do not control: whether it manoeuvred, what is pushing on it, how draggy it is, and how long it has left.
Was there a burn, when, and how large. A continuous force makes the velocity residual a straight line; an impulse makes it a step. Both hypotheses are fitted and compared by residual sum of squares, so the verdict is a model comparison rather than a threshold on one statistic.
Recovers a continuous perturbing force from a residual time series using two independent estimators — a slope through the velocity residuals and a curvature through the position residuals. Their agreement is the confidence, and the residual curvature is reported separately as the test of whether a constant force was the right model at all.
CdA/m measured from the object's own decay, which for a tumbling fragment is the only evidence there is. Only the product ρB is observable, so the estimate is explicitly conditional on the density model and the fit and total uncertainties are reported as separate numbers.
Time to re-entry by secular decay, with bounds obtained by re-integrating at the edges of the declared uncertainties rather than by differentiating — lifetime goes as roughly 1/ρB and a linear error bar badly understates the slow end. The solar flux assumption is stated with every answer, because it moves the result more than the spacecraft does.
The trades that happen before anything flies — transfers, fleet geometry, low-thrust arcs, cislunar structure, and the thermal environment they all sit in.
Lambert targeting on universal variables with Stumpff functions, Hohmann and combined plane-change trades, and Tsiolkovsky propellant accounting.
Walker delta-pattern slot assignment, orbital resonance stability mapping, and station-keeping maintenance planning across a fleet.
Edelbaum low-thrust spiral trades for electric propulsion, orbit raising, and long-duration transfer where the impulsive approximation stops being defensible.
Circular restricted three-body dynamics and the Jacobi integral, differentially corrected halo and Lyapunov orbits about the collinear points, and the stable and unstable manifolds that carry transfers into and out of them.
Transient thermal node networks with orbit-driven eclipse fraction, sharing the same conical shadow geometry the radiation-pressure model uses, so the two cannot disagree about where the sunlight is.
The part that is not physics: what the service promises about a number before you rely on it.
Every engine is anchored either to a published reference value or to a structural invariant the mathematics forces, and the anchors are listed so the check can be re-run independently. Structural invariants are tested alongside numerical comparison — Laplace's equation on the gravity gradient, the symplectic form on conservative flow, Abel's identity tying a determinant to a Jacobian trace — because those cannot be satisfied by a coincidence.
State vectors are processed in memory and are not written to disk, not logged, and not retained after the response is produced. The one exception is a catalogue you upload for signed derivation: it is held in memory for 24 hours so a later request can name it, then it expires. There is no operator console and no seat to log into — the only surface is the API.
THE DOMINANT TERMS THE PROPAGATOR INTEGRATES, AT THEIR ACTUAL MAGNITUDE.
A force model is a set of decisions about what to include, and those decisions are only defensible next to the numbers. The table below is acceleration in km/s² computed by the engines themselves at three altitudes, for a spacecraft with a ballistic coefficient of 0.02 m²/kg under moderate solar activity.
| Altitude | Two-body | Zonal J2–J8 | Drag | Solar radiation | 1PN relativity | Lense-Thirring |
|---|---|---|---|---|---|---|
| 400 km | 8.6760e-03 | 1.3929e-05 | 7.8397e-09 | 1.1856e-10 | 1.7030e-11 | 3.3846e-13 |
| 800 km | 7.7360e-03 | 1.1075e-05 | 3.6729e-11 | 1.1856e-10 | 1.4339e-11 | 2.7692e-13 |
| 1200 km | 6.9409e-03 | 8.9163e-06 | 3.0945e-12 | 1.1856e-10 | 1.2186e-11 | 2.2905e-13 |
At 400 km the drag term is 460× the first post-Newtonian relativity term, and radiation pressure is 7× it. A model that carries the relativistic correction while omitting both is precise about the wrong things. Above roughly 700 km radiation pressure overtakes drag and stays the dominant non-conservative force.
Density arrives through a caller-supplied callback rather than a hard-wired model. That is partly architecture — the physics layer does not link the environment layer — and partly honesty: an empirical atmosphere carries a 15–30% uncertainty of its own, and which model a customer trusts is their decision to make, not ours to bury.
If the atmosphere model cannot answer, the acceleration becomes NaN rather than zero. Silently dropping drag at 300 km does not produce a slightly worse orbit; it produces a satellite that never decays, which is a confident wrong answer. A request can be validated before the run so the failure arrives as an error, not as an arc full of NaNs.
TWO STATE VECTORS IN · A PRICED MANOEUVRE OUT · NO EXTERNAL CDM.
Most conjunction tooling starts from a conjunction data message someone else produced, which means it can re-score a screening it did not perform, against a covariance it did not propagate. Four modules here close that loop. Each is useful alone; together they answer the operational question, which is not how likely is this but what do I do about it, and what does it cost.
Both objects are propagated under one force model and every range minimum in the window is located and refined below the sample cadence. The engine publishes its own sampling density, because the dangerous failure here is silence rather than error.
Each object's orbit-determination covariance is mapped from its own epoch to that encounter by a state transition matrix integrated alongside the trajectory, then summed. The realism index says whether the linear map still means anything over that span.
The combined covariance is projected into the encounter plane and integrated over the hard body. A degenerate or rank-deficient covariance is handled in closed form rather than scored as zero risk, which is the direction that error must never take.
The minimum manoeuvre at a chosen lead time that brings the probability under threshold, returned in the radial / in-track / cross-track frame an operator actually writes, with the propellant it costs and the execution error it assumes.
A crossing conjunction at 8.4 km/s relative velocity, 10.7 km miss, against a 4 km combined covariance and a 50 m hard-body radius — ordinary numbers for a poorly tracked debris object. Burning three hours out on a 1200 kg spacecraft at 220 s specific impulse, with 2% execution error assumed:
The optimiser is not told this, and rediscovers it. An in-track impulse buys along-track separation growing as three times the lead time, while radial and cross-track impulses only produce bounded oscillation — so cost falls as roughly 1/τ, and the solution comes back almost purely in-track. Across a sixteen-fold range of lead time the product ΔV × τ varied by a factor of only 1.60.
The reported probability is not the design model's estimate. The burn is applied to the real state, the trajectory re-propagated, the closest approach found again — a burn moves the time of closest approach as well as the distance — and the geometry rescored.
A LICENSING QUESTION WITH AN ERROR BAR ON IT.
“Will this re-enter within five years” stopped being an engineering curiosity when it became a licensing condition. Answering it needs a ballistic coefficient, and for a spent stage or a fragment nobody has one: the mass is unrecorded, the area depends on an attitude nobody controls, and the drag coefficient for free-molecular flow over an unknown shape is a guess. It is not a property to look up. It is one to measure, from the object's own decay.
| Altitude | Quiet sun F10.7 = 70 | Moderate F10.7 = 150 | Storm F10.7 = 250, Ap = 100 |
|---|---|---|---|
| 300 km | 626.3 | 1895.3 | 5063.5 |
| 400 km | 59.2 | 306.3 | 1144.5 |
| 500 km | 7.6 | 61.3 | 309.8 |
| 600 km | 1.4 | 13.8 | 90.9 |
NRLMSISE-00 THROUGH THE CALLBACK · CdA/m = 0.02 m²/kg · 51.6° INCLINATION
| Solar flux F10.7 | Time to re-entry | Five-year rule |
|---|---|---|
| 70 (quiet) | 28.35 yr | NOT MET |
| 130 | 5.23 yr | MARGINAL |
| 190 | 2.00 yr | MET |
| 250 (active) | 1.11 yr | MET |
A factor of 25.6 between the two ends of the cycle, on identical hardware at an identical altitude. The same object passes or fails a disposal rule depending entirely on an assumption about the sun. That is why every lifetime this engine returns carries the flux assumption with it, and why a figure quoted without one is not an answer.
Drag shrinks the orbit, a smaller orbit has a shorter period, and the object therefore runs ahead of a drag-free prediction by an amount that grows quadratically with time. That is the signal the ballistic coefficient is recovered from. What cannot be separated is the product: nothing in a single arc distinguishes a dense atmosphere from a draggy satellite, so the estimate is reported as conditional on the density model, with the fit uncertainty and the total uncertainty as two different numbers. On a clean arc those were 0.00% and 25% respectively — quoting the first alone would be claiming a precision the answer does not have.
MODEL SURFACE AND OPERATIONAL BOUNDARIES · MEASURED VALUES ARE SHOWN AS SUCH; WHAT IS NOT HELD READS UNKNOWN.
Outputs are advisory computational products. Results are signed and independently verifiable; the system is not flight certified and carries no airworthiness, launch, or operational authority. All maneuver, avoidance, and station-keeping decisions require explicit Flight Dynamics Officer sign-off within the operator's own certified process. Simulated or unpopulated parameters are surfaced as -- or UNKNOWN and must never be interpreted as nominal values.