# Panda effort-replay audit — 2026-09-21

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

Source: google-deepmind/mujoco_menagerie, revision
822c2d8f877dd166c5b7d3c9f7e3c3b6589473b7, franka_emika_panda/panda.xml,
Apache-2.0. Local manifest.json retains original XML SHA256, all source mesh
hashes, normalized masses/COM/principal inertias and their rotations, body and
joint transforms, initial configuration, original limits and command definition.
Source model from a single pinned asset, not four unrelated Panda packages.

## Deliberate simplification

Seven dynamic arm joints, fixed base. Standard hand and two fingers retain
their mass/inertia, but fingers are fixed at 0.04 m displacement each; no
tendon, finger equality or gripper actuator. All collisions and native drives
disabled. Armature, damping, frictionloss zero (unlike original defaults).
Gravity 9.81 m/s². Original joint limits monitored each step, not enforced;
all accepted trials stay inside them. Not a production or contact-ready asset.
The display uses source mesh geometry without fingertip primitive pads;
this geometry is not used by dynamics and is not a cooked-collision audit.

Initial q (radians): [0,-pi/4,0,-3pi/4,0,pi/2,pi/4], qdot=0.
Common baseline torque is canonical MuJoCo qfrc_bias at initial pose,
computed once and frozen for all stacks. This is constant feedforward, NOT
state-dependent gravity compensation. Added +2 Nm on joint2 [0.05,0.15),
-1 Nm on joint4 [0.15,0.25); otherwise baseline only. Half-second duration.
Native effort APIs, no dynamic per-step state setters. Initial static FK
checks use reset/state setters but no integration, then reset to common q0.

## Acceptance checks

Five fixed configurations, all eleven link poses: position <10 µm, rotation
matrix Frobenius difference <1e-4, reported joint position <1e-5 rad.
Every trajectory also checks native poses against FK at reported q, <10 µm.
Mass readback error <1e-6 kg, COM component <1e-6 m, full inertia component
<1e-6 kg m², expressed in link frames. Actual maximum mass error 1.602e-7 kg,
COM 2.589e-9 m, inertia 4.910e-8 kg m². Full tensor, not just eigenvalues.
Genesis principal-frame inertia is rotated by its recorded inertial quaternion.
PhysX get_body_inertias already returns the tensor in the body frame.
Genesis's imported 0.1 armature defaults are explicitly zeroed and read back,
as established by the prior hinge experiment. Source and overrides retained.

## Engines and evidence

PhysX CPU/Isaac Sim 6.1, TGS 100 position/1 velocity iterations, no sleep,
unscaled body frames, explicit principal axes and joint frames in USD.
MuJoCo CPU 3.11 Euler; Newton 1.5.2/MJWarp 3.11 Euler GPU; Genesis 1.4.1 GPU.
PhysX/Newton float32; MuJoCo CPU/Genesis float64. No performance benchmark.

Three runs seeds 0/1/2 at dt=1 ms plus one dt=0.5 ms run per stack.
Physical initial state fixed. Genesis init and process hash seed set;
seeds do not guarantee GPU determinism. All accepted repeats have exactly
equal recorded frames in this scene. Three runs do not establish determinism
in general, nor robustness over varied initial states.

Native evidence under state-of-robot-aug-2026/experiments/simcompare/output/
archive-rigid/panda-01 (PhysX, Newton, CPU accepted; initial Genesis export
used principal-frame inertia without its rotation), panda-02 (accepted Genesis
with complete link-frame audit), panda-report (figures/bundle/metrics).
The initial Genesis dynamics are retained, not silently replaced; the rerun
changes audit serialization, not the physical model or command sequence.

Replay records native link-frame poses (not COM poses) with gravity at each
COM. Only the hand-frame origin trajectory is drawn. Viewer velocities are
backward pose differences; raw traces contain native joint velocities.
No joint-reaction force/torque readback or complete wrench audit yet. Torque
plots show common commanded efforts, not measured motor sensor torques.

CPU MuJoCo used as comparison reference, NOT hardware truth or an accuracy
ranking. Half-step increases some inter-engine differences. No convergence
claim. Shared PD tracking, active gripper, cooked contacts and grasping remain
next experiments; this validates a short simplified free-space effort test.
