# V236 all z+ index-0.36 production candidate

Runtime: actual Nex/Chromium render. No AI-generated images.

## Purpose
- Carry forward the visually good all-`z+` curl plane and produce a production candidate with index MCP forced to `z+ 0.36`.
- Use V234 staged stop-on-contact proxy as the base for all fingers, then add index MCP `z+ 0.36` as chosen by user visual audit.
- Validate side, back, and rear-oblique views.

## Stop logic
- Per finger, per stage: sweep amount along `z+`.
- Stop at mesh contact threshold when reached, otherwise stop at local minimum / topology backoff / best safe amount.
- This is still a mesh-distance contact proxy, not final physical collision response.

## Solver chosen terms
- middle seg0 z+ 0.84
- ring seg0 z+ 0.84
- pinky seg0 z+ 0.84
- index seg1 z+ 0.72
- middle seg1 z+ 0.72
- ring seg1 z+ 0.72
- pinky seg1 z+ 0.68
- index seg2 z+ 0.36
- middle seg2 z+ 0.36
- ring seg2 z+ 0.06

## Ranking
| label | avgPadM | gainM | minAdjacentM | drift green/pink | visual all | safe |
|---|---:|---:|---:|---|---|---|
| BASELINE_V199_LOCKED | 0.05919 | 0.0 | 0.02038 | 0.0/0.0 | True | True |
| REFERENCE_V234_CURRENT_STOP | 0.02835 | 0.03084 | 0.01659 | 0.0/0.0 | True | True |
| V236_ALL_Z_STOP_INDEX_MCP_0p36 | 0.02574 | 0.03345 | 0.01659 | 0.0/0.0 | True | True |
| CONTROL_ALL_Z_TOO_MUCH | 0.02742 | 0.03177 | 0.01967 | 0.0/0.0 | True | False |

## Output files
- Candidate 3-view: `/mnt/data/v236out/V236_CANDIDATE_THREE_VIEWS.png`
- QA montage: `/mnt/data/v236out/V236_MAIN_BACK_QA_MONTAGE.png`
- Metrics: `/mnt/data/v236out/V236_VARIANT_METRICS.json`
- Ranking and solver trace: `/mnt/data/v236out/V236_CANDIDATE_RANKING.json`

## Status
- Candidate should be judged from side and back views. If approved, this becomes the new hand-close baseline.