# Complete object physics audit

Audited on 2026-09-14 in the native Isaac Sim 6.1 / PhysX runtime on an NVIDIA A10. All physical constants remain estimates; these are numerical and geometry checks, not validation against measured kitchen equipment.

The [inventory](inventory.json) covers every authored physics object: **36 dynamic bodies, 114 fixed props, 175 structural groups, 1,721 colliders and three appliance joints**. It lists each body's mass, contact shapes, material, solver settings and provenance, every fixed collider, and 2,192 visual meshes without a collision owner. Those meshes are decorative and cannot be treated as independent manipulation targets.

## Corrections made

- Replaced the jug's filled handle proxy with three bars following the visible loop. The gripper now has an actual opening to enter.
- Added contact geometry to the lid handle, both drawer handles and oven handle.
- Extended open-pan floors into the wall footprints, eliminating the narrow seams between floor and walls.
- Used the visible convex mesh geometry for whole lemons and bread rolls. The previous spherical lemon proxies rolled during release probes; the revised hulls settle.
- Kept the video-layout reconstruction separate from the explicitly rearranged robot task overlays. The overlay lid is enlarged to fit the selected saucepan; its mass remains an estimate.

## Native results

The [body readback and release receipts](native-objects.json) pass for **all 36 bodies**. Native mass matches the manifest, and each inertia tensor is finite, positive definite and satisfies the principal-moment triangle inequality. PhysX computes mass distribution from the authored contact shapes; physically valid inertia does not establish the real object's mass distribution.

All **33 free bodies** passed individual release probes: lift 4 cm, add 0.08 m/s horizontal velocity, then simulate three seconds at 240 Hz. Passing requires local support, less than 3 mm translation in the last half-second, and speed below 0.05 m/s. The three constrained bodies use joint sweeps instead.

The refreshed [reference-scene acceptance test](../native/physics.json) passes all 36-body settling checks, the dropped-sphere open-container test, both drawer drives, stockpot support and oven hinge/heat interlock. Both drawers open 248.62 mm for a 250 mm command. The oven reaches 74.21° for a 70° command under gravity/load and returns within 0.029°. Measured door rotation turns heater input off while open and restores it after closure.

The separate GPU PBD tests retain 95.5% of the column pour and 100% of the 1,157-particle prescribed jug pour. The deliberate spill reaches the floor; one particle leaves the finite floor boundary. [Column receipt](../native/fluid.json) · [Jug receipt](../native/jug.json). These probes freeze other props and prescribe the jug trajectory. They do not demonstrate a robot grasp or thermally coupled PBD fluid.

## Additional control and inertia checks

The [passive-control force probe](native-controls.json) reaches the full 270° dial range and 6 mm button travel. The spring returns the button to within 0.00024 mm of rest. Pressing toggles power once, holding does not retrigger it, and releasing/repressing toggles it again. This is an external force probe, not a successful robot oven demonstration.

The [known-torque probe](native-inertia-frame.json) verifies the runtime's inertia convention: a full tensor in body axes about the center of mass. The measured angular response matches within 0.021%; applying an extra center-of-mass rotation gives an 11.3% error in this probe. This caught and corrected a double rotation in the reduced liquid adapter. The corrected adapter supplies the full tensor, lets the native API compute its principal axes, and records inertia readback error. Earlier pouring trials were retired and repeated after this correction.

NVIDIA's [tensor API](https://docs.omniverse.nvidia.com/kit/docs/omni_physics/107.0/extensions/runtime/source/omni.physics.tensors/docs/api/python.html) describes the mass-property interface. The included impulse experiment checks the convention in the specific tested runtime rather than relying on ambiguous frame wording.

The [native liquid ledger](liquid-native-ledger.json) records maximum mass, COM, inertia and transfer-momentum readback errors across all 50 corrected pouring trials. None delivered water into the receiving pan. Receiver-transfer math is covered by deterministic model tests; a successful native robot pour remains unvalidated.

## What remains approximate

| Item or behavior | Actual scope |
| --- | --- |
| Mass, friction, restitution | Estimated constants, without physical measurements; no wetness or grease response |
| Contact geometry | Compound approximations and selected convex food hulls; small decorative details may have no contacts |
| Food | Rigid pieces; burger patty and toppings share one body; no cutting, tearing, squashing or independent ingredient dynamics |
| Tongs, bottles | Single rigid props; no articulation, squeezing or dispensing |
| Appliances | Explicit state/thermal adapters, with estimated rates and interlocks; opening USD alone does not execute Python behavior |
| Flames | Visual emissive geometry; no combustion, smoke or steam-flow simulation |
| Hot pan | Lumped body/handle/gripper temperatures and an energy ledger; no spatial temperature field or burn/damage model |
| Reduced pouring | Quasi-static contents, ballistic packets and native vessel mass/COM/inertia updates; no arbitrary solid interception, splash, slosh or wet friction |
| Filled receiver | Must stay within 5° of upright; a larger tilt invalidates the episode |
| General validity | These probes do not certify every possible stack, impact, grasp, contact force or solver timestep |

The [robot evaluation](../benchmark.html) reports every held-out task outcome separately. All 22 failed drawer trials retrieved the item but stopped at the 5 cm Cartesian tracking-error limit during closure; the measured error was 5.4–5.6 cm. All 50 oven trials stopped at the door approach with 11.2 cm tracking error. These are controller/reach failures, distinct from the passing joint and control probes. Successful object probes do not imply that every controller succeeds.
