Key finding
Replay health
All 22 solver pairs completed 2 independent subprocess replays.
Newton determinism harness
10 Newton scenarios were replayed in independent subprocesses with
wp.config.deterministic = "run_to_run".
The videos are captured from headless ViewerGL.get_frame(); the verdicts
come from byte hashes of final physics state arrays. The full report covers the physics scenarios registered for this report. Contact scenarios use CollisionPipeline(deterministic=True) for contact ordering.
Key finding
All 22 solver pairs completed 2 independent subprocess replays.
Key finding
Every tested solver pair was bit-exact under wp.config.deterministic='run_to_run'.
Key finding
No remaining run-to-run gap was observed in the tested harness slice on this GPU/software stack.
2 subprocess runs per supported scenario/solver pair.
Hashes include each scenario's canonical core arrays, such as rigid state, particle state, losses, and gradients.
60 frames, 4 substeps, 60 Hz, seed 0, world count 2.
Contact scenarios use CollisionPipeline(deterministic=True) with the report's global Warp determinism mode.
Solver videos use one world and MP4 frames read through ViewerGL.get_frame().
featherstone
240 frames encoded at 24 fps (960x540, stride 1).
mujoco
240 frames encoded at 24 fps (960x540, stride 1).
semi_implicit
240 frames encoded at 24 fps (960x540, stride 1).
vbd
240 frames encoded at 24 fps (960x540, stride 1).
xpbd
240 frames encoded at 24 fps (960x540, stride 1).
falling_cube
Single free rigid body floor contact. Useful for detecting tiny contact drift after impact.
featherstone2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
mujoco2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
semi_implicit2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
vbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
xpbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
mujoco
240 frames encoded at 24 fps (960x540, stride 1).
vbd
240 frames encoded at 24 fps (960x540, stride 1).
xpbd
240 frames encoded at 24 fps (960x540, stride 1).
box_stack
Twenty jittered boxes with many contacts. A compact stress case for ordering and reductions.
mujoco2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
vbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
xpbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
mujoco
240 frames encoded at 24 fps (960x540, stride 1).
vbd
240 frames encoded at 24 fps (960x540, stride 1).
xpbd
240 frames encoded at 24 fps (960x540, stride 1).
domino_chain
Sequential impacts amplify small timing changes into visible propagation differences.
mujoco2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
vbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
xpbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
featherstone
240 frames encoded at 24 fps (960x540, stride 1).
mujoco
240 frames encoded at 24 fps (960x540, stride 1).
xpbd
240 frames encoded at 24 fps (960x540, stride 1).
arm_7dof
Franka arm tracks deterministic sinusoidal PD targets from a fixed base.
featherstone2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
mujoco2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
xpbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
featherstone
240 frames encoded at 24 fps (960x540, stride 1).
mujoco
240 frames encoded at 24 fps (960x540, stride 1).
xpbd
240 frames encoded at 24 fps (960x540, stride 1).
humanoid
Unitree H1 holds a standing pose; drift or falling exposes articulated-contact robustness issues.
featherstone2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
mujoco2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
xpbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
semi_implicit
240 frames encoded at 24 fps (960x540, stride 1).
diffsim_ball
Differentiable particle target with wall and floor contacts; core includes loss and initial-velocity gradients. Diffsim ball target gradient inspired by ``example_diffsim_ball``.
semi_implicit2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
semi_implicit
240 frames encoded at 24 fps (960x540, stride 1).
diffsim_cloth_com
Small differentiable cloth target; COM uses an atomic accumulation before backpropagating gradients. Small cloth gradient scenario inspired by ``example_diffsim_cloth``.
semi_implicit2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
semi_implicit
240 frames encoded at 24 fps (960x540, stride 1).
diffsim_spring_cage
Differentiable spring-cage target; core includes loss and spring rest-length gradients. Spring rest-length gradient inspired by ``example_diffsim_spring_cage``.
semi_implicit2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
vbd
240 frames encoded at 24 fps (960x540, stride 1).
vbd_cloth_patch
Pinned cloth patch with ground contact, using VBD bending-aware coloring. Pinned cloth patch evaluated with the VBD solver.
vbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
vbd
240 frames encoded at 24 fps (960x540, stride 1).
vbd_soft_body
Pinned tetrahedral block with ground contact, using VBD particle/tet solve paths. Pinned tetrahedral block evaluated with the VBD solver.
vbd2/2 subprocess replays matched byte-for-byte with CUDA graph enabled.
| Scenario | Solver | Verdict | Unique hashes | Dominant core signal | Max core diff | Max extras diff | Duration |
|---|---|---|---|---|---|---|---|
| 7-DOF Arm | featherstone |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 30.527 s |
| 7-DOF Arm | mujoco |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 58.379 s |
| 7-DOF Arm | xpbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 36.849 s |
| Box Stack | mujoco |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 48.201 s |
| Box Stack | vbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 16.806 s |
| Box Stack | xpbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 13.961 s |
| Diffsim Ball | semi_implicit |
BIT-EXACT | 1 | final_particle_q (0) | 0 | 0 | 14.044 s |
| Diffsim Cloth COM | semi_implicit |
BIT-EXACT | 1 | final_particle_q (0) | 0 | 0 | 10.41 s |
| Diffsim Spring Cage | semi_implicit |
BIT-EXACT | 1 | final_particle_q (0) | 0 | 0 | 9.834 s |
| Domino Chain | mujoco |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 50.447 s |
| Domino Chain | vbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 20.5 s |
| Domino Chain | xpbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 17.277 s |
| Falling Cube | featherstone |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 14.081 s |
| Falling Cube | mujoco |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 41.97 s |
| Falling Cube | semi_implicit |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 13.255 s |
| Falling Cube | vbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 16.426 s |
| Falling Cube | xpbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 13.808 s |
| Humanoid Standing | featherstone |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 24.991 s |
| Humanoid Standing | mujoco |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 50.329 s |
| Humanoid Standing | xpbd |
BIT-EXACT | 1 | body_q (0) | 0 | 0 | 20.746 s |
| VBD Cloth Patch | vbd |
BIT-EXACT | 1 | particle_q (0) | 0 | 0 | 17.605 s |
| VBD Soft Body | vbd |
BIT-EXACT | 1 | particle_q (0) | 0 | 0 | 18.015 s |
These notes are generated from the actual solver results above rather than a static message.
The current harness is precise about repeated local replays, but it intentionally stops short of broader claims.
wp.config.deterministic is set before heavy Warp/Newton imports and propagated to subprocesses.