# NEXT11 / Nex — V374 Locked Checkpoint Handover

Generated: 2026-08-21T20:41+02:00  
Checkpoint: `NEXT11_V374_LOCKED_V373_SEPARATED_FRONT_SHIN_SNAP_BASELINE_FULL_ROOT`  
Promoted baseline: V373 separated front-shin snap.  
Rejected branch: V371, because upper and lower hands collapsed into the same shoe/foot cluster.

## Executive status

Use this checkpoint as the new baseline for Figure Four grip work.

Current accepted result:

```text
Technical generic grip QA: PASS
Right foot↔shin separation: 0.114799 m
Left foot↔shin separation: 0.111051 m
Hard separation gate >= 0.10 m: PASS both sides
Visual branch: correct direction, not final polished pose
```

## What this checkpoint fixes

The major failure was:

```text
V371:
- upper hand and lower hand were technically PASS
- visually they landed in the same shoe/foot/snap cluster
- therefore V371 is rejected
```

V373/V374 fixes this by enforcing **two separated explicit contact authorities**:

```text
Lower hand:
- role: foot_underside_sole
- receiver: existing FootShoe collision proxy
- proxy t: 0.18
- purpose: underside/sole contact

Upper hand:
- role: front_lower_shin_above_ankle
- receiver: existing LowerLeg collision proxy
- proxy t: 0.70
- radial: front_visible_separated_from_sole
- purpose: front lower shin above ankle, not shoe cluster
```

Hard gate:

```text
distance(foot_underside_snap, front_shin_snap) >= 0.10 m
```

## QA included

Numeric QA:

```json
[
  {
    "label": "right",
    "overallPass": true,
    "footPass": true,
    "shinPass": true,
    "separationM": 0.114799,
    "separationPass_ge_0_10m": true,
    "footErrM": 0.000327,
    "shinErrM": 0.000378,
    "footStatus": "PALM_PLUS_FOUR_FINGERS_READY_FOR_VISUAL_QA",
    "shinStatus": "PALM_PLUS_FOUR_FINGERS_READY_FOR_VISUAL_QA"
  },
  {
    "label": "left",
    "overallPass": true,
    "footPass": true,
    "shinPass": true,
    "separationM": 0.111051,
    "separationPass_ge_0_10m": true,
    "footErrM": 0.001791,
    "shinErrM": 0.00028,
    "footStatus": "PALM_PLUS_FOUR_FINGERS_READY_FOR_VISUAL_QA",
    "shinStatus": "PALM_PLUS_FOUR_FINGERS_READY_FOR_VISUAL_QA"
  }
]
```

Visual QA assets are actual Chromium/WebGL Nex renders, not AI-generated images:

```text
right_source: diagnostics/v373/chromium_visual_qa/V373_QA_right_source_chromium.png present=True
right_hand_close: diagnostics/v373/chromium_visual_qa/V373_QA_right_hand_close_chromium.png present=True
right_separation_close: diagnostics/v373/chromium_visual_qa/V373_QA_right_separation_close_chromium.png present=True
left_source: diagnostics/v373/chromium_visual_qa/V373_QA_left_source_chromium.png present=True
left_hand_close: diagnostics/v373/chromium_visual_qa/V373_QA_left_hand_close_chromium.png present=True
left_separation_close: diagnostics/v373/chromium_visual_qa/V373_QA_left_separation_close_chromium.png present=True
```

## Collision mesh / receiver authority

### Source model included

```text
assets/nex/models/nex_fbx_clean_v001.fbx
```

### Lower-leg collision receiver

Used by upper hand:

```text
front_lower_shin_above_ankle
```

Runtime authority:

```text
NEX_COLLISION_LOWER_LEG_PROXY_V1
central_mesh_derived_lower_leg_proxy_v1
```

Properties:

```text
proxy: LowerLeg
axis: Calf -> Foot
meaning: knee-to-ankle lower-leg mesh proxy
V374 explicit t: 0.70
radial: front_visible_separated_from_sole
```

This is an existing mesh-derived lower-leg receiver. It is not a new Figure-Four-only collision object.

### Foot/shoe collision receiver

Used by lower hand:

```text
foot_underside_sole
```

Runtime authority:

```text
NEX_COLLISION_FOOT_SHOE_PROXY_V1
central_mesh_derived_foot_shoe_proxy_v1
```

Properties:

```text
proxy: FootShoe
axis: Foot -> ToeBase/MidToe
V374 explicit t: 0.18
radial: positive_foot_canonical_vertical_underside_surface
```

## Grip function

Runtime file:

```text
assets/nexprod/nexprod01-runtime-candidate.mjs
```

Relevant runtime index by byte offset:

```json
{
  "runtime": "assets/nexprod/nexprod01-runtime-candidate.mjs",
  "genericGripIntentsFromSourceContact_byte": 258223,
  "genericGripReceivingZoneFromIk_byte": 267236,
  "lowerLegProxyConstant_byte": 271739,
  "footShoeProxyConstant_byte": 274730,
  "genericGripCylinderFromReceiver_byte": 279957,
  "explicitMeshSnapPoint_byte": 269966,
  "frontVisibleSeparatedRadial_byte": 283439,
  "fingerLayer_byte": 303982
}
```

Generic grip pipeline:

```text
1. Read contact rules from IK bank.
2. Create ordered generic grip intents.
3. Resolve explicit mesh snap point if present.
4. Resolve exact surface point on existing collision proxy.
5. Move arm/palm frame to snap.
6. Close fingers with generic finger layer.
```

No Figure-Four-specific grip solver was added.

Finger rule remains critical:

```text
fingers are child layer
finger solver must not move wrist/hand/arm/leg/body
```

## Contact rules in current bank

Contact bank:

