# work/lena — the live lena lane Grammar-exempt (REGISTRY rule 11). Nothing here is a shipped artifact; nothing here gets a registry row. When a body from this lane ships, its artifacts graduate into a new `characters/female/lena_base_vNN/` and this lane keeps going. Governed by `.agents/rules/working-files.md`: **a version is a milestone, not a step.** ## Layout | | | |---|---| | `NN_*.py` | the recipes — 66 of them, stages 01→47. **These are the history.** Kilobytes each, and they regenerate any intermediate state from a master | | `masters/` | the three chain heads. Anything not here is scratch by definition | | `masks.npz` | garment/cup/brief/hem masks, transferred from the 953,966-v original by nearest vertex (p50 0.70 mm). Not regenerable without the full-res sculpt | | `_bust_wall_cache.npy` | bi-harmonic chest wall for `34_v04.blend` — an 8-minute CG solve. Regenerable, and invalid for any other mesh; `33`/`34` assert its shape against the vertex count before trusting it | | `reference_breasts.jpg` | shape reference | | `README_lane_history.md` | the full stage-by-stage record, including the dead ends | ## The masters | file | v | what it is | |---|---|---| | `masters/34_v04.blend` | 860,389 | full-res sculpt head. Start here for any shape change | | `masters/athletic_v04.blend` | 31,111 | game-res head — decimated, re-atlased, despeckled, athletic maps. This is what `lena_base_v01` was rigged from | | `masters/lena_nude_accurig_glb_v01.blend` | 31,111 | the same body with AccuRig's skeleton and weights grafted on | All three have their textures **packed** — they carry no external image dependencies and can be moved freely. `athletic_v04_{base,normal,rm}.jpg` sit alongside as loose copies of the shipped maps, for re-shipping a texture without opening Blender. Filenames here deliberately keep the names the recipes know (`34_v04.blend`, `athletic_v04.blend`). The scripts take every path as a CLI argument, so the lane relocates cleanly, but renaming a master would strand the commands recorded in `README_lane_history.md`. ## Working here - **Roll one working file.** Pass the same `work.blend` through experimental steps. Write a new named `.blend` only at a phase boundary or when something ships. - **Reuse one `review/` dir.** QA renders are regenerable and are gitignored. - **No `.blend1` autosaves** — step scripts set `save_version = 0` before saving. - Prune with `python tools/prune_lane.py characters/work/lena --recursive` (dry run; `--apply` to delete). Check no Blender process is mid-run first. This lane reached **4.1 GB** before it was pruned on 2026-08-11 — 2.2 GB of it `.blend` snapshots, five 80 MB copies of the same mesh to land one crotch fix. That is the failure mode the milestone rule exists to prevent.