# Scenario 02: drop and settle

Public reproduction note: archive aliases and `SIMCOMPARE_ROOT` are portable placeholders; use your own archive and checkout locations. Private deployment identifiers are omitted.

Evidence: `output/archive-rigid/drop-01/`; remote same suffix beneath
`SIMCOMPARE_ROOT/results`. All 12 planned runs completed: 2 ms baseline,
2 ms repeat, and 1 ms in four stacks. One extra Newton 2 ms diagnostic run.

Primary published bundle: `viewer/drop-20260921.json`, **1 ms** recordings.
Report: `drop-01/report-1ms/`. Blog: `simulation-blogpost-2/#scenario-02`.
1 second, analytic .04 m cube, mass .1 kg, initial COM z=.35 m, velocity=0,
bottom clearance .33 m, gravity9.81, friction.4; no external applied force.
Do not imply matched restitution: PhysX e=0; other stacks soft-contact settings.

| Stack | Peak net contact N | Max ideal-box overlap mm | Settles at s | Contact impulse, first 40 ms N·s |
|---|---:|---:|---:|---:|
| PhysX CPU | 253.859 | .000089 | .264 | .292337 |
| Newton/MJWarp | 52.036 | 7.843886 | .362 | .304304 |
| MuJoCo CPU | 52.039 | 7.843969 | .362 | .304298 |
| Genesis | 53.441 | 7.567368 | .364 | .303410 |

First impact near .258–.259 s. Settling criterion: total translational speed
stays below .001 m/s for remaining recording. Lowest vertex uses quaternion:
z_COM - side/2 * sum(abs(R_world_z_row)). Penetration is not contact margin.
No meaningful airborne rebound; upward motion in soft stacks recovers overlap.

## Timestep check

PhysX peak127.528N at2ms,253.859N at1ms; first40ms impulse .292338/.292337Ns.
The peak is impulse/dt, not a timestep-independent material characteristic.
CPU penetration9.0098mm at2ms vs7.8440mm at1ms; Genesis8.7406vs7.5674mm.
The same10ms soft-contact timeconstant does not calibrate a hard material.

## Force audit

Primary1ms maximum per-step residuals mΔv - ΣFΔt:
PhysX2.19e-8, Newton3.77e-6, CPU2.99e-14, Genesis2.99e-14 N·s.
All pass unchanged5e-6Ns criterion.

Newton2ms baseline/repeat fail that strict criterion at1.401e-5Ns. Retained,
not passed by increasing tolerance. `newton-audit2ms.json` stores qacc and
qfrc_constraint; at .264s native contact sum and qfrc_constraint agree, but
m*qacc differs from qfrc_constraint + m*g by ~.007008N. Velocity integration
agrees with qacc to float32 scale. Therefore not a world-frame/sign extraction
error; numerical force/acceleration consistency remains unresolved. Do not
present2msNewton as fully audited evidence. All primaryplots use1ms.

## Next experiments

Contact softness sweep with independently reported solver semantics; smaller
timesteps to establish convergence; consider a measured physical impact
reference. Do not tune solely to make engines agree. No robot policy involved.

All raw runs/logs downloaded. Instance remains running but jobs are finished.
