SolvSRK Dynamics Under Noise
Four buyer-relevant dynamics regimes benchmarked against production integrators. SolvSRK is the only solver that survives stiff dynamics under real-world sensor noise.
- 100%
- SolvSRK survival (stiff regimes)
- 0%
- RK4 survival at k≥1e6
- 130×
- Fewer RHS evals vs RK45 (σ=0)
- 4
- Buyer-relevant dynamics regimes
The scenario
Set the picture
Reality Labs-class systems stack several dynamics integrations: IMU preintegration between visual keyframes, rigid-body avatar physics under contact, and long-duration attitude propagation. All use ODE integrators — typically fixed-step RK4 in embedded code.
Under nominal conditions the integrators are fine. Under stress — aggressive motion, sensor saturation, stiff contact, long dead-reckoning — they drift or diverge. Meta’s own Compatibility Mode documentation is an existence proof that the dynamics stack is not reproducible across Quest generations.
Cost today
RK4 at production VR-engine timestep (2 kHz) cannot handle stiff intermittent contact. At k ≥ 1e6 N/m it diverges in <100 ms. Limbs bounce through half a meter of floor.
RK45 (adaptive Dormand–Prince) survives moderate noise but dies at σ=1.0 on stiff systems. No one has published “here is an ODE integrator that survives where the standard ones fail.”
What changes with SolvNum
Sub-POC 2B (22-DOF avatar physics): SolvSRK 100% survival on all 7 stress axes including k=10⁷. RK4 at 2 kHz: 0% survival on any k ≥ 1e6. Semi-implicit Euler (5 kHz) also survives — SolvSRK matches its accuracy to ~1 mm penetration.
Sub-POC 2D (van der Pol μ=1000): SolvSRK 100% survival across σ ∈ {0, 1e-3, 1e-2, 1e-1, 1.0}. RK4: 0% everywhere. RK45: dies at σ=1.0. SolvSRK is 130× more efficient than RK45 in RHS evaluations at σ=0.
On easy regimes (2A IMU, 2C attitude): SolvSRK matches RK45 accuracy at ~4× the wall time. Use RK45 in production for those. The honest pitch: SolvSRK wins on stiffness × noise, not throughput.
Measurable outcome
What we claim — and how it survives review
Each line below maps to a captured number in the demo section. Every number is reproducible from the benchmark suite.
- Sub-POC 2B: 100% survival on all 7 stress axes (baseline through k_100x, noise, impulse, dropout). Max penetration ≤1 mm even at k=10⁷.
- Sub-POC 2D: 100% survival across all noise levels. RK4: 0%. RK45: 0% at σ=1.0.
- Sub-POC 2D efficiency: 130× fewer RHS evals than RK45 at σ=0 (1,079 vs 2,137,027).
- Sub-POC 2A/2C: accuracy parity with RK45 and closed-form exp-map at every horizon ≤60 s.
- Pure C implementation, MIT/Apache, no Python/scipy dependency, ~30 s end-to-end reproducibility.
The demo
What was tested. How. What the script printed.
Four sub-POCs: (2A) IMU preintegration on EuRoC-shaped data, 11 stress axes × 3 integrators; (2B) 22-DOF planar avatar chain with penalty-spring contact at k ∈ {1e5, 1e6, 1e7}; (2C) SO(3) attitude dynamics on TUM-VI and OxIOD-shaped data; (2D) van der Pol μ=1000 stiffness survival under noise σ ∈ {0, 1e-3, 1e-2, 1e-1, 1.0}.
Each sub-POC compares SolvSRK against the integrator that regime is actually solved with in production: RK4, RK45, semi-implicit Euler, or closed-form quaternion exp-map. Results reported as survival rate, accuracy metrics, and wall time.
Captured benchmark output
The numbers the script actually printed.
| Stress axis | RK4 (2 kHz) | Semi-implicit Euler (5 kHz) | SolvSRK |
|---|---|---|---|
| baseline (k=1e5) | 100% / 381 mm pen | 100% / 19 mm | 100% / 19 mm |
| k_10x (k=1e6) | 0% (diverged) | 100% / 4.4 mm | 100% / 4.3 mm |
| k_100x (k=1e7) | 0% (diverged) | 100% / 0.3 mm | 100% / 0.4 mm |
| noise_high (σ=0.1 rad) | 100% / 0.866 rad err | 100% / 0.105 rad | 100% / 0.105 rad |
| impulse (100 Nm) | 0% (diverged) | 100% / 4.4 mm | 100% / 4.3 mm |
RK4 survives baseline but with 381 mm floor penetration (limbs through the floor). SolvSRK and semi-implicit Euler both hold to ~1 mm.
| Noise σ | RK4 (dt=1e-3) | RK45 (rtol=1e-6) | SolvSRK |
|---|---|---|---|
| 0 | 0% | 100% (2.1M rhs) | 100% (1,079 rhs) |
| 1e-3 | 0% | 100% (7.8M rhs) | 100% (12,758 rhs) |
| 1e-2 | 0% | 100% (12.2M rhs) | 100% (1.6M rhs) |
| 1e-1 | 0% | 100% (19.8M rhs) | 100% (3.5M rhs) |
| 1.0 | 0% | 0% (diverged) | 100% (9.1M rhs) |
SolvSRK is the only solver that survives σ=1.0. At σ=0 it uses 130× fewer RHS evaluations than RK45.
Composes with
Where this POC sits in the suite
Evidence pointers
Where the claims live in the repo
These are the files a reviewer should run to re-derive every number on this page.
- solvsrk-c/examples/imu_preintegration/
- solvsrk-c/examples/avatar_physics/
- solvsrk-c/examples/attitude_dynamics/
- solvsrk-c/examples/stiff_vdp/
- solvsrk-c/examples/poc2_review/run_all.sh
- docs/poc/02_solvsrk_dynamics_results.md
Previous · POC 01
AI Decision-Layer Reproducibility
Next · POC 03
Ads Attribution Reconciliation
Want to see these receipts on your pipeline?
Run the benchmark against your actual decision pipeline.
Two weeks, $25K, fully credited. No production integration, no data leaving your premises. Every claim above traces back to a script you can run locally.