reorg(characters): ship-time folders — lena_base_v01 ships, lane moves to work/lena

REGISTRY rewritten around the central rule: a character folder is born only
when a body ships to ariki-game (<character>_base_v<NN> = ship ordinal).
lena_nude dissolves accordingly:
- characters/female/lena_base_v01/ — SHIPPED 2026-08-10: AccuRig GLB carrier,
  T-pose/rig FBX + JSON, previews, frozen README
- characters/work/lena/ — the live lane: recipes 01-47 (incl. new 36-47:
  refill/sheets/clay/despeckle/musculature/spin/AccuRig export/graft/pose QC),
  masters (athletic_v04 blend + textures, accurig blend), lane-history README
- hires_claude/hires_work intermediates (blends, logs, probes) pruned

Supporting docs: AGENTS.md, working-files rule, rig-graft plan addendum,
originals README, prune_lane.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-12 07:17:15 -07:00
parent 4bbd1a1732
commit 3d8825f5a9
263 changed files with 3262 additions and 26313 deletions
+48
View File
@@ -0,0 +1,48 @@
# 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.