Plume - verification & validation report
commit fc79bb0 + uncommitted changes · 2026-10-08 03:32 Central Daylight Time · Python 3.12.10 ·
MuJoCo 3.15.0 · pytest 9.1.1 · Windows AMD64
What this report means
- Verification
- The math is implemented correctly: the code reproduces analytic solutions, NASA reference trajectories, published tables and the expected convergence with time step. Everything on this page is verification.
- Validation
- The models match reality. This needs real flight or test data, which does not exist yet, so validation is pending for every model. Nothing here claims that the simulator predicts real flights.
- Monte Carlo
- Quantified dependability under stated uncertainties: the probability of success and the landing dispersion when vehicle and environment parameters are dispersed as specified. It is only as good as the models and the dispersions.
Models
| model | code | verification status | tests | validation |
|---|---|---|---|---|
| High-fidelity aerodynamics: database, generator, verification | src/plume/physics/aerodb.py, src/plume/physics/aero_gen/ (files listed below) | verified against public NASA wind-tunnel data at M 2.86 (normal force, centre of pressure, axial force) and against exact theory (Taylor-Maccoll cones, Rossow ogive charts, Love base pressure, slender-body limit) (tests/test_aerodb.py). Subsonic/transonic body data and finned-body data are not yet compared (see Verification gaps). Validation against flight data is pending. | 40 / 40 | Validation: pending real data |
| Atmosphere, wind and turbulence | src/plume/physics/atmosphere.py, src/plume/physics/wind.py, src/plume/physics/turbulence.py | verified against published tables and reference outputs (tests/vv/test_environment.py). Validation against measured soundings is pending. | 24 / 24 | Validation: pending real data |
| Earth model, frames and integration | src/plume/physics/earth.py, src/plume/physics/gravity.py, src/plume/physics/sim.py | verified (NASA check cases 1–10, analytic tests). Validation against flight data is pending. | 24 / 24 | Validation: pending real data |
| Guidance, navigation and control: the cargo hop | src/plume/missions/hop.py (HopAutopilot, plan_ascent), src/plume/missions/targeting.py (ImpactPredictor, kepler_impact), src/plume/control/autopilot.py (LandingAutopilot), src/plume/control/attitude.py | not applicable: this is the *vehicle's* flight software, not a physics model. The simulator's job is to show how well it works; the Monte Carlo campaigns below measure it. On the real route at high fidelity, 87.5 % of runs (95 % CI 77–94 %) land the cargo on target. | - | Validation: pending real data |
| Mass properties | src/plume/physics/massprops.py (MassModel, MassProps), src/plume/physics/mjcf.py (build_mjcf), src/plume/physics/sim.py (RocketSim._apply_mass, mid-step update) | verified, covering the CG against a brute-force sum, the CG travel as the tanks drain, exact mass bookkeeping, and the Tsiolkovsky Δv and variable-mass work–energy balance that depend on the mid-step update (tests/test_physics_models.py, tests/test_physics_conservation.py). Validation against measured vehicle mass properties (weighing and swing tests) is pending. | 4 / 4 | Validation: pending real data |
| Sensors and navigation | src/plume/physics/sensors.py, src/plume/control/navigation.py | verified, covering noise statistics, the GNSS rate and latency, the barometric inversion, and filter accuracy on the pad and in powered flight (tests/test_navigation.py). Validation against flight data is pending. | 8 / 8 | Validation: pending real data |
| Propulsion: main engine, gimbal and RCS | src/plume/physics/propulsion.py (Engine, RCS, read_eng), src/plume/config.py (EngineSpec, RCSSpec) | verified, covering the Isp and throttle limits, ignition count, flame-out when dry, gimbal limits and torque signs, RCS allocation, mass conservation, total impulse, Tsiolkovsky Δv and burn to depletion (tests/test_physics_models.py, tests/test_physics_conservation.py), plus the high-fidelity gimbal actuator, ignition delay and RCS minimum impulse bit (tests/test_actuators.py). Validation against engine test-stand or flight data is pending. | 12 / 12 | Validation: pending real data |
| Propellant slosh | src/plume/physics/slosh.py, enabled per tank with tanks[].slosh: true (damping slosh_damping) | verified. Tests check the analytic first-mode frequency and mass, the free-oscillation period (within 1 %), and closed-loop hover stability with slosh coupling (tests/test_slosh.py). Validation against tank tests or flight data is pending. | 3 / 3 | Validation: pending real data |
| Real-world terrain (`plume.terrain.dem`) | src/plume/terrain/dem.py (library), src/plume/terrain/cli.py (plume terrain …) | verified, covering projection round-trips and geodesic distances, tile naming, mosaicking and resampling against an analytic surface, synthetic-detail flagging and hazard maps (tests/test_dem.py). Validation of the DEM against surveyed heights is pending. | 16 / 16 | Validation: pending real data |
Status text is quoted from each page's Verification status line. The tests column counts the test areas mapped to that model (Earth: Earth & gravity, integration, NASA check cases).
Tests by area
| area | passed | failed | skipped | total | time, s |
|---|---|---|---|---|---|
| Earth & gravity | 6 | 0 | 0 | 6 | 126.1 |
| Integration & convergence | 8 | 0 | 0 | 8 | 55.2 |
| NASA check cases | 10 | 0 | 0 | 10 | 87.8 |
| Atmosphere, wind & turbulence | 24 | 0 | 0 | 24 | 4.9 |
| Aerodynamics | 40 | 0 | 0 | 40 | 8.0 |
| Navigation & sensors | 8 | 0 | 0 | 8 | 4.5 |
| Propulsion & actuators | 12 | 0 | 0 | 12 | 2.5 |
| Mass properties | 4 | 0 | 0 | 4 | 0.5 |
| Propellant slosh | 3 | 0 | 0 | 3 | 2.3 |
| Terrain | 16 | 0 | 0 | 16 | 9.9 |
| Monte Carlo machinery | 6 | 0 | 0 | 6 | 0.0 |
| Other | 2 | 0 | 0 | 2 | 0.2 |
NASA 6-DOF check cases (NASA/TM-2015-218675)
Plume (high fidelity) against the median of the NASA simulation tools over 30 s, 0.5 s samples. Tolerance = max(absolute floor, 2 × the largest deviation of any NASA tool from that median). Units: ft, ft/s, deg, deg/s. The worst variable is the one with the largest error-to-tolerance ratio.
| case | variables passed | worst variable | max error | tolerance | pass |
|---|---|---|---|---|---|
| 1. Dropped sphere, no drag | 12 / 12 | alt_ft | 0.00429 | 0.1 | pass |
| 2. Tumbling brick, no damping | 12 / 12 | alt_ft | 0.0134 | 0.1 | pass |
| 3. Tumbling brick with damping | 12 / 12 | alt_ft | 0.0134 | 0.1 | pass |
| 4. Sphere, round non-rotating Earth | 12 / 12 | vd_fps | 0.000875 | 2.13 | pass |
| 5. Sphere, round rotating Earth | 12 / 12 | vd_fps | 0.000871 | 2.13 | pass |
| 6. Sphere, WGS-84 rotating Earth | 12 / 12 | alt_ft | 0.00958 | 1.25 | pass |
| 7. Sphere, steady wind | 12 / 12 | alt_ft | 0.00958 | 1.25 | pass |
| 8. Sphere, wind shear | 12 / 12 | ve_fps | 0.00209 | 0.01 | pass |
| 9. Cannonball eastward along the equator | 12 / 12 | alt_ft | 0.889 | 6.76 | pass |
| 10. Cannonball northward along the prime meridian | 12 / 12 | alt_ft | 0.968 | 6.57 | pass |
All comparisons120 rows
| case | variable | max error | NASA spread | tolerance | pass |
|---|---|---|---|---|---|
| 1 | alt_ft | 0.00429 | 0.00161 | 0.1 | pass |
| 1 | lat_deg | 4.33e-39 | 2.42e-18 | 1e-06 | pass |
| 1 | lon_deg | 2.96e-11 | 5.7e-08 | 1e-06 | pass |
| 1 | vn_fps | 1.33e-34 | 3.41e-13 | 0.01 | pass |
| 1 | ve_fps | 1.05e-06 | 0.0007 | 0.01 | pass |
| 1 | vd_fps | 0.000286 | 0.000115 | 0.01 | pass |
| 1 | yaw_deg | 1.14e-13 | 0 | 0.01 | pass |
| 1 | pitch_deg | 1.25e-17 | 1.91e-14 | 0.01 | pass |
| 1 | roll_deg | 8.87e-11 | 8.62e-08 | 0.01 | pass |
| 1 | p_dps | 1.81e-12 | 0 | 0.01 | pass |
| 1 | q_dps | 9.28e-18 | 0 | 0.01 | pass |
| 1 | r_dps | 1.36e-21 | 9.28e-19 | 0.01 | pass |
| 2 | alt_ft | 0.0134 | 0.00162 | 0.1 | pass |
| 2 | lat_deg | 2.46e-20 | 2.42e-18 | 1e-06 | pass |
| 2 | lon_deg | 1.02e-10 | 5.7e-08 | 1e-06 | pass |
| 2 | vn_fps | 2.31e-15 | 9.05e-14 | 0.01 | pass |
| 2 | ve_fps | 3.72e-06 | 0.0007 | 0.01 | pass |
| 2 | vd_fps | 0.000896 | 0.000115 | 0.01 | pass |
| 2 | yaw_deg | 0.000157 | 1.29 | 2.59 | pass |
| 2 | pitch_deg | 0.00012 | 3.41 | 6.82 | pass |
| 2 | roll_deg | 0.000503 | 3.71 | 7.41 | pass |
| 2 | p_dps | 0.000212 | 0.00301 | 0.01 | pass |
| 2 | q_dps | 0.000275 | 0.00473 | 0.01 | pass |
| 2 | r_dps | 8.61e-05 | 0.00115 | 0.01 | pass |
| 3 | alt_ft | 0.0134 | 0.00054 | 0.1 | pass |
| 3 | lat_deg | 1.51e-21 | 2.42e-18 | 1e-06 | pass |
| 3 | lon_deg | 1.02e-10 | 5.7e-08 | 1e-06 | pass |
| 3 | vn_fps | 2.01e-16 | 8.06e-14 | 0.01 | pass |
| 3 | ve_fps | 3.72e-06 | 0.0007 | 0.01 | pass |
| 3 | vd_fps | 0.000895 | 3.06e-05 | 0.01 | pass |
| 3 | yaw_deg | 0.0269 | 0.34 | 0.68 | pass |
| 3 | pitch_deg | 0.0802 | 0.571 | 1.14 | pass |
| 3 | roll_deg | 0.0328 | 0.493 | 0.986 | pass |
| 3 | p_dps | 0.0033 | 0.0306 | 0.0612 | pass |
| 3 | q_dps | 0.00379 | 0.0723 | 0.145 | pass |
| 3 | r_dps | 0.00134 | 0.0161 | 0.0321 | pass |
| 4 | alt_ft | 0.0088 | 18.1 | 36.2 | pass |
| 4 | lat_deg | 9.85e-20 | 7.83e-07 | 1.57e-06 | pass |
| 4 | lon_deg | 0 | 0 | 1e-06 | pass |
| 4 | vn_fps | 2.99e-14 | 0.01 | 0.02 | pass |
| 4 | ve_fps | 4.39e-15 | 1.21e-13 | 0.01 | pass |
| 4 | vd_fps | 0.000875 | 1.06 | 2.13 | pass |
| 4 | yaw_deg | 4.99e-08 | 3.33 | 6.66 | pass |
| 4 | pitch_deg | 4.91e-09 | 4.35 | 8.7 | pass |
| 4 | roll_deg | 4.99e-09 | 5.12 | 10.2 | pass |
| 4 | p_dps | 0 | 1.1e-08 | 0.01 | pass |
| 4 | q_dps | 0 | 2e-08 | 0.01 | pass |
| 4 | r_dps | 3.55e-15 | 2e-08 | 0.01 | pass |
| 5 | alt_ft | 0.00876 | 18.2 | 36.3 | pass |
| 5 | lat_deg | 5.89e-20 | 7.83e-07 | 1.57e-06 | pass |
| 5 | lon_deg | 5.41e-11 | 1.8e-07 | 1e-06 | pass |
| 5 | vn_fps | 3.07e-14 | 0.01 | 0.02 | pass |
| 5 | ve_fps | 2.63e-06 | 0.00277 | 0.01 | pass |
| 5 | vd_fps | 0.000871 | 1.07 | 2.13 | pass |
| 5 | yaw_deg | 6.79e-08 | 3.35 | 6.69 | pass |
| 5 | pitch_deg | 8.31e-08 | 4.35 | 8.7 | pass |
| 5 | roll_deg | 1.01e-07 | 5.13 | 10.3 | pass |
| 5 | p_dps | 7.33e-09 | 1.1e-08 | 0.01 | pass |
| 5 | q_dps | 3.78e-09 | 2e-08 | 0.01 | pass |
| 5 | r_dps | 3.12e-09 | 2e-08 | 0.01 | pass |
| 6 | alt_ft | 0.00958 | 0.623 | 1.25 | pass |
| 6 | lat_deg | 1.26e-24 | 8.58e-18 | 1e-06 | pass |
| 6 | lon_deg | 6.59e-10 | 5.95e-08 | 1e-06 | pass |
| 6 | vn_fps | 5.26e-15 | 1.22e-09 | 0.01 | pass |
| 6 | ve_fps | 2.73e-06 | 0.000608 | 0.01 | pass |
| 6 | vd_fps | 0.000918 | 0.101 | 0.201 | pass |
| 6 | yaw_deg | 1.14e-13 | 2.19e-12 | 0.01 | pass |
| 6 | pitch_deg | 1.27e-14 | 1e-09 | 0.01 | pass |
| 6 | roll_deg | 6.52e-11 | 7.68e-08 | 0.01 | pass |
| 6 | p_dps | 1.95e-12 | 0 | 0.01 | pass |
| 6 | q_dps | 9.28e-18 | 0 | 0.01 | pass |
| 6 | r_dps | 6.66e-22 | 9.28e-19 | 0.01 | pass |
| 7 | alt_ft | 0.00958 | 0.623 | 1.25 | pass |
| 7 | lat_deg | 4.75e-20 | 8.55e-18 | 1e-06 | pass |
| 7 | lon_deg | 3.39e-10 | 6.73e-08 | 1e-06 | pass |
| 7 | vn_fps | 2.04e-15 | 1.22e-09 | 0.01 | pass |
| 7 | ve_fps | 8.75e-06 | 0.00242 | 0.01 | pass |
| 7 | vd_fps | 0.000919 | 0.101 | 0.201 | pass |
| 7 | yaw_deg | 1.14e-13 | 0 | 0.01 | pass |
| 7 | pitch_deg | 1.23e-17 | 1.91e-14 | 0.01 | pass |
| 7 | roll_deg | 1.23e-10 | 1.41e-07 | 0.01 | pass |
| 7 | p_dps | 8.13e-12 | 0 | 0.01 | pass |
| 7 | q_dps | 9.28e-18 | 0 | 0.01 | pass |
| 7 | r_dps | 4.97e-22 | 9.28e-19 | 0.01 | pass |
| 8 | alt_ft | 0.00954 | 0.617 | 1.23 | pass |
| 8 | lat_deg | 8.61e-20 | 8.58e-18 | 1e-06 | pass |
| 8 | lon_deg | 1.72e-09 | 2.42e-07 | 1e-06 | pass |
| 8 | vn_fps | 1.44e-15 | 1.22e-09 | 0.01 | pass |
| 8 | ve_fps | 0.00209 | 0.00428 | 0.01 | pass |
| 8 | vd_fps | 0.000913 | 0.0999 | 0.2 | pass |
| 8 | yaw_deg | 1.14e-13 | 0 | 0.01 | pass |
| 8 | pitch_deg | 1.26e-17 | 1.91e-14 | 0.01 | pass |
| 8 | roll_deg | 5.47e-09 | 1.5e-07 | 0.01 | pass |
| 8 | p_dps | 1.54e-11 | 0 | 0.01 | pass |
| 8 | q_dps | 9.28e-18 | 0 | 0.01 | pass |
| 8 | r_dps | 1.34e-21 | 9.28e-19 | 0.01 | pass |
| 9 | alt_ft | 0.889 | 3.38 | 6.76 | pass |
| 9 | lat_deg | 1.2e-18 | 7.23e-16 | 1e-06 | pass |
| 9 | lon_deg | 2.76e-06 | 1.07e-05 | 2.15e-05 | pass |
| 9 | vn_fps | 6.12e-14 | 2.07e-12 | 0.01 | pass |
| 9 | ve_fps | 0.0378 | 0.161 | 0.321 | pass |
| 9 | vd_fps | 0.0333 | 0.134 | 0.268 | pass |
| 9 | yaw_deg | 0 | 0 | 0.01 | pass |
| 9 | pitch_deg | 7.16e-08 | 1.23e-05 | 0.01 | pass |
| 9 | roll_deg | 0 | 2.84e-14 | 0.01 | pass |
| 9 | p_dps | 7.36e-27 | 1.6e-18 | 0.01 | pass |
| 9 | q_dps | 1e-09 | 1.21e-06 | 0.01 | pass |
| 9 | r_dps | 5.31e-28 | 1.6e-18 | 0.01 | pass |
| 10 | alt_ft | 0.968 | 3.28 | 6.57 | pass |
| 10 | lat_deg | 6.66e-06 | 0.000414 | 0.000828 | pass |
| 10 | lon_deg | 8.4e-09 | 6.56e-08 | 1e-06 | pass |
| 10 | vn_fps | 0.0391 | 0.162 | 0.324 | pass |
| 10 | ve_fps | 0.000132 | 0.000695 | 0.01 | pass |
| 10 | vd_fps | 0.0349 | 0.131 | 0.262 | pass |
| 10 | yaw_deg | 0 | 1.49e-08 | 0.01 | pass |
| 10 | pitch_deg | 0.00041 | 0.00041 | 0.01 | pass |
| 10 | roll_deg | 3.22e-08 | 1.48e-07 | 0.01 | pass |
| 10 | p_dps | 1.13e-09 | 1.21e-06 | 0.01 | pass |
| 10 | q_dps | 1.05e-10 | 7.02e-37 | 0.01 | pass |
| 10 | r_dps | 1.42e-13 | 1.6e-18 | 0.01 | pass |
Monte Carlo reports
| report | mission | fidelity | runs | success | 95 % CI | CEP50 | source |
|---|---|---|---|---|---|---|---|
| demo_hop_fast | demo_hop | fast | 200 | 12.5 % | 8.6–17.8 % | 257 m | summary.json |
| demo_hop_fast_v5_64 | demo_hop | fast | 64 | 17.2 % | 9.9–28.2 % | 220 m | summary.json |
| real_hop_high | real_hop | high | 64 | 87.5 % | 77.2–93.5 % | 5 m | summary.json |
Headline numbers come from runs/mc/<name>/summary.json, or from the report page itself when that file is missing (for example while a campaign is being re-run). Success probability uses the Wilson score interval; CEP50 is the median miss distance of the landed runs. Monte Carlo results inherit the model-form error of the unvalidated models.
All tests
Earth & gravity6 / 6 passed
| test | result | time, s |
|---|---|---|
test_gravity_modelstests.test_physics_models | pass | 0.00 |
test_spherical_map_roundtriptests.test_physics_models | pass | 0.00 |
test_geodetic_roundtriptests.vv.test_analytic | pass | 0.00 |
test_gravity_matches_potential_gradient_and_known_valuestests.vv.test_analytic | pass | 0.00 |
test_point_mass_kepler_orbit_closestests.vv.test_analytic | pass | 113.78 |
test_rotating_frame_jacobi_energy_conservedtests.vv.test_analytic | pass | 12.31 |
Integration & convergence8 / 8 passed
| test | result | time, s |
|---|---|---|
test_free_flight_energy_conservedtests.test_physics_conservation | pass | 1.33 |
test_gravity_free_fall_matches_analytictests.test_physics_conservation | pass | 0.08 |
test_linear_momentum_conserved_without_forcestests.test_physics_conservation | pass | 0.14 |
test_spherical_gravity_ballistic_arc_conserves_energytests.test_physics_conservation | pass | 4.01 |
test_torque_free_angular_momentum_conservedtests.test_physics_conservation | pass | 0.26 |
test_pointmass_agrees_with_6dof_vertical_flighttests.test_physics_models | pass | 0.56 |
test_convergence_with_timesteptests.vv.test_analytic | pass | 25.98 |
test_tabulated_aero_step_size_floortests.vv.test_analytic | pass | 22.89 |
NASA check cases10 / 10 passed
| test | result | time, s |
|---|---|---|
test_nasa_atmospheric_checkcase[1]tests.vv.test_nasa_checkcases | pass | 9.35 |
test_nasa_atmospheric_checkcase[2]tests.vv.test_nasa_checkcases | pass | 9.50 |
test_nasa_atmospheric_checkcase[3]tests.vv.test_nasa_checkcases | pass | 9.58 |
test_nasa_atmospheric_checkcase[4]tests.vv.test_nasa_checkcases | pass | 2.86 |
test_nasa_atmospheric_checkcase[5]tests.vv.test_nasa_checkcases | pass | 9.20 |
test_nasa_atmospheric_checkcase[6]tests.vv.test_nasa_checkcases | pass | 9.64 |
test_nasa_atmospheric_checkcase[7]tests.vv.test_nasa_checkcases | pass | 9.58 |
test_nasa_atmospheric_checkcase[8]tests.vv.test_nasa_checkcases | pass | 9.71 |
test_nasa_atmospheric_checkcase[9]tests.vv.test_nasa_checkcases | pass | 9.19 |
test_nasa_atmospheric_checkcase[10]tests.vv.test_nasa_checkcases | pass | 9.19 |
Atmosphere, wind & turbulence24 / 24 passed
| test | result | time, s |
|---|---|---|
test_wind_is_deterministic_per_seedtests.test_physics_conservation | pass | 0.42 |
test_atmosphere_monotonic_and_tailtests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[0.0-288.15-101325.0-1.225]tests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[5000.0-255.68-54048.0-0.73643]tests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[11000.0-216.77-22700.0-0.3648]tests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[20000.0-216.65-5529.3-0.08891]tests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[32000.0-228.49-889.06-0.013555]tests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[50000.0-270.65-79.779-0.0010269]tests.test_physics_models | pass | 0.00 |
test_us_standard_atmosphere[80000.0-198.64-1.0524-1.8458e-05]tests.test_physics_models | pass | 0.00 |
test_wind_profile_and_directiontests.test_physics_models | pass | 0.00 |
test_wind_spec_roundtriptests.test_physics_models | pass | 0.00 |
test_composite_wind_in_sim_worldtests.vv.test_environment | pass | 0.14 |
test_mil_low_altitude_parameterstests.vv.test_environment | pass | 0.00 |
test_mil_turbulence_statistics[dryden]tests.vv.test_environment | pass | 2.02 |
test_mil_turbulence_statistics[von_karman]tests.vv.test_environment | pass | 2.28 |
test_nrlmsise00_reference_case_and_wrappertests.vv.test_environment | pass | 0.01 |
test_sounding_reproduces_us76_and_reads_radiosondetests.vv.test_environment | pass | 0.00 |
test_us76_lower_matches_published_table[0.0]tests.vv.test_environment | pass | 0.00 |
test_us76_lower_matches_published_table[10000.0]tests.vv.test_environment | pass | 0.00 |
test_us76_lower_matches_published_table[20000.0]tests.vv.test_environment | pass | 0.00 |
test_us76_lower_matches_published_table[50000.0]tests.vv.test_environment | pass | 0.00 |
test_us76_lower_matches_published_table[80000.0]tests.vv.test_environment | pass | 0.00 |
test_us76_upper_table_continuity_and_monotonicitytests.vv.test_environment | pass | 0.02 |
test_wind_profile_import_drives_the_sim_windtests.vv.test_environment | pass | 0.00 |
Aerodynamics40 / 40 passed
| test | result | time, s |
|---|---|---|
test_axial_force_vs_jernelltests.test_aerodb | pass | 0.34 |
test_axisymmetric_symmetrytests.test_aerodb | pass | 0.00 |
test_base_drag_and_face_dragtests.test_aerodb | pass | 0.00 |
test_centre_of_pressure_vs_jernelltests.test_aerodb | pass | 0.00 |
test_crossflow_drag_coefficienttests.test_aerodb | pass | 0.00 |
test_dissipative_monte_carlo_dispersionstests.test_aerodb | pass | 0.30 |
test_dissipative_no_wind[hobby_rocket]tests.test_aerodb | pass | 0.57 |
test_dissipative_no_wind[lander_small]tests.test_aerodb | pass | 1.29 |
test_engine_first_stability[cargo_hopper_finless]tests.test_aerodb | pass | 0.39 |
test_engine_first_stability[lander_small]tests.test_aerodb | pass | 0.43 |
test_generated_database_round_triptests.test_aerodb | pass | 0.76 |
test_geometry_matches_tn_d6996_fig9tests.test_aerodb | pass | 0.00 |
test_grid_interpolator_collapses_singleton_axestests.test_aerodb | pass | 0.00 |
test_gridfin_multiplierstests.test_aerodb | pass | 0.00 |
test_heatingtests.test_aerodb | pass | 0.00 |
test_hobby_rocket_static_margintests.test_aerodb | pass | 0.72 |
test_import_datcomtests.test_aerodb | pass | 0.03 |
test_import_generic_csvtests.test_aerodb | pass | 0.02 |
test_import_openrockettests.test_aerodb | pass | 0.09 |
test_import_rasaerotests.test_aerodb | pass | 0.09 |
test_interpolation_exact_on_linear_datatests.test_aerodb | pass | 0.00 |
test_newtonian_limitstests.test_aerodb | pass | 0.00 |
test_normal_force_vs_jernelltests.test_aerodb | pass | 0.33 |
test_ogive_wave_drag_vs_rossow_charttests.test_aerodb | pass | 0.00 |
test_performancetests.test_aerodb | pass | 0.48 |
test_perturbed_databasetests.test_aerodb | pass | 0.00 |
test_power_on_and_retropropulsiontests.test_aerodb | pass | 0.70 |
test_presets_generate[cargo_hopper]tests.test_aerodb | pass | 0.39 |
test_presets_generate[cargo_hopper_finless]tests.test_aerodb | pass | 0.01 |
test_presets_generate[hobby_rocket]tests.test_aerodb | pass | 0.01 |
test_presets_generate[lander_small]tests.test_aerodb | pass | 0.01 |
test_rate_damping_and_compat_attributestests.test_aerodb | pass | 0.00 |
test_roll_dependent_databasetests.test_aerodb | pass | 0.01 |
test_runtime_matches_tablestests.test_aerodb | pass | 0.00 |
test_save_load_round_triptests.test_aerodb | pass | 0.01 |
test_skin_frictiontests.test_aerodb | pass | 0.00 |
test_slender_body_limittests.test_aerodb | pass | 0.36 |
test_sutherland_and_reynoldstests.test_aerodb | pass | 0.00 |
test_taylor_maccoll_and_linnell_baileytests.test_aerodb | pass | 0.25 |
test_drag_work_accounts_for_energy_losstests.test_physics_conservation | pass | 0.37 |
Navigation & sensors8 / 8 passed
| test | result | time, s |
|---|---|---|
test_gnss_rate_and_latencytests.test_navigation | pass | 0.00 |
test_imu_noise_density_and_biastests.test_navigation | pass | 0.16 |
test_navigation_mode_defaultstests.test_navigation | pass | 0.00 |
test_navigator_on_pad_and_in_powered_flighttests.test_navigation | pass | 4.37 |
test_pressure_altitude_inverts_standard_atmosphere[0.0]tests.test_navigation | pass | 0.00 |
test_pressure_altitude_inverts_standard_atmosphere[1500.0]tests.test_navigation | pass | 0.00 |
test_pressure_altitude_inverts_standard_atmosphere[8000.0]tests.test_navigation | pass | 0.00 |
test_pressure_altitude_inverts_standard_atmosphere[18000.0]tests.test_navigation | pass | 0.00 |
Propulsion & actuators12 / 12 passed
| test | result | time, s |
|---|---|---|
test_gimbal_actuator_delay_rate_limit_and_settlingtests.test_actuators | pass | 0.01 |
test_ignition_delaytests.test_actuators | pass | 0.01 |
test_rcs_pwm_impulse_and_minimum_impulse_bittests.test_actuators | pass | 0.01 |
test_burn_to_depletion_matches_rocket_equationtests.test_physics_conservation | pass | 1.50 |
test_tsiolkovsky_delta_vtests.test_physics_conservation | pass | 0.91 |
test_engine_flameout_when_drytests.test_physics_models | pass | 0.00 |
test_engine_ignition_limittests.test_physics_models | pass | 0.00 |
test_engine_isp_and_throttle_limitstests.test_physics_models | pass | 0.01 |
test_gimbal_rate_and_angle_limitstests.test_physics_models | pass | 0.00 |
test_gimbal_torque_signstests.test_physics_models | pass | 0.02 |
test_rcs_allocation_produces_requested_axistests.test_physics_models | pass | 0.04 |
test_rcs_capability_positivetests.test_physics_models | pass | 0.01 |
Mass properties4 / 4 passed
| test | result | time, s |
|---|---|---|
test_mass_conservation_and_total_impulsetests.test_physics_conservation | pass | 0.27 |
test_work_energy_with_variable_masstests.test_physics_conservation | pass | 0.23 |
test_cg_drops_as_tanks_draintests.test_physics_models | pass | 0.00 |
test_mass_properties_match_brute_forcetests.test_physics_models | pass | 0.00 |
Propellant slosh3 / 3 passed
| test | result | time, s |
|---|---|---|
test_first_mode_frequency_and_masstests.test_slosh | pass | 0.00 |
test_free_oscillation_matches_natural_frequencytests.test_slosh | pass | 0.56 |
test_hover_with_slosh_stays_controlledtests.test_slosh | pass | 1.69 |
Terrain16 / 16 passed
| test | result | time, s |
|---|---|---|
test_aeqd_distance_matches_geodesic_at_750kmtests.test_dem | pass | 0.00 |
test_corridor_coarsens_and_records_routetests.test_dem | pass | 0.09 |
test_from_geotiff_reprojects_utm_surveytests.test_dem | pass | 0.17 |
test_hazard_kink_rock_and_nearest_safetests.test_dem | pass | 0.00 |
test_hazard_slope_threshold_on_planestests.test_dem | pass | 0.00 |
test_missing_tiles_are_sea_level_and_offline_errorstests.test_dem | pass | 0.02 |
test_mosaic_and_resample_match_analytic_surfacetests.test_dem | pass | 0.10 |
test_network_fetch_real_tilestests.test_dem | pass | 9.26 |
test_projection_round_trip_sub_mm[pyproj]tests.test_dem | pass | 0.00 |
test_projection_round_trip_sub_mm[rasterio]tests.test_dem | pass | 0.01 |
test_projection_round_trip_sub_mm[sphere]tests.test_dem | pass | 0.00 |
test_real_dataset_files_are_sanetests.test_dem | pass | 0.08 |
test_sphere_fallback_close_to_ellipsoidtests.test_dem | pass | 0.01 |
test_synthetic_detail_is_flagged_and_band_limitedtests.test_dem | pass | 0.12 |
test_tile_naming_and_urlstests.test_dem | pass | 0.00 |
test_vincenty_reference_distancetests.test_dem | pass | 0.00 |
Monte Carlo machinery6 / 6 passed
| test | result | time, s |
|---|---|---|
test_error_ellipse_recovers_covariancetests.test_montecarlo | pass | 0.00 |
test_presets_loadtests.test_montecarlo | pass | 0.01 |
test_sampling_is_reproducible_and_applies_pathstests.test_montecarlo | pass | 0.00 |
test_spearmantests.test_montecarlo | pass | 0.00 |
test_summary_sensitivity_and_reporttests.test_montecarlo | pass | 0.01 |
test_wilson_interval_known_valuestests.test_montecarlo | pass | 0.00 |
Other2 / 2 passed
| test | result | time, s |
|---|---|---|
test_hard_impact_reports_touchdown_speedtests.test_physics_models | pass | 0.09 |
test_lander_rests_on_legstests.test_physics_models | pass | 0.07 |
Method
Tests: -m pytest -q -n 4 -m vv and -m pytest -q -n 4 tests/test_aerodb.py tests/test_navigation.py tests/test_actuators.py tests/test_slosh.py tests/test_dem.py tests/test_montecarlo.py tests/test_physics_models.py tests/test_physics_conservation.py. JUnit source runs/vv/junit.xml, run started 2026-10-08T03:29:39.217346-05:00.
Regenerate with uv run plume vv-report (--no-run re-reads the last
JUnit file, --no-nasa skips the check-case table).