# V387 local rendered temporal QA

Status: **PASS — local temporal skinned-mesh gate**  
Chromium/WebGL parity: **NOT YET RUN in this environment**

## What was rendered

- Actual `nex_fbx_clean_v001.fbx` geometry.
- Actual FBX skeleton and skin weights through Three.js `FBXLoader` and `SkinnedMesh.applyBoneTransform`.
- Exact V386 or V387 resolved playback asset, sampled at 24 fps.
- Front and right-side views in the same frame.
- V387 was rendered for two complete loops (252 frames / 10.5 seconds).
- V386 was rendered for one loop as a known-failing control.

This is deterministic CPU point-rasterization of the deformed Nex mesh. It is not an AI-generated image, not a stick figure and not a replacement pose. Body, shirt, shorts and shoes are rendered; decorative hair and jewellery meshes are omitted because they do not affect the shoulder/arm/hand/leg temporal gate.

## Findings

### Known-failing V386 control

- The wrong neutral arm/hand posture is visibly reproduced before both entries.
- The grip pose arrives discontinuously at the hold boundary on both sides.
- Therefore this local renderer is capable of exposing the regression reported from the Chromium film.

### V387 candidate

- Hands begin from the actual FBX rest orientation rather than the V386 duck-like neutral.
- Shoulder, upper arm, forearm and hand travel progressively through the approach frames.
- No one-frame shoulder/arm/hand jump is visible at either grip-hold boundary.
- The same behavior repeats on loop two.

## Frame-difference control

The metric below is average luma difference between consecutive rendered frames, cropped to the character views so the changing time label is excluded.

| Hold boundary | V386 known fail | V387 | Reduction |
|---|---:|---:|---:|
| Right, source time 1.000 s | 2.320210 | 0.234118 | 89.91% |
| Left, source time 2.750 s | 2.830240 | 0.262326 | 90.73% |

The movement frames before contact remain measurable in V387; only the discrete hold-boundary spike is removed. This supports the visual result rather than hiding motion with a frozen segment.

## Limits and next gate

The available cloud Chrome blocks both localhost and `file://`. The local container does not contain Chromium or Xvfb and cannot install system packages because its apt privilege transition is blocked. For that reason this report does **not** claim Chromium, texture/material, WebGL2 or SwiftShader parity.

V387 passes the local rendered temporal gate. Final production approval should still include one real Chromium/WebGL two-loop render of the same locked V387 ZIP when that browser environment is available.
