# Validation evidence

The Blender master was reviewed from fourteen cameras after thirteen geometry/material review iterations. Earlier iteration contact sheets remain here; full final views are in `iteration-final`. The second reference study added 24 sampled frames and several full-resolution close-ups from the selected video.

Native simulation ran in an isolated Isaac worker container on an NVIDIA A10, capped at four CPU cores and 10 GB of host memory. Other services were not changed. Test source is included.

Worker image: `rg-sim:library-recovery`, image ID `sha256:21d3d4d7500812d9e1a5684d2c94947682237256bf507b1824bab03df9dd2309`.

| Check | Result / evidence |
| --- | --- |
| Native settling | All 36 bodies finite and supported after six simulated seconds; largest movement 12.32 mm, no late motion in the final second. `native/physics.json` |
| Open GN-pan contact | Dropped sphere settles inside the container, 16 mm above its base origin. A hull closing the opening would fail this check. |
| Both drawer drives | Each opens 248.62 mm for a 250 mm command and returns within 0.001 mm of its initial position. |
| Oven door and heater | A 70° drive command opens the door to 74.21° under gravity/load; return error 0.029°. Measured PhysX rotation inhibits heat while open and restores 2,800 W after closing. `native/physics.json` |
| Burner support | Stockpot settles at Z = 0.96683 m on its grate. |
| Native pose to heat input | Measured stockpot pose supplies 1,696.94 J over one second at full burner control in the optional adapter. |
| Thermal numerical model | Seven tests cover energy conservation, analytic cooling, handle lag, lift-off, missing/off input, small heat capacities, invalid controls/time and session-only USD telemetry. |
| Appliance and bulk-liquid model | Eight additional tests cover ignition/flame failure, induction pan gating, oven thermostat/timer/door/food lag, refrigeration heat ingress, boiling/dry-out, mixing/overflow, energy conservation and session-only control telemetry. All 15 tests pass. |
| Appliance demonstration | 1,500 simulated seconds with timers, door opening, flame failure and boiling; final maximum energy-ledger error 3.1e-8 J. 113.41 g evaporated from an initial 250 g. Mixing accepts 100 g, spills 150 g and produces a 40 °C target mixture. `appliances/result.json` |
| Thermal demonstration | 90 seconds on the burner, then 210 seconds off it. Zero heat input after moving away; maximum energy-balance error below 1e-8 J. `thermal/result.json` |
| GPU particle column pour | 3,299 of 3,456 particles remain in the pan after five seconds (95.5%). `native/fluid.json` |
| Kinematic jug pour | All 1,157 particles retained upright at 1.5 s; all in the target pan at 8 s after a measured 105° tip. Nominal 144.625 ml; no particle escaped the floor or passed below it. `native/jug.json`, `native/jug-positions.png` |
| Deliberate spill | None of the second 3,456-particle column remains in the pan. One exits the finite floor; no below-floor particle remains inside its bounds. `native/fluid-boundary-audit.json` |
| Portable package | Default scene and both optional particle layers open from a fresh directory with all dependencies local. `package-check.json` |
| USD reference import | 3,612 visual mesh material bindings and the environment light remain valid under `/World/Kitchen`. |
| GLB | Valid glTF 2.0: 2,800 exported meshes and 45 embedded images, no external buffers/images. |
| Native camera rendering | Aisle, preparation area, service pass and food views pass in RTX Path Tracing, 64 spp with OptiX denoising. Each image was inspected; `native/render-check.json` records mode and visibility. |
| Container runner | Physics, fluid, jug and render modes completed through `source/run_native_check.sh`, with read-only source/package mounts and passing receipts. |

The interaction-benchmark revision was checked again on 2026-09-14. It refines open handles, pan seams and food collision hulls. The current native physics, fluid and jug receipts refer to this revision. All 36 native bodies have valid mass and inertia, and all 33 free bodies passed individual lift/release probes; see [the full audit](physics-audit/README.md). The older `native/final-physics-equivalence.json` and native still images describe the preceding visual publication. That equivalence receipt is historical and does not claim that the revised collision layer is unchanged. The rendered visual assets remain identical. Particle percentages describe recorded runs, without promising identical results across solver versions.

These checks establish specific asset and physical behaviors. They do not establish policy success, calibrated appliance performance, food safety, combustion, spatial boiling/steam simulation, cutting or deformable food. Bulk-water boiling is a separate mass/energy calculation. Both particle experiments freeze the other room props; the jug uses prescribed motion. Native image settings/statistics are in `native/render-check.json`. Blender and Isaac will not produce identical images.

The in-app browser could not connect during scene authoring. During publication, an isolated Chromium fallback verified the actual HTTP gallery on desktop (1440 px) and mobile (390 px), with no horizontal overflow or browser errors. Screenshots and receipts are in `publication/`. New HTTP tests verify anonymous gallery access, native download ranges and static-root containment. Existing platform CI failures are recorded separately in `publication/checks.json`.