```text
assets/js/data/nex-nexdatah-full-bank-physio-ik-keypose-specs.json
```

Relevant Figure Four rules:

```json
[
  {
    "keypose": "right_figure_four_peak",
    "gripSide": "L",
    "role": "foot_underside_sole",
    "targetLimb": "R_explicit_foot_underside_sole_snap",
    "axis": [
      "R_Foot",
      "R_ToeBase"
    ],
    "explicitMeshSnapPoint": {
      "schema": "NEXPROD01_EXPLICIT_MESH_SNAP_POINT_V1",
      "valid": true,
      "surface": "foot_underside_sole",
      "proxy": "FootShoe",
      "proxyAxis": "Foot->ToeBase/MidToe",
      "t": 0.18,
      "radial": "positive_foot_canonical_vertical_underside_surface",
      "source": "user_correction_existing_collision_mesh_snap_point",
      "policy": "V369: explicit marker moved mildly toward mid-sole underside."
    },
    "snapPointAuthority": "explicit_mesh_snap_point_on_existing_FootShoe_proxy"
  },
  {
    "keypose": "right_figure_four_peak",
    "gripSide": "R",
    "role": "front_lower_shin_above_ankle",
    "targetLimb": "R_explicit_front_lower_shin_above_ankle_snap",
    "axis": [
      "R_Foot",
      "R_Calf"
    ],
    "explicitMeshSnapPoint": {
      "schema": "NEXPROD01_EXPLICIT_MESH_SNAP_POINT_V1",
      "valid": true,
      "surface": "front_lower_shin_above_ankle",
      "proxy": "LowerLeg",
      "proxyAxis": "Calf->Foot knee_to_ankle",
      "t": 0.7,
      "radial": "front_visible_separated_from_sole",
      "source": "user_correction_existing_collision_mesh_snap_point",
      "policy": "V373 FINAL: visible/front lower-shin snap separated from foot/sole snap; t chosen by sweep to keep >0.10m bilateral separation and Node PASS."
    },
    "snapPointAuthority": "explicit_mesh_snap_point_on_existing_lower_leg_proxy"
  },
  {
    "keypose": "left_figure_four_peak",
    "gripSide": "R",
    "role": "foot_underside_sole",
    "targetLimb": "L_explicit_foot_underside_sole_snap",
    "axis": [
      "L_Foot",
      "L_ToeBase"
    ],
    "explicitMeshSnapPoint": {
      "schema": "NEXPROD01_EXPLICIT_MESH_SNAP_POINT_V1",
      "valid": true,
      "surface": "foot_underside_sole",
      "proxy": "FootShoe",
      "proxyAxis": "Foot->ToeBase/MidToe",
      "t": 0.18,
      "radial": "positive_foot_canonical_vertical_underside_surface",
      "source": "user_correction_existing_collision_mesh_snap_point",
      "policy": "V369: explicit marker moved mildly toward mid-sole underside."
    },
    "snapPointAuthority": "explicit_mesh_snap_point_on_existing_FootShoe_proxy"
  },
  {
    "keypose": "left_figure_four_peak",
    "gripSide": "L",
    "role": "front_lower_shin_above_ankle",
    "targetLimb": "L_explicit_front_lower_shin_above_ankle_snap",
    "axis": [
      "L_Foot",
      "L_Calf"
    ],
    "explicitMeshSnapPoint": {
      "schema": "NEXPROD01_EXPLICIT_MESH_SNAP_POINT_V1",
      "valid": true,
      "surface": "front_lower_shin_above_ankle",
      "proxy": "LowerLeg",
      "proxyAxis": "Calf->Foot knee_to_ankle",
      "t": 0.7,
      "radial": "front_visible_separated_from_sole",
      "source": "user_correction_existing_collision_mesh_snap_point",
      "policy": "V373 FINAL: visible/front lower-shin snap separated from foot/sole snap; t chosen by sweep to keep >0.10m bilateral separation and Node PASS."
    },
    "snapPointAuthority": "explicit_mesh_snap_point_on_existing_lower_leg_proxy"
  }
]
```

## Current visual assessment

This is now the right branch:

```text
- upper and lower contacts are separated
- upper hand reads as shin/vrist contact instead of same shoe cluster
- lower hand reads as foot/sole contact
- numeric separation is ~11 cm both sides
```

Still not final:

```text
- torso/head is still too compressed
- arms/shoulders need to be re-solved around fixed contacts
- lower hand could later get more cupping, but not before torso/head is stable
```

## Next step

Do not move snap points first.

Next patch should be:

```text
fixed contacts -> straighten torso/spine/head/shoulder chain -> re-solve arms to the same fixed contacts
```

Detailed plan:

1. Lock current contact authorities:
   - `foot_underside_sole`
   - `front_lower_shin_above_ankle`
   - separation >= 0.10 m

2. Solve torso/spine/head/shoulders around those fixed contacts:
   - pelvis/feet/raised leg remain stable
   - shoulder anchors may move as part of the upper-chain solve
   - hand contact targets remain fixed

3. Re-solve arms to the same fixed contacts.

4. Run QA:
   - generic grip PASS both sides
   - separation >= 0.10 m
   - palm/finger PASS
   - Chromium visual QA shows no arm-under-leg failure
   - torso/head visibly closer to source

5. Only after torso/head pass:
   - consider +1–2 cm proximal upper-shin adjustment
   - consider lower-hand cupping

## Hard rules for next chat

```text
- Use this V374 as baseline.
- Do not use V371 as baseline.
- Do not replace collision mesh.
- Do not create a Figure-Four-only grip solver.
- Do not move snap points before torso/head re-solve.
- Do not allow foot↔shin snap separation below 0.10 m.
- Do not solve Head as a standalone target if it breaks palm snap.
```
