# Deformable mesh and timestep controls

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

Recorded on an isolated GPU instance, RTX PRO 5000, driver 595.84; October 2026.
These 25 single trials test numerical sensitivity, not real-world accuracy or success probabilities.

## Protocol

Five routes each run the original mesh at baseline, half and quarter timestep,
then the refined mesh at half and quarter timestep. The 4.5 s motion tape,
1 kHz controller, 2 N per-finger actuator limit, materials and contact settings
are held fixed. Newton MJWarp + VBD retains explicit shape contact damping 0.2.
The effort limit is not a measured contact force.

| Route | Baseline / half / quarter timestep |
|---|---|
| MuJoCo CPU and native MuJoCo-Warp | 50 / 25 / 12.5 µs |
| Newton MJWarp + VBD | 500 / 250 / 125 µs |
| PhysX GPU and Genesis FEM / SAP | 1,000 / 500 / 250 µs |

Subdivision preserves the original polyhedral boundary: 125 vertices / 384
tetrahedra become 729 / 3,072. It does not create a rounder sphere. Genesis
remeshes natively: the actual saved meshes contain 125 / 411 and 592 / 2,293.
Volume-derived masses are approximately 0.105049 kg for all routes; Genesis
differs by less than one part per million. Two meshes are not a convergence study.

## Measurements and visualization

`resolution-summary.json` contains all 25 records, source SHA256 hashes and
5 ms COM curves. COM uses volume-lumped masses computed from each route's actual
rest tetrahedra, rather than assuming that remeshed nodes retain input masses.
Lift is relative to the first saved pose. Mean/minimum hold lift is measured
over 1.9–2.2 s only when the trace covers that window. Inversion stops are
detection times. Native MuJoCo labels post-step geometry with pre-step times;
the other routes use post-step labels. That substep offset is not corrected.

The plot shows all conditions. Below −10 mm is clipped; crosses below that
range are placed at the lower boundary. Raw curves remain in the summary.
Three replay bundles show the baseline, refined half-step and refined
quarter-step trials across all five routes. They retain surface geometry every
20 ms plus the final valid frame, and full-mesh mass-weighted COM paths.
Invalid trials freeze at the last valid pose. Coupling-force arrows are omitted:
these controls do not validate reaction-force instruments. Gravity remains visible.
The three gzip bundles total 6,968,242 bytes (about 7 MB); raw traces are not deployed.

## Findings and limits

MuJoCo CPU holds the ball in all five trials with roughly 3 mm lower hold lift
after mesh refinement. Native MuJoCo-Warp reaches the hold but inverts during
lowering in every condition. PhysX inverts before lifting; four conditions fail
before commanded closure, leaving initialization/import/contact checks unresolved.
Genesis completes the original-mesh trials without sustained lift but inverts
in both refined cases. VBD completes all five numerically, yet loses the ball
with the refined mesh at 250 µs; at 125 µs it holds it. Numerical completion
must not be equated with task success.

There are no repeats, no mesh/timestep retuning of gains, and no claim that
refinement isolated the cause of the VBD retention change. The 1.10 N coupling
spike is outside this 2 N experiment. Instrumented runtimes are not solver-only
benchmarks. Real-world accuracy remains unmeasured.

## Archive and reproduction

Research workspace: `state-of-robot-aug-2026`.
Raw archive: `output/archive-resolution-sweep/results/deform-resolution-01` and
`deform-resolution-physx-resave-01`; all 96 downloaded files were SHA256-checked
against the VM with zero mismatches. Original logs and failed outcomes are retained.
The original PhysX jobs exited before saving JSON because application shutdown
preceded serialization. The separate PhysX reruns repaired save order, not physics;
their runner checked the physical adapter and tape hashes against the original plan.

Implementation and exact configuration live in `experiments/simcompare/`:
`deform_resolution.py`, `setup/deform_resolution.py`,
`setup/deform_resolution_genesis.py`, `setup/deform_resolution_physx_resave.py`,
and `DEFORM-RESOLUTION-2026-10-01.md`.
To regenerate these assets from the downloaded archive, run
`publish_deform_resolution.py`, then `plot_deform_resolution.py` with NumPy
and Matplotlib available. Compressed payload hashes and sizes are also recorded
in the site's `replay-compression.json`.
