# NEXT11 V6.31 R2K — Persistent Nex Step-Turn + Parent Camera Authority (WIP)

Base authority: **V6.30 R9 locked fullroot**. R2K remains delta-only WIP.

## Persistent recipe architecture
- One Nex / FBX / WebGL / canvas instance lives through the Dynamic Warmup recipe.
- Next motion is prefetched while the current exercise runs.
- Dynamic Warmup transition remains: current exercise -> neutral -> optional heading turn -> next exercise.
- No exercise motion / IK / resolved authority is modified by this checkpoint.

## Natural neutral transition authority
- R2H smootherstep timing retained:
  - 360 ms to neutral
  - 0 ms rest for Dynamic Warmup
  - 320 ms into next exercise

## Side-facing authority
All side drills use the same presentation direction and fixed product camera:
- Lateral Lunges: +90 degrees
- Lateral Shuffle: +90 degrees
- Karaoke: +90 degrees

## R2J step-turn retained
For heading changes, Nex reaches neutral first, then performs a real transition step instead of a rigid root spin.
- Product turn stage: 460 ms.
- 0 -> +90: left foot unweights / swings while right supports.
- +90 -> 0: opposite foot performs the return step.
- Lower-body articulation is borrowed only from the locked Heel Walk gait authority.
- Upper body and neutral standing authority remain unchanged.

## R2K camera ownership fix
Normal-speed QA exposed a delayed camera steal in side exercises: the persistent child player's `resize()` / READY / phase-program command could call its local `fitCamera()` about 0.5-1.0 s after a hot-swap.

R2K establishes explicit camera ownership:
- Once embedded in the Dynamic Warmup passplayer, the **parent premium presentation rig owns the camera continuously**.
- Child `resize`, READY and phase-program events may update renderer size/projection but cannot refit camera while parent authority is active.
- The parent continues to track travel with the existing premium camera equation.

## QA
Real passplayer normal-speed recipe-chain QA:
`Single Leg Toe Touch (0) -> Lateral Shuffle (+90) -> Karaoke (+90) -> Heel to Toe with Momentum (0)`

Gates observed:
- same model UUID through all transitions
- same persistent player instance
- no FBX reload
- 0 -> +90 step-turn
- +90 -> +90 no turn stage
- +90 -> 0 step-turn
- premium camera remains parent-owned during Lateral Shuffle / Karaoke and tracks travel instead of falling back to child fit-camera

QA file is encoded at 30 fps from the real X11/passplayer surface. SwiftShader runtime speed is not a product performance benchmark.

Status: **WIP — visual approval still required before lock.**
