Atmosphere and orbital-state outputs are compared with references calculated outside the implementation under test.
VerifiedVERIFICATION / VALIDATION REPORT
Evidence, including the inconvenient parts.
The numerical and bookkeeping tests below pass their stated criteria. The Falcon 9 CRS-5 comparison does not reproduce the published MECO state closely enough to claim vehicle-level trajectory validation. Both outcomes are shown because a validation page that hides failed fidelity is merely marketing with equations.
01 / METHOD
Different claims need different evidence.
The project separates implementation verification from real-vehicle validation. A mathematically correct integrator can still drive an inaccurate vehicle model, and a good-looking trajectory can still be produced by broken bookkeeping. Each test therefore targets a narrower claim. The complete stdout from every validation run is preserved verbatim beneath its interpreted result, so summarized numbers can be audited against the actual executable output.
RK4 is checked for conservation in a controlled two-body problem and for full-simulation timestep convergence.
VerifiedPropellant depletion, burnout, separation, stage activation and final mass are checked against an analytical ledger.
VerifiedA Falcon 9 CRS-5 proxy is compared with NASA-published flight milestones. The MECO mismatch is treated as a limitation, not a pass.
Limitation foundPassing these checks supports correctness of the tested implementation under its stated assumptions. It does not establish operational flight accuracy, certify the generic aerodynamic model, or turn approximate Falcon 9 inputs into flight telemetry.
02 / RESULTS
Validation status at a glance.
All values below are measured from the validation scripts included in the repository. Tolerances marked “project criterion” are acceptance thresholds chosen for implementation verification, not published uncertainty bounds.
| Evidence | Measured result | Criterion | Interpretation | Status |
|---|---|---|---|---|
| U.S. Standard Atmosphere matrix | Max P error 0.013345%; max ρ error 0.012264% | ≤ 0.05% | 9 geometric-altitude reference cases within reporting tolerance | Pass |
| 200 km circular orbit | 7.788487985 km/s; 5301.004602 s; e = 0 | Metric-specific numerical tolerances | Analytical two-body state reproduced to floating-point scale | Pass |
| RK4 energy conservation | Max energy drift 1.473889940×10⁻¹³% | ≤ 0.01% | Negligible drift over the controlled 100-step test | Pass |
| Full-simulation timestep convergence | Worst 0.2 s vs 0.05 s difference 5.689672×10⁻⁴% | ≤ 0.01% | Default 0.2 s step is converged for the tested example trajectory | Pass |
| Serial staging / mass ledger | 26 / 26 checks; 494,000 kg → 5,000 kg | Exact logic + numerical bookkeeping tolerances | Mass and discrete events close correctly | Pass |
| Falcon 9 CRS-5 public-flight benchmark | MECO altitude error 10.87%; MECO Mach error 39.34% | Descriptive benchmark, no invented pass threshold | Current Falcon proxy is not vehicle-level trajectory validated | Limitation |
03 / ATMOSPHERE
U.S. Standard Atmosphere reference matrix.
physics/atmosphere.js was compared against an independent U.S. Standard Atmosphere 1976 reference at nine geometric altitudes spanning sea level through the model's 86 km boundary.
| Geometric altitude | Geopotential used | Model T | P error | ρ error | Status |
|---|---|---|---|---|---|
| 0 km | 0.000 km | 288.150 K | 0.000000% | 0.001070% | Pass |
| 5 km | 4.996 km | 255.676 K | 0.000673% | 0.000398% | Pass |
| 11 km | 10.981 km | 216.774 K | 0.001601% | 0.000531% | Pass |
| 20 km | 19.937 km | 216.650 K | 0.003112% | 0.002043% | Pass |
| 32 km | 31.840 km | 228.490 K | 0.005068% | 0.003998% | Pass |
| 47 km | 46.655 km | 269.684 K | 0.007249% | 0.006177% | Pass |
| 51 km | 50.594 km | 270.650 K | 0.007781% | 0.006707% | Pass |
| 71 km | 70.216 km | 216.846 K | 0.010724% | 0.009729% | Pass |
| 86 km | 84.852 km | 186.946 K | 0.013345% | 0.012264% | Pass |
They cross every implemented lower-atmosphere region.
The set includes sea level, major layer boundaries and high-altitude points through 86 km. It is deliberately distributed across the piecewise lapse-rate model instead of checking only the easy sea-level anchor.
The API takes geometric altitude; the standard equations use geopotential altitude.
The validation records both conventions so a reader can see the conversion rather than comparing an 86 km geometric input against an 86 km geopotential table row and manufacturing an error.
A project reporting threshold, not a USSA uncertainty claim.
The 0.05% criterion is intentionally much tighter than differences that would indicate a wrong layer, lapse rate or unit conversion while still allowing small differences from rounded constants/reference tabulation. The measured worst error is roughly one quarter of that limit.
validation/atmosphere-validation.js · source repositoryRAW EXECUTION EVIDENCE View full terminal output · Atmosphere validation
U.S. STANDARD ATMOSPHERE 1976 VALIDATION
========================================
Input altitude convention: GEOMETRIC altitude
Model under test: physics/atmosphere.js
0 km geometric -> 0.000 km geopotential
Layer: Troposphere
Temperature model=288.150000 K ref=288.150000 K error=0.000e+0%
Pressure model=101325.000000000 Pa ref=101325.000000000 Pa error=0.000e+0%
Density model=1.225012266 kg/m^3 ref=1.224999156 kg/m^3 error=0.001070%
5 km geometric -> 4.996 km geopotential
Layer: Troposphere
Temperature model=255.675543 K ref=255.675543 K error=7.686e-11%
Pressure model=54047.922628365 Pa ref=54048.286146300 Pa error=0.000673%
Density model=0.736431349 kg/m^3 ref=0.736428421 kg/m^3 error=0.000398%
11 km geometric -> 10.981 km geopotential
Layer: Troposphere
Temperature model=216.773513 K ref=216.773513 K error=2.101e-10%
Pressure model=22699.597314215 Pa ref=22699.960739200 Pa error=0.001601%
Density model=0.364799628 kg/m^3 ref=0.364801564 kg/m^3 error=0.000531%
20 km geometric -> 19.937 km geopotential
Layer: Tropopause / Isothermal Layer
Temperature model=216.650000 K ref=216.650000 K error=1.312e-14%
Pressure model=5529.139796870 Pa ref=5529.311892900 Pa error=0.003112%
Density model=0.088908099 kg/m^3 ref=0.088909916 kg/m^3 error=0.002043%
32 km geometric -> 31.840 km geopotential
Layer: Lower Stratosphere
Temperature model=228.489719 K ref=228.489719 K error=6.722e-11%
Pressure model=889.019356621 Pa ref=889.064416900 Pa error=0.005068%
Density model=0.013554609 kg/m^3 ref=0.013555151 kg/m^3 error=0.003998%
47 km geometric -> 46.655 km geopotential
Layer: Upper Stratosphere
Temperature model=269.684131 K ref=269.684131 K error=1.388e-10%
Pressure model=115.842715569 Pa ref=115.851114000 Pa error=0.007249%
Density model=0.001496428 kg/m^3 ref=0.001496520 kg/m^3 error=0.006177%
51 km geometric -> 50.594 km geopotential
Layer: Stratopause / Isothermal Layer
Temperature model=270.650000 K ref=270.650000 K error=0.000e+0%
Pressure model=70.452526483 Pa ref=70.458009000 Pa error=0.007781%
Density model=9.068406702e-4 kg/m^3 ref=9.069015000e-4 kg/m^3 error=0.006707%
71 km geometric -> 70.216 km geopotential
Layer: Lower Mesosphere
Temperature model=216.845911 K ref=216.845911 K error=1.086e-10%
Pressure model=4.479082590 Pa ref=4.479563000 Pa error=0.010724%
Density model=7.195819860e-5 kg/m^3 ref=7.196520000e-5 kg/m^3 error=0.009729%
86 km geometric -> 84.852 km geopotential
Layer: Upper Mesosphere
Temperature model=186.945908 K ref=186.945908 K error=1.008e-10%
Pressure model=0.373330471 Pa ref=0.373380300 Pa error=0.013345%
Density model=6.956966665e-6 kg/m^3 ref=6.957820000e-6 kg/m^3 error=0.012264%
SUMMARY
=======
Cases tested: 9
Maximum temperature error: 2.101e-10%
Maximum pressure error: 0.013345%
Maximum density error: 0.012264%
Reporting tolerance: 0.05%
Result: PASS
04 / ORBIT
200 km circular-orbit analytical benchmark.
The orbit module was given a mathematically circular planar state and compared with independently evaluated two-body equations using the same project Earth convention.
r = Rₑ + hv = √(μ / r)T = 2π√(r³ / μ)ε = −μ / (2r)REFERENCE CONVENTIONS
- Test altitude
- 200 km
- Earth radius
- 6,371,000 m
- Earth μ
- 3.986004418×10¹⁴ m³/s²
- Geometry
- Spherical Earth, two-body planar orbit
The 200 km case is a simple low-Earth-orbit benchmark with a closed-form circular solution. It tests orbit.js implementation consistency, not the realism of a perfect spherical Earth at 200 km.
WHY THESE CONSTANTS?
The project radius is a rounded spherical mean-Earth convention. JPL lists a mean Earth radius of about 6371.0084 km. The gravitational parameter matches the IERS two-body convention of 398600.4418 km³/s². Because the validation intentionally uses the same Earth convention as the module, it verifies the orbital equations rather than independently validating the constants themselves.
| Quantity | Tolerance | Measured error | Why this tolerance? |
|---|---|---|---|
| Circular speed | 1×10⁻⁶ m/s | 0 m/s | Micro-metre-per-second numerical guardrail; not physical uncertainty. |
| Orbital period | 1×10⁻⁶ s | 0 s | Detects implementation disagreement while allowing floating-point arithmetic. |
| Specific energy | 1×10⁻⁹% relative | 1.228242×10⁻¹⁴% | Relative error avoids tying the criterion to the large absolute energy magnitude. |
| Angular momentum | 1×10⁻⁹% relative | 0% | Scale-independent comparison for a large-valued conserved quantity. |
| Eccentricity | 1×10⁻¹⁰ absolute | 0 | The reference is zero, so relative error is not meaningful. |
| Semi-major axis / apses | 1×10⁻³ m | ≤ 9.313226×10⁻¹⁰ m | A 1 mm software tolerance is tiny at orbital scale yet comfortably above binary floating-point residue. |
validation/orbit-validation.js · source repositoryRAW EXECUTION EVIDENCE View full terminal output · 200 km circular-orbit validation
200 KM CIRCULAR-ORBIT VALIDATION
================================
Model under test: physics/orbit.js
Reference method: independent two-body circular-orbit equations
Reference Earth radius: 6,371,000 m
Reference Earth mu: 3.986004418e+14 m^3/s^2
Test altitude: 200 km
REFERENCE STATE
---------------
Radius: 6571000.000 m
Circular speed: 7788.487984973 m/s (7.788487985 km/s)
Orbital period: 5301.004602323 s (88.350077 min)
Specific energy: -30330272.546036 J/kg
MODEL OUTPUT
------------
Radius: 6571000.000000 m
Altitude: 200000.000000 m
Speed: 7788.487984973 m/s
Circular speed: 7788.487984973 m/s
Radial velocity: 0.000000e+0 m/s
Tangential velocity: 7788.487984973 m/s
Specific energy: -30330272.546036 J/kg
Angular momentum: 51178154549.258614 m^2/s
Eccentricity: 0.000000e+0
Semi-major axis: 6571000.000000 m
Periapsis altitude: 200000.000000 m
Apoapsis altitude: 200000.000000 m
Orbital period: 5301.004602323 s
Basic classification: BOUND_ORBIT
Target classification: TARGET_ORBIT
CHECKS
------
PASS Circular speed
model=7788.487984973157
ref=7788.487984973157
error=0.000000e+0 m/s
tolerance=1.000000e-6 m/s
PASS Orbital period
model=5301.004602322611
ref=5301.004602322611
error=0.000000e+0 s
tolerance=1.000000e-6 s
PASS Specific orbital energy
model=-30330272.546035606414
ref=-30330272.546035610139
error=1.228242e-14 % relative
tolerance=1.000000e-9 % relative
PASS Specific angular momentum
model=51178154549.258613586426
ref=51178154549.258613586426
error=0.000000e+0 % relative
tolerance=1.000000e-9 % relative
PASS Eccentricity
model=0.000000000000
ref=0.000000000000
error=0.000000e+0 absolute
tolerance=1.000000e-10 absolute
PASS Semi-major axis
model=6571000.000000000931
ref=6571000.000000000000
error=9.313226e-10 m
tolerance=1.000000e-3 m
PASS Periapsis altitude
model=200000.000000000000
ref=200000.000000000000
error=0.000000e+0 m
tolerance=1.000000e-3 m
PASS Apoapsis altitude
model=200000.000000000931
ref=200000.000000000000
error=9.313226e-10 m
tolerance=1.000000e-3 m
PASS Radial velocity
model=0.000000000000
ref=0.000000000000
error=0.000000e+0 m/s
tolerance=1.000000e-9 m/s
PASS Tangential velocity
model=7788.487984973157
ref=7788.487984973157
error=0.000000e+0 m/s
tolerance=1.000000e-6 m/s
PASS Basic classification = BOUND_ORBIT
PASS 200 km target orbit recognized
SUMMARY
=======
Reference circular speed: 7.788487985 km/s
Model circular speed: 7.788487985 km/s
Reference orbital period: 5301.004602 s
Model orbital period: 5301.004602 s
Eccentricity: 0.000000e+0
Periapsis altitude: 200.000000000 km
Apoapsis altitude: 200.000000000 km
Result: PASS
05 / RK4 ENERGY
Conservation in an isolated two-body problem.
The RK4 integrator was separated from thrust, drag, staging and mass flow. In ideal Newtonian two-body motion, specific mechanical energy should remain constant, so any drift is numerical rather than physical.
It should be conserved by the physical test problem.
With only conservative two-body gravity active, specific mechanical energy provides a direct diagnostic for integration error. There is no thrust or drag available to legitimately change it.
A short, deterministic implementation check.
The test is deliberately simple enough that a broken RK4 implementation cannot hide behind staging or guidance. Longer-duration and step-size behavior is addressed separately by the convergence study.
A conservative software guardrail.
The threshold was chosen to make materially drifting integration fail loudly. It is not an uncertainty claim for orbital prediction. The measured maximum drift is about 6.8×10¹⁰ times smaller than the threshold.
physics/integrator.js · classical fixed-step RK4validation/energy-validation.js · source repositoryRAW EXECUTION EVIDENCE View full terminal output · RK4 energy-conservation validation
RK4 TWO-BODY ENERGY-CONSERVATION VALIDATION
===========================================
Model under test: physics/integrator.js (RK4)
Force field: independent Newtonian two-body gravity
Atmosphere: OFF
Drag: OFF
Thrust: OFF
Mass flow: OFF
Earth radius used: 6,371,000 m
Earth mu used: 3.986004418e+14 m^3/s^2
Initial altitude: 200 km
Initial orbital speed: 7.788487985 km/s
RK4 time step: 1 s
RK4 steps: 100
Propagation duration: 100 s
ENERGY
------
Initial specific energy: -30330272.546035606414 J/kg
Final specific energy: -30330272.546035613865 J/kg
Final difference: -7.450580597e-9 J/kg
Final relative drift: 2.456483233e-14 %
Maximum relative drift: 1.473889940e-13 %
Maximum drift at step: 20 (t=20 s)
SECONDARY CONSERVATION CHECK
----------------------------
Initial angular momentum: 51178154549.258613586 m^2/s
Final angular momentum: 51178154549.258605957 m^2/s
Relative drift: 1.490752177e-14 %
SELECTED HISTORY
----------------
Step 0 t= 0 s energy=-30330272.546035606 J/kg drift=0.000000e+0 %
Step 25 t= 25 s energy=-30330272.546035629 J/kg drift=7.369450e-14 %
Step 50 t= 50 s energy=-30330272.546035614 J/kg drift=2.456483e-14 %
Step 75 t= 75 s energy=-30330272.546035614 J/kg drift=2.456483e-14 %
Step 100 t=100 s energy=-30330272.546035614 J/kg drift=2.456483e-14 %
ACCEPTANCE CRITERION
--------------------
Maximum energy drift must remain <= 0.01% over all 100 RK4 steps.
This tolerance tests numerical implementation/step-size behavior; it is not a physical-accuracy uncertainty for the real Earth.
SUMMARY
=======
Maximum energy drift: 1.473889940e-13 %
Allowed drift: 0.01000 %
Result: PASS
06 / CONVERGENCE
Does the full simulation settle as the timestep shrinks?
The same two-stage vehicle was simulated at five RK4 step sizes. Vehicle, guidance, aerodynamics, atmosphere and mission inputs were held constant; only solver.dt changed.
| dt | Steps | Max altitude | Max speed | Mach @ 50 km | Max-Q | Apoapsis |
|---|---|---|---|---|---|---|
| 1.00 s | 356 | 293.242437 km | 10.023551042 km/s | 4.2654755 | 40.541461 kPa | 28,621.120496 km |
| 0.50 s | 712 | 293.242539 km | 10.023550481 km/s | 4.2654354 | 40.553843 kPa | 28,621.099992 km |
| 0.20 s | 1,778 | 293.242540 km | 10.023550438 km/s | 4.2654275 | 40.553665 kPa | 28,621.098118 km |
| 0.10 s | 3,556 | 293.242536 km | 10.023550473 km/s | 4.2654273 | 40.553830 kPa | 28,621.099529 km |
| 0.05 s | 7,112 | 293.242537 km | 10.023550482 km/s | 4.2654272 | 40.553896 kPa | 28,621.099957 km |
It is a finer numerical comparison, not “truth.”
The 0.05 s run is four times finer than the project default and twenty times finer than the coarsest sweep. Convergence means successive refinements settle toward similar outputs.
A project-level numerical convergence criterion.
Selected continuous outputs from the 0.2 s default must remain within 0.01% of the 0.05 s run. This says timestep choice is not materially moving the tested outputs; it says nothing about real-world model accuracy.
Maximum Mach is sampling-sensitive at the 86 km atmosphere boundary.
Above 86 km the current atmosphere model intentionally uses a vacuum approximation and Mach becomes undefined. A fixed 50 km interpolation is therefore a cleaner convergence metric than whichever sample happens to be the final sub-86-km point.
BOUND_ORBIT.solver.dt changedvalidation/convergence-validation.js · source repositoryRAW EXECUTION EVIDENCE View full terminal output · Full-simulation timestep-convergence validation
RK4 FULL-SIMULATION TIMESTEP-CONVERGENCE VALIDATION
===================================================
Model under test: integrated Analyzer simulation stack
Integrator: classical RK4
Vehicle: Example Two-Stage Vehicle
Guidance: built-in generic assumed profile
Cd model: built-in generic assumed Mach-Cd table
Only quantity changed between runs: solver.dt
Timesteps tested: 1, 0.5, 0.2, 0.1, 0.05 s
Project default: 0.2 s
Fine reference: 0.05 s
RUN RESULTS
-----------
dt(s) steps maxAlt(km) maxSpeed(km/s) Mach@50km maxQ(kPa) peri(km) apo(km) ecc
1.00 356 293.242437 10.023551042 4.2654755 40.541461 261.698795 28621.120496 0.681310386
0.50 712 293.242539 10.023550481 4.2654354 40.553843 261.698852 28621.099992 0.681310227
0.20 1778 293.242540 10.023550438 4.2654275 40.553665 261.698850 28621.098118 0.681310213
0.10 3556 293.242536 10.023550473 4.2654273 40.553830 261.698848 28621.099529 0.681310223
0.05 7112 293.242537 10.023550482 4.2654272 40.553896 261.698849 28621.099957 0.681310227
STAGE BURNOUT TIMES
-------------------
dt=1.00 s S1=148.774056098 s S2=355.536908098 s
dt=0.50 s S1=148.774056098 s S2=355.536908098 s
dt=0.20 s S1=148.774056098 s S2=355.536908098 s
dt=0.10 s S1=148.774056098 s S2=355.536908098 s
dt=0.05 s S1=148.774056098 s S2=355.536908098 s
MAXIMUM MACH DIAGNOSTIC (NOT AN ACCEPTANCE METRIC)
-------------------------------------------------
dt=1.00 s maximum reported Mach=8.584980622
dt=0.50 s maximum reported Mach=8.702895014
dt=0.20 s maximum reported Mach=8.679156686
dt=0.10 s maximum reported Mach=8.702894779
dt=0.05 s maximum reported Mach=8.714793018
Maximum reported Mach is intentionally excluded from PASS/FAIL because Mach becomes undefined above the 86 km atmosphere-model boundary; the last sub-86-km sample therefore shifts with timestep.
Mach at a fixed 50 km geometric altitude is used instead.
DEFAULT dt = 0.2 s VS FINE dt = 0.05 s
---------------------------------------
PASS Maximum altitude
dt=0.2: 293242.539528143592
dt=0.05:293242.536922068335
relative difference=8.887098e-7 %
tolerance=0.01000 %
PASS Maximum speed
dt=0.2: 10023.550437664569
dt=0.05:10023.550482190221
relative difference=4.442104e-7 %
tolerance=0.01000 %
PASS Mach at 50 km geometric altitude
dt=0.2: 4.265427478088
dt=0.05:4.265427182516
relative difference=6.929494e-6 %
tolerance=0.01000 %
PASS Maximum dynamic pressure
dt=0.2: 40553.664829958878
dt=0.05:40553.895568308675
relative difference=5.689672e-4 %
tolerance=0.01000 %
PASS Periapsis altitude
dt=0.2: 261698.849793746136
dt=0.05:261698.849114250392
relative difference=2.596480e-7 %
tolerance=0.01000 %
PASS Apoapsis altitude
dt=0.2: 28621098.117783337831
dt=0.05:28621099.956778533757
relative difference=6.425313e-6 %
tolerance=0.01000 %
PASS Eccentricity
dt=0.2: 0.681310212518
dt=0.05:0.681310226625
relative difference=2.070606e-6 %
tolerance=0.01000 %
PASS Stage 1 burnout time
dt=0.2: 148.774056097564 s
dt=0.05:148.774056097549 s
difference=1.475087e-11 s
tolerance=0.200 s
PASS Stage 2 burnout time
dt=0.2: 355.536908097549 s
dt=0.05:355.536908097592 s
difference=4.274625e-11 s
tolerance=0.200 s
PASS Final mass consistency
dt=0.2: 5000.000000000 kg
dt=0.05:5000.000000000 kg
difference=0.000000e+0 kg
tolerance=1.000000e-6 kg
PASS Orbit classification unchanged (BOUND_ORBIT)
PASS Termination reason unchanged (allStagesComplete)
ACCEPTANCE CRITERION
--------------------
For the project default dt=0.2 s, selected continuous outputs must differ by <= 0.01% from the dt=0.05 s run.
Stage-burnout times must differ by <= 0.2 s, final mass must agree within 0.000001 kg, and classifications must remain unchanged.
These are numerical-convergence criteria only. They do not measure real-world launch accuracy.
SUMMARY
=======
Default timestep: 0.2 s
Fine comparison timestep: 0.05 s
Worst default-vs-fine difference: 5.689672e-4 % (Maximum dynamic pressure)
Allowed continuous difference: 0.01000 %
Default integration steps: 1778
Fine integration steps: 7112
Result: PASS
07 / STAGING
Mass accounting and discrete-event integrity.
The staging implementation is checked twice: first against a controlled analytical ledger, then through the complete Analyzer event sequence. This prevents two compensating bookkeeping mistakes from receiving a ceremonial green check.
EVENT CHECKS
- Stage 1 burnout → separation → Stage 2 burnout → separation
- Configured 2 s Stage 1 coast delay reproduced
- Zero-second Stage 2 delay reproduced
- Stage activation flags and final completion state agree
- Idealized separation preserves position and velocity
EDGE CASE
Residual propellant was tested separately.
A synthetic stage with 500 kg residual propellant verified that only usable propellant is burned; dry mass plus residual remains at burnout and is discarded together at separation.
The tiny mass/time tolerances are software-integrity thresholds. They do not imply milligram knowledge of a real launch vehicle or nanosecond-accurate physical separation.
| Check type | Acceptance | Meaning |
|---|---|---|
| Mass ledger | ≤ 1×10⁻⁶ kg absolute | Allows floating-point residue while making bookkeeping loss/gain fail immediately. |
| Configured event delay | ≤ 1×10⁻⁸ s | Verifies event scheduling, not real separation timing uncertainty. |
| Separation state continuity | ≤ 1×10⁻¹² per component | Tests the current idealization that separation changes mass/configuration only. |
| Order / flags | Exact logical agreement | Discrete state transitions have no meaningful “almost correct” interpretation. |
physics/staging.js + analyzer/simulation.jsvalidation/staging-validation.js · source repositoryRAW EXECUTION EVIDENCE View full terminal output · Serial-staging mass & event validation
SERIAL-STAGING MASS & EVENT VALIDATION
======================================
Models under test: physics/staging.js + analyzer/simulation.js event orchestration
Vehicle: Example Two-Stage Vehicle
Integrator: classical RK4, dt=0.2 s (integrated portion)
Purpose: mass-ledger and discrete-event integrity
ANALYTICAL MASS LEDGER
----------------------
Payload mass: 5000.000 kg
Stage 1 dry mass: 25000.000 kg
Stage 1 usable propellant: 400000.000 kg
Stage 2 dry mass: 4000.000 kg
Stage 2 usable propellant: 60000.000 kg
Initial vehicle mass: 494000.000 kg
Stage 1 burnout mass: 94000.000 kg
After Stage 1 separation: 69000.000 kg
Stage 2 burnout mass: 9000.000 kg
Final mass after Stage 2 sep.: 5000.000 kg
INTEGRATED EVENT TIMELINE
-------------------------
t=148.774056097564 s STAGE 1 BURNOUT
t=150.774056097564 s STAGE 1 SEPARATION discarded=25000.000000 kg
t=355.536908097549 s STAGE 2 BURNOUT
t=355.536908097549 s STAGE 2 SEPARATION discarded=4000.000000 kg
CHECKS
------
PASS Initial vehicle mass matches analytical stack sum
model=494000.000000000 kg
expected=494000.000000000 kg
tolerance=1.000000e-6 kg
PASS Stage 1 usable propellant bookkeeping
runtime=400000.000000000 kg
expected=400000.000000000 kg
PASS Stage 1 consumes exactly its usable propellant
consumed=400000.000000000 kg
expected=400000.000000000 kg
PASS Stage 1 is marked burned out with zero usable propellant
remaining=0.000000e+0 kg
PASS Stage 1 burnout stack mass matches analytical ledger
model=94000.000000000 kg
expected=94000.000000000 kg
PASS Stage 1 separation discards dry + residual mass
discarded=25000.000000000 kg
expected=25000.000000000 kg
PASS Stage 1 post-separation mass matches analytical ledger
model=69000.000000000 kg
expected=69000.000000000 kg
PASS Idealized Stage 1 separation preserves position and velocity
state continuity tolerance=1.000000e-12
PASS Stage 2 becomes active after Stage 1 separation
activeStageIndex=1
PASS Stage 2 consumes exactly its usable propellant
consumed=60000.000000000 kg
expected=60000.000000000 kg
PASS Stage 2 burnout stack mass matches analytical ledger
model=9000.000000000 kg
expected=9000.000000000 kg
PASS Stage 2 separation discards dry + residual mass
discarded=4000.000000000 kg
expected=4000.000000000 kg
PASS Final controlled mass equals analytical payload-only mass
model=5000.000000000 kg
expected=5000.000000000 kg
PASS Final controlled runtime marks all stages complete
allStagesComplete=true
PASS Residual propellant remains in burnout mass and is discarded at separation
usable propellant burned=9500.000000 kg (expected 9500)
burnout mass=1600.000000 kg (payload + dry + residual = 1600)
discarded mass=1500.000000 kg (dry + residual = 1500)
final payload mass=100.000000 kg (expected 100)
PASS Integrated staging event order is correct
observed=stageBurnout:0 -> stageSeparation:0 -> stageBurnout:1 -> stageSeparation:1
expected=stageBurnout:0 -> stageSeparation:0 -> stageBurnout:1 -> stageSeparation:1
PASS Integrated Stage 1 burnout mass matches analytical ledger
history mass=94000.000000000 kg
expected=94000.000000000 kg
PASS Stage 1 coast to separation consumes no additional propellant
burnout mass=94000.000000000 kg
pre-separation mass=94000.000000000 kg
configured coast delay=2.000 s
PASS Integrated Stage 2 burnout mass matches analytical ledger
history mass=9000.000000000 kg
expected=9000.000000000 kg
PASS Integrated Stage 1 separation delay matches configuration
burnout=148.774056097564 s
separation=150.774056097564 s
observed delay=2.000000000000 s
configured delay=2.000000000000 s
difference=1.136868e-13 s
tolerance=1.000000e-8 s
PASS Integrated Stage 2 separation delay matches configuration
burnout=355.536908097549 s
separation=355.536908097549 s
observed delay=0.000000000000 s
configured delay=0.000000000000 s
difference=0.000000e+0 s
tolerance=1.000000e-8 s
PASS Integrated separation events report correct discarded masses
Stage 1 event=25000.000000000 kg, expected=25000.000000000 kg
Stage 2 event=4000.000000000 kg, expected=4000.000000000 kg
PASS Integrated simulation final mass equals analytical final mass
model=5000.000000000 kg
expected=5000.000000000 kg
tolerance=1.000000e-6 kg
PASS Integrated total propellant consumption closes the mass ledger
initial mass=494000.000000000 kg
final mass=5000.000000000 kg
discarded dry/residual mass=29000.000000000 kg
inferred propellant burned=460000.000000000 kg
expected usable propellant=460000.000000000 kg
PASS Integrated final staging state marks all stages burned out and separated
allStagesComplete=true
separatedStageCount=2
PASS Integrated simulation terminates because all stages complete
terminationReason=allStagesComplete
ACCEPTANCE CRITERIA
-------------------
Mass ledger agreement: <= 1.000000e-6 kg absolute difference
Configured event-delay error: <= 1.000000e-8 s
Separation state continuity: <= 1.000000e-12 absolute component difference
Event order / stage flags: exact logical agreement
These are software bookkeeping/event-integrity criteria. They do not imply that real launch-vehicle stage-separation dynamics are modeled to these tolerances.
SUMMARY
=======
Checks passed: 26/26
Initial mass: 494000.000 kg
Total usable propellant: 460000.000 kg
Total discarded dry/residual: 29000.000 kg
Final mass: 5000.000 kg
Stage separations: 2
Termination reason: allStagesComplete
Result: PASS
08 / REAL FLIGHT
Falcon 9 CRS-5 public-flight benchmark.
This is the most important non-green result on the page. An approximate Falcon 9 v1.1 first-stage proxy is compared with rounded milestones published in NASA's CRS-5 mission press kit. It is a benchmark of the current model's vehicle fidelity, not a claim that the proxy reconstructs SpaceX telemetry.
LVA 69.384774 s
NASA ≈ 70 s
LVA 71.305329 km
NASA ≈ 80 km
LVA 6.065674
NASA ≈ 10
EARLY ASCENT
Why is Mach-1 timing so close?
The proxy's approximate thrust-to-mass ratio, atmosphere and generic drag produce an early acceleration history that crosses Mach 1 near the rounded NASA timing. That is encouraging, but the reference itself is approximate and several imperfect assumptions can cancel. It should therefore be treated as a cross-check, not precise Falcon 9 validation.
MECO ALTITUDE
Why is the trajectory about 8.7 km low?
The altitude disagreement accumulates over the full first-stage ascent. The proxy does not contain CRS-5's exact mass loading, pitch program, throttle history or Falcon-specific aerodynamic coefficients. Those assumptions control how thrust is divided between vertical and horizontal acceleration and how the vehicle's acceleration changes as propellant is consumed.
Missing Earth rotation and launch-site geometry also change the inertial state, while the simplified propulsion model interpolates between thrust anchors rather than reproducing actual Merlin flight performance. The result is therefore best interpreted as a coupled vehicle-model fidelity error, not a single atmosphere or RK4 failure.
MECO MACH
Why is a 39.34% Mach error especially serious?
At 157 s the simulator reports only 1.787 km/s and Mach 6.066, while the NASA press kit describes the real vehicle as approximately Mach 10. The simulated vehicle is also lower, so its local speed of sound is different, but that atmospheric difference is not remotely large enough to turn Mach 6.1 into Mach 10.
The dominant signal is therefore that the proxy has accumulated too little vehicle speed by MECO. Likely contributors are the approximate mass state, assumed specific impulse and mass-flow history, simplified thrust evolution, generic guidance and generic aerodynamics. Because these effects interact, the benchmark does not assign fabricated percentages of the error to individual causes.
ERROR GROWTH
Why can early agreement coexist with late disagreement?
Trajectory error is cumulative. Small differences in mass, thrust, drag or thrust direction alter acceleration; that changes position and velocity; those changed states then alter the next timestep's gravity, atmosphere, drag and guidance conditions. Reasonable agreement at 70 s therefore does not guarantee agreement at 157 s.
RK4 discretization / timestep effects. Independently tested above and tiny for the example convergence case.
2D motion, generic Cd, simplified propulsion, assumed guidance and omitted rotation effects.
Approximate Falcon masses, Isp, mission loading, throttle schedule and inaccessible flight-specific data.
PUBLISHED FLIGHT REFERENCES
- Supersonic
- ≈ 70 s
- MECO
- ≈ 157 s
- MECO altitude
- ≈ 80 km
- MECO Mach
- ≈ Mach 10
The NASA press kit reports Mach, not an explicit MECO velocity. The benchmark therefore compares Mach directly instead of inventing a “NASA velocity” using an arbitrary speed-of-sound convention.
NASA SpaceX CRS-5 mission press kit ↗PROXY INPUT BOUNDARY
- Sourced anchors
- Approx. gross liftoff weight, 12 ft diameter, Merlin thrust anchors
- Model assumptions
- 400,000 kg aggregate usable propellant, 282/311 s Isp, generic Cd, generic open-loop guidance, 100% throttle
These assumptions are intentionally separated from sourced values. Public version-level documents are not sufficient to reconstruct an exact CRS-5 stage mass and flight-control history.
FAA Falcon Program environmental assessment ↗Supported by this benchmark
- The current proxy crosses Mach 1 near the rounded CRS-5 reference.
- At 157 s it is materially low in altitude and very low in Mach.
- The present Falcon proxy should not be described as vehicle-level trajectory validated.
Not supported by this benchmark
- Assigning an exact fraction of the 39.34% mismatch to guidance, drag, mass, Isp or any single cause.
- Claiming the atmosphere, RK4 or staging model is wrong solely because the Falcon proxy disagrees.
- Treating rounded press-kit milestones as precision telemetry.
validation/falcon9-validation.js · source repositoryRAW EXECUTION EVIDENCE View full terminal output · Falcon 9 CRS-5 public-flight benchmark
FALCON 9 CRS-5 PUBLIC-FLIGHT BENCHMARK + ERROR DIAGNOSIS
========================================================
Mission: SpaceX CRS-5
Vehicle version: Falcon 9 v1.1
Benchmark type: approximate aggregate first-stage-ascent proxy
Result semantics: descriptive comparison + sensitivity diagnosis; NOT formal pass/fail
PRIMARY SOURCES
---------------
SpaceX CRS-5 Mission Press Kit (NASA)
https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
Mission-contemporaneous source for ~70 s supersonic time, ~157 s MECO, 80 km / Mach 10 at MECO, Falcon 9 diameter, Merlin 1D thrust, and the statement that first-stage engines are gradually throttled near the end of first-stage flight.
Environmental Assessment for SpaceX Falcon Launches at KSC and CCAFS (FAA)
https://www.faa.gov/sites/faa.gov/files/space/environmental/nepa_docs/SpaceX_Falcon_Program_Final_EA_and_FONSI.pdf
Later FAA summary source. It describes Falcon 9 v1.1 as ~1,100,000 lb gross lift-off weight, lists version-level propellant/thrust data, notes that propellant quantities vary with mission parameters, and states that Falcon trajectories are mission-specific.
NASA GSFC educational orbital-mechanics reference
https://pwg.gsfc.nasa.gov/Education/JAS1.htm
Provides the useful reference that a due-east launch from Cape Canaveral near 28.5 deg N receives about 407 m/s of eastward inertial velocity from Earth's rotation. CRS-5 was not a simple due-east 2D launch, so 407 m/s is used only for a diagnostic sensitivity case.
U.S. Standard Atmosphere, 1976 (NASA NTRS)
https://ntrs.nasa.gov/citations/19770009539
Reference family for the lower-atmosphere convention. LVA's atmosphere implementation is validated separately; here it is used only for a derived Mach/speed-of-sound diagnostic.
PUBLISHED FLIGHT REFERENCES
---------------------------
Supersonic time:
value: 70
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Launch and Ascent, p. 5
basis: NASA states Falcon 9 reaches supersonic speed one minute and ten seconds after liftoff.
precision:This is a rounded narrative flight anchor, not high-rate telemetry with a stated uncertainty.
MECO time:
value: 157
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Launch and Ascent, p. 5
basis: NASA states first-stage MECO occurs approximately 157 seconds into flight.
precision:The source explicitly says approximately; the benchmark therefore must not treat 157.000000 s as an exact telemetry truth.
MECO altitude:
value: 80000
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Launch and Ascent, p. 5
basis: NASA states Falcon 9 is 80 km high at MECO.
precision:The press kit reports 80 km as a rounded narrative value and does not provide an uncertainty interval.
MECO Mach:
value: 10
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Launch and Ascent, p. 5
basis: NASA states Falcon 9 is traveling at 10 times the speed of sound at MECO.
precision:Mach 10 is rounded and the source does not specify a local speed-of-sound convention or an explicit m/s velocity.
PUBLISHED VEHICLE ANCHORS USED BY BASELINE
------------------------------------------
Approximate gross liftoff mass:
value: approximately 1,100,000 lb
source: https://www.faa.gov/sites/faa.gov/files/space/environmental/nepa_docs/SpaceX_Falcon_Program_Final_EA_and_FONSI.pdf
location: Section 1.2.2, p. 23
note: FAA describes Falcon 9 v1.1 gross lift-off weight as approximately 1.1 million pounds. This rounded value is used only as an aggregate initial-mass anchor.
Diameter:
value: 12 ft
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Falcon 9 Overview / Advanced Technology, pp. 15-16
note: NASA CRS-5 press kit gives Falcon 9 diameter as 12 ft.
First-stage sea-level thrust:
value: 9 engines x 654 kN each (147,000 lbf each)
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Falcon 9 Overview / Advanced Technology, pp. 15-16
note: NASA CRS-5 press kit states one Merlin 1D produces 654 kN at liftoff. This mission-contemporaneous source is preferred over later version-summary values.
First-stage high-altitude/vacuum thrust anchor:
value: 9 engines x 716 kN each (161,000 lbf each)
source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
location: Falcon 9 Overview / Advanced Technology, pp. 15-16
note: NASA CRS-5 press kit states one Merlin 1D rises to 716 kN as it climbs out of the atmosphere.
PUBLIC-SOURCE CONSISTENCY WARNINGS
----------------------------------
FAA rounded v1.1 gross lift-off weight: 1,100,000 lb
FAA v1.1 version-table total propellant: 1,120,925 lbm
Propellant minus rounded gross value: 20,925 lb
Interpretation: these aggregate public figures cannot be combined as an exact CRS-5 mass ledger. The FAA itself notes that propellant quantities vary by mission parameters; the gross value is explicitly approximate.
Source: https://www.faa.gov/sites/faa.gov/files/space/environmental/nepa_docs/SpaceX_Falcon_Program_Final_EA_and_FONSI.pdf
NASA CRS-5 per-engine liftoff thrust: 147,000 lbf (654 kN)
Later FAA v1.1 summary thrust: 170,000 lbf per engine
Difference between public version summaries: 15.646 %
Interpretation: vehicle-version/public-summary values changed across documents. The benchmark therefore uses the mission-contemporaneous CRS-5 NASA thrust anchor rather than mixing later values into the baseline.
NASA source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
FAA source: https://www.faa.gov/sites/faa.gov/files/space/environmental/nepa_docs/SpaceX_Falcon_Program_Final_EA_and_FONSI.pdf
UNSOURCED / EXPLICIT MODELING ASSUMPTIONS
-----------------------------------------
Aggregate usable propellant reservoir: 400,000 kg
Isp sea level / vacuum: 282 s / 311 s
Aerodynamics: generic assumed Mach-Cd table
Guidance: built-in generic open-loop profile
Throttle: constant 100% in baseline
Earth rotation / launch latitude: not modeled in baseline 2D ascent stack
BASELINE STATE AT NASA-PUBLISHED MECO TIME
------------------------------------------
Evaluation time: 157.000 s (imposed from rounded reference; not a model-predicted MECO time)
Model altitude: 71.305329 km
NASA altitude: 80.000 km (rounded narrative anchor)
Altitude difference: -8.694671 km
Nominal percent diff: 10.868338 %
Model Mach: 6.065673929
NASA Mach: 10.000 (rounded narrative anchor)
Mach difference: -3.934326071
Nominal percent diff: 39.343261 %
Model inertial speed: 1.787140068 km/s
NASA explicit speed: not provided in the press kit
EARLY-ASCENT CROSS-CHECK
------------------------
Model Mach-1 crossing: 69.384774 s
NASA supersonic time: ~70 s (rounded narrative anchor)
Timing difference: -0.615226 s
Nominal percent diff: 0.878895 %
CONTROLLED ONE-AT-A-TIME SENSITIVITY RUNS
-----------------------------------------
These are DIAGNOSTIC perturbations, not claimed Falcon 9 uncertainties and not fitted parameters.
Mass/thrust/Isp: +/-5%; Cd: +/-25%; guidance: deliberately steeper/shallower assumed pitch programs.
The throttle-down and Cape-rotation cases are directionality tests, not CRS-5 reconstructions.
case alt(km) dAlt(km) speed(km/s) dSpeed Mach dMach Mach1(s) dMach1(s)
------------------------------------------------------------------------------------------------------------------
BASELINE 71.305 0.000 1.787140 0.000000 6.065674 0.000000 69.385 0.000
Cd -25% 71.525 +0.220 1.790715 +0.003575 6.086287 +0.020613 69.245 -0.140
Cd +25% 71.087 -0.219 1.783566 -0.003574 6.045169 -0.020505 69.525 +0.140
Initial mass -5% 82.254 +10.948 2.132353 +0.345213 7.632070 +1.566396 62.052 -7.333
Initial mass +5% 61.203 -10.103 1.497168 -0.289972 4.783932 -1.281742 77.507 +8.122
Isp -5% 74.784 +3.479 1.936489 +0.149349 6.684750 +0.619076 68.164 -1.221
Isp +5% 68.333 -2.973 1.667149 -0.119991 5.554676 -0.510998 70.539 +1.154
Thrust -5% 60.649 -10.656 1.482536 -0.304604 4.722468 -1.343206 77.988 +8.603
Thrust +5% 81.757 +10.452 2.115151 +0.328011 7.551702 +1.486028 62.358 -7.026
More-vertical guidance 77.380 +6.075 1.731530 -0.055610 6.051137 -0.014537 69.383 -0.002
More-horizontal guidance 63.382 -7.923 1.905721 +0.118581 6.165573 +0.099899 68.631 -0.754
Approx. co-rotating Cape initial state 71.673 +0.367 2.122628 +0.335488 6.080098 +0.014424 69.337 -0.048
Illustrative late throttle-down 70.635 -0.671 1.637186 -0.149954 5.533243 -0.532431 69.385 +0.000
ERROR DIAGNOSIS A — MACH-1 CROSSING (~70 s)
--------------------------------------------
Observed nominal discrepancy: -0.615226 s (0.879 %).
Reference limitation: NASA gives a rounded narrative time ('one minute and ten seconds'), not a telemetry uncertainty interval.
Source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
Sensitivity to +/-5% initial mass: -7.333 s / +8.122 s
Sensitivity to +/-5% thrust: +8.603 s / -7.026 s
Sensitivity to +/-5% Isp: -1.221 s / +1.154 s
Sensitivity to +/-25% Cd: -0.140 s / +0.140 s
Conclusion: the 0.615 s agreement is smaller than the response to several plausible diagnostic perturbations. It is encouraging, but it cannot by itself validate the Falcon-specific mass/thrust/aero model; compensating errors can produce a close Mach-1 time.
ERROR DIAGNOSIS B — ALTITUDE AT 157 s
-------------------------------------
Observed nominal discrepancy: -8.694671 km (model low by 10.868 % relative to the rounded 80 km anchor).
High-sensitivity inputs in this proxy:
Initial mass -5% / +5% -> altitude shift +10.948 / -10.103 km.
Thrust -5% / +5% -> altitude shift -10.656 / +10.452 km.
These perturbations are not uncertainty claims, but they show that thrust-to-mass ratio is a dominant numerical lever. Public CRS-5 mass information is only approximate, and public version summaries are not internally precise enough to reconstruct the exact flight mass state.
FAA source: https://www.faa.gov/sites/faa.gov/files/space/environmental/nepa_docs/SpaceX_Falcon_Program_Final_EA_and_FONSI.pdf
Material guidance sensitivity:
More-vertical assumed profile -> altitude shift +6.075 km.
More-horizontal assumed profile -> altitude shift -7.923 km.
FAA states Falcon trajectories are mission-specific; the public sources used here do not provide the CRS-5 pitch program. Guidance therefore materially affects altitude allocation and is a major unclosed fidelity term.
FAA source: https://www.faa.gov/sites/faa.gov/files/space/environmental/nepa_docs/SpaceX_Falcon_Program_Final_EA_and_FONSI.pdf
Moderate mass-flow sensitivity:
Isp -5% / +5% -> altitude shift +3.479 / -2.973 km.
Baseline Isp is an explicit assumption. Because LVA derives mass flow from thrust/(Isp*g0), Isp changes the vehicle mass history and therefore acceleration.
Low sensitivity in this experiment:
Cd -25% / +25% -> altitude shift +0.220 / -0.219 km.
Approximate Cape co-rotation -> altitude shift +0.367 km.
Therefore, within these perturbations, neither the generic Cd curve nor omitted rotation is large enough by itself to explain the ~8.7 km altitude shortfall.
Wrong-direction / masking effect:
Illustrative late throttle-down -> altitude shift -0.671 km.
NASA states the real first-stage engines were gradually throttled near the end of first-stage flight. The baseline incorrectly stays at 100%; adding an illustrative throttle-down reduces altitude further. Therefore missing throttle-down does NOT explain why baseline altitude is too low; constant full throttle actually biases the proxy slightly toward the reference and masks some discrepancy.
NASA source: https://www.nasa.gov/wp-content/uploads/2018/07/spacex_nasa_crs-5_presskit-105.pdf
ERROR DIAGNOSIS C — MACH AT 157 s
---------------------------------
Observed nominal discrepancy: model Mach 6.066 vs rounded NASA Mach 10 (39.343 % nominal difference).
First separate vehicle-speed error from local speed-of-sound error:
LVA speed of sound at model altitude (71.305 km): 294.632 m/s.
LVA/USSA speed of sound at reference altitude (80 km): 282.537 m/s.
Holding MODEL speed fixed but evaluating at 80 km gives Mach: 6.325.
Original model Mach: 6.066.
Altitude/acoustic shift therefore changes Mach by only: 0.260.
That is about 6.6 % of the total Mach gap under the LVA atmosphere convention.
Conclusion: most of the Mach discrepancy is a vehicle-speed/trajectory discrepancy, not an atmosphere speed-of-sound discrepancy.
Atmosphere reference family: https://ntrs.nasa.gov/citations/19770009539
Derived diagnostic only (NOT a NASA-reported velocity):
Mach 10 at LVA's validated 80 km standard-atmosphere sound speed would correspond to ~2.825 km/s.
Baseline model speed is 1.787 km/s, a derived gap of -1.038 km/s.
High-sensitivity inputs for Mach/speed in this proxy:
Initial mass -5% / +5% -> Mach shift +1.566 / -1.282.
Thrust -5% / +5% -> Mach shift -1.343 / +1.486.
This again identifies the exact thrust-to-mass history as a dominant unresolved proxy input. The public mass anchor is approximate, and public Falcon version thrust summaries differ across documents.
Moderate sensitivity:
Isp -5% / +5% -> Mach shift +0.619 / -0.511.
Isp is unsourced in the benchmark and directly controls modeled mass flow, so it is a material source of speed uncertainty.
Smaller sensitivity for the tested perturbations:
More-vertical / horizontal guidance -> Mach shift -0.015 / +0.100.
Cd -25% / +25% -> Mach shift +0.021 / -0.021.
Approximate Cape co-rotation -> Mach shift +0.014.
Guidance strongly moves altitude but only modestly changes Mach in these two diagnostic profiles; Cd and co-rotation are much too small here to explain a 3.93-Mach shortfall alone.
Wrong-direction / masking effect:
Illustrative late throttle-down -> Mach shift -0.532.
Since the real vehicle throttled down near the end of first-stage flight, the baseline's constant 100% throttle should overstate late powered acceleration relative to a throttled case. It therefore cannot explain the low Mach; it partially hides the discrepancy.
Coupled-model conclusion:
No single sensitivity perturbation tested here closes the Mach-10 gap. The benchmark is therefore most consistent with a combined fidelity problem: approximate mission mass/thrust state + assumed Isp/mass-flow history + non-Falcon guidance, with smaller contributions from generic aerodynamics and frame/rotation simplifications. These effects are nonlinear and MUST NOT be numerically added as an 'error budget'.
WHY THE MACH-1 MATCH DOES NOT CONTRADICT THE MECO MISMATCH
---------------------------------------------------------
At ~70 s the vehicle has experienced much less cumulative mass depletion and guidance evolution than at 157 s. The sensitivity runs show that small changes in thrust-to-mass and Isp can shift the Mach-1 time by seconds and later MECO-state quantities by much larger amounts. A close early crossing can therefore coexist with a large late-state discrepancy through cumulative model error and/or cancellation among assumptions.
SCIENTIFIC CLAIM BOUNDARY
-------------------------
SUPPORTED:
- LVA reproduces the rounded ~70 s supersonic anchor within ~0.9% in this proxy.
- At the imposed 157 s reference time, LVA is ~8.7 km below the rounded 80 km anchor and reports Mach ~6.07 instead of rounded Mach 10.
- Controlled sensitivity runs show high dependence on thrust-to-mass ratio, material dependence on Isp/mass-flow and guidance, and much smaller dependence on the tested Cd and rotation perturbations.
- A late throttle-down perturbation moves the result farther from the reference, so the baseline's missing throttle-down is not the cause of its low-Mach result.
NOT SUPPORTED:
- assigning an exact percentage of the CRS-5 error to any one missing model feature;
- treating the +/- perturbations as Falcon 9 uncertainty intervals;
- claiming the NASA rounded anchors are exact telemetry;
- claiming this proxy validates Falcon 9 flight guidance or aerodynamics.
SUMMARY
=======
Mach-1 crossing: model=69.385 s, NASA~70 s, nominal diff=0.879 %
Altitude at 157 s: model=71.305 km, NASA~80 km, nominal diff=10.868 %
Mach at 157 s: model=6.066, NASA~10, nominal diff=39.343 %
Primary sensitivity finding: thrust-to-mass and mass-flow history dominate the tested late-state response; guidance materially controls altitude; tested Cd/rotation effects are smaller; throttle-down omission biases in the wrong direction to explain low Mach.
Result: BENCHMARK + ERROR DIAGNOSIS COMPLETE (descriptive; no pass/fail threshold)
09 / STILL OPEN
Validation is not finished.
The evidence above closes several implementation questions, but it also identifies the next fidelity work instead of declaring victory because the page has enough green pixels.
Vehicle-specific aerodynamics
The current Mach-Cd curve is generic. Drag cannot claim Falcon-level validation without a vehicle-specific aerodynamic reference or a defensible surrogate dataset.
Falcon proxy reconstruction
Replace aggregate mass/Isp/guidance assumptions with better mission-specific public data where available, then rerun the same benchmark without tuning directly to the target outputs.