Outcome Contract
Outcome Contract — AeroForge (Starship Aero & Aerothermal Toolkit)
Outcome statement
A reproducible, dependency-free engineering-level toolkit that predicts the external compressible-flow aerodynamics and stagnation-point aerothermal environment of a two-stage Starship-class vehicle from subsonic through hypersonic, exposes a common interface across Python / Node / MATLAB / shell, runs as a mostly automated workflow, and reconciles pre-flight predictions against post-flight data — with every analytic core validated against published authoritative references.
MUST_PASS success criteria (verified by verify.py)
- Isentropic relations match NACA Report 1135 tabulated values
(p/p0, T/T0, ρ/ρ0, A/A*) at M = 0.5, 1.0, 2.0, 3.0, 4.0 within 1e-3 relative error.
- Normal-shock relations match NACA 1135 (
M2,p2/p1,ρ2/ρ1,T2/T1,
p02/p01) at M1 = 2, 3, 4 within 1e-3 relative error.
- Prandtl–Meyer ν(M) matches NACA 1135 (M = 2 → 26.38°, M = 3 → 49.76°).
- Oblique shock θ–β–M solver reproduces the published weak-shock solution
(M = 2, θ = 10° → β ≈ 39.31°) within 0.1°.
- U.S. Standard Atmosphere 1976 T and p match published values at 0, 11,
20, 32 km (geopotential) within 0.5 %.
- Modified Newtonian stagnation pressure coefficient approaches the correct
hypersonic limit (Cp,max → 1.839 for γ = 1.4 as M → ∞) and the classic Newtonian limit equals 2.0.
- Watertight geometry: the area-weighted outward-normal surface integral of
the closed sphere-cone body is ≈ 0 (closed-surface identity) within tolerance.
- Aero database is internally consistent (CD > 0, drag rises through the
transonic rise, monotonic Newtonian behavior in hypersonic regime).
- Inverse round-trips are self-consistent (M↔ν and supersonic M↔A/A*).
- Trajectory mapping produces a physical dynamic-pressure peak and a
positive integrated aeroheating load along a reentry profile.
Common interface (cross-language)
py -m aeroforge <flow|shock|atmos|aerodb|trajectory|postprocess|report>— JSON in/out.node scripts/aeroforge.mjs <cmd>— Node wrapper over the same CLI/JSON contract.matlab/load_aerodb.m— MATLAB reader for the aero-database JSON schema.scripts/aeroforge.sh— Linux/Unix shell driver for the automated workflow.
Disclosed seams (NOT live / engineering approximations)
- DISCLOSED_SEAM — high-fidelity CFD not executed. This is a *lower-order,
engineering-level* tool (Newtonian / perfect-gas / analytic). It interfaces with and is meant to bracket high-fidelity CFD (FUN3D, Loci/CHEM, DPLR) but does not run a Navier–Stokes solver, mesh generator, or Tecplot/ParaView.
- DISCLOSED_SEAM — synthetic post-flight data. The post-flight telemetry
used in the reconciliation report is representative/synthetic, not real SpaceX flight data.
- DISCLOSED_SEAM — perfect-gas, inviscid. Real-gas chemistry, viscous
boundary layers, transition, and ablation are not modeled.
- DISCLOSED_SEAM — analytic paneling, not a CAD/grid generator. The
"watertight" body is an analytic axisymmetric panelization, not a true watertight CAD model or unstructured CFD grid.
- DISCLOSED_SEAM — MATLAB reader not executed.
load_aerodb.mis provided
against the shared JSON contract but is not run here (no MATLAB runtime).
Out of scope
Flight-validated coefficients, wind-tunnel test data reduction from raw DAQ, GNC closed-loop simulation, and structural FEA. The toolkit produces *inputs* to those activities.