# Revised MJWarp–VBD grasp: contact damping

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

The main replay replaces only the Newton grasp traces. Both 1 N and 2 N now
use explicit shape contact damping 0.2 and the original 0.5 ms timestep.
All other routes and compression controls remain unchanged.

The initial integration set global soft-contact damping to zero but left
imported shape damping at 200. A new baseline reproduced failure before
lifting. This is an implementation/configuration lesson, not evidence that
VBD cannot grasp deformable objects. Damping 0.2 is motivated by the official
Franka soft-body example, not independently calibrated material data.

| Trial | Outcome | Mean hold COM lift | Peak harvested coupling feedback |
|---|---|---:|---:|
| Imported damping 200, 2 N | Inversion gate at 0.5755 s | No hold | 1924.37 N |
| Damping 0.2, 2 N | Full grasp/lower/release | 68.59 mm | 34.37 N |
| Damping 0, 2 N | Full grasp/lower/release | 68.11 mm | 23.48 N |
| Damping 0.2, 2 N, 0.25 ms | Full grasp/lower/release | 66.54 mm | 2.56 N |
| Damping 0.2, 1 N | Loses ball; leaves supported workspace | 29.49 mm, not sustained | 11.11 N |

Hold is the existing 1.9–2.2 s window; values above are mass-weighted COM.
The main outcome plot retains vertex-centroid displacement for consistency
with the other engines. At 1 N the ball ends approximately 18.6 m below its
initial COM: completing the integration is not a successful or validated
task. Its lift plot is limited to −20…85 mm, explicitly marking the off-scale
trajectory; full positions are retained in the replay data.

The half-step check supports the qualitative 2 N outcome but not force
convergence. Reported peaks are native harvested feedback across proxy bodies;
the displayed arrows use applied finger feedback from the same trace, with a
one-step delay. Neither is certified as a physical contact-force measurement.
Positive tetrahedral volumes are checked at recorded geometry samples, not a
proof of validity at every intermediate step. These are single trials.

## Reproduction and provenance

Instance 53502939, RTX PRO 5000 Blackwell, driver 595.84. Python 3.12.3,
Newton 1.5.2, MuJoCo/MJWarp 3.11.0, Warp 1.16.0. No engine upgrade.

Run the frozen `assets/deform-grasp-reference.json` with the harness:

```sh
.venv-newton/bin/python deform_grasp_coupled.py --force 2 --contact-kd .2 --output results/NEW/kd0.2-2N.json
```

Use `--force 1` for the second replay; omit `--contact-kd` for the historical
configuration, use `--contact-kd 0` for isolation, or add `--dt .00025` for
the half-step control. The runner refuses to overwrite existing outputs.
Mesh, scene, trajectory hash, stiffness and friction were compared directly
and match the fresh baseline. Only shape damping changes, plus force limit
or timestep where explicitly indicated. No controller retuning.

Raw traces and environment provenance are backed up locally in
`output/archive-deformable-threshold/results/deform-revision-01/`; originals remain under
`output/archive-deformable/results/`. See [revision-summary.json](revision-summary.json)
for raw SHA256 hashes and measurements. Compressed replay bundles also carry
revision metadata and the corresponding raw source hash. Full archives are
not included in the deployment repository.
