Files
animation/characters/work/lena/HANDOFF_reatlas_v03.md
T
jeremy 3d8825f5a9 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>
2026-08-12 07:17:15 -07:00

4.7 KiB

Handoff: lena_nude_decimated_glb_v03.glb — v04 geometry, re-atlased, double-sided

HISTORICAL — paths in this file are dead. Written 2026-08-06, before the 2026-08-11 restructure. The characters/female/lena_nude/ tree it references no longer exists and the decimated_glb_vNN chain it describes was pruned; that body went on to ship as characters/female/lena_base_v01/. Kept because the double-sided finding below is still load-bearing for the shipped asset. Regenerate any file named here with the recipes in this lane.

2026-08-06. Supersedes decimated_glb_v01 (decimated from the v03 sculpt) and decimated_glb_v02 (v01 re-atlased). Both are stale: the bust-matched v04 sculpt landed after them.

The file

characters/female/lena_nude/lena_nude_decimated_glb_v03.glb

sha256 730f8baee15ab9c20b538654373e3dbe1ec4ccaa353e51e1164fe6d94615d126
parent lena_nude_sculpt_glb_v04.glb (master hires_claude/34_v04.blend)
recipe 30_decimate.py24_seams.py31_reatlas.py
mesh 31,964 v / 64,957 tris in Blender; 39,416 v as exported
maps basecolor + normal + rm embedded, 4096², JPEG q95, correct colorspaces
material doubleSided = true
rig none — unrigged, transforms applied

Rebuild from the lane root:

blender --background --python 30_decimate.py -- 34_v04.blend atlas_v03/dec_raw.glb 31670
blender --background --python 24_seams.py   -- atlas_v03/dec_raw.glb atlas_v03
blender --background --python 31_reatlas.py -- atlas_v03/seamed.blend atlas_v03 \
        ../lena_nude_decimated_glb_v03.glb

Roughly four minutes end to end, nearly all of it the decimation bisect.

The grey tears are fixed, and they were never holes

Every review render of v01/v02 showed ragged grey tears across her face and the underbust band. The v01 handoff attributed them to 835 boundary edges / dangling flaps and called fills impossible.

They were backface culling. The glTF material arrived single-sided, so Blender culls backfaces; the mesh has regions wound inward, and culled they show the background straight through. Rendering the same file with culling off makes them vanish entirely.

Note the trap: those regions are wound consistently within themselves, so their vertex normals flip too. Any test that compares a face against its own neighbourhood — including normals_make_consistent, which is why 30b_fix_winding.py oscillated 61 → 260 → 39 → 25 → 25 — declares them fine. A per-face check against its own vertex normals finds only 25 stray triangles covering 0.8 cm², which cannot account for a 15 cm band. Only a viewer with culling sees it.

The fix here is doubleSided = true, which costs a character body essentially nothing. If you ever need true single-sided culling, the real repair is a ray-parity test per connected patch (count surface crossings along ±normal to decide which way is out), not another make_consistent pass.

What changed vs v02

v02 v03
geometry v03 sculpt v04, bust matched to the approved turnaround
grey tears present gone (doubleSided)
coverage 68.6% 67.0%
area-scale p95 / p99 1.77 / 2.27 1.78 / 2.32
sub-texel triangles 569 (123 cm²) 424 (30 cm², 0.14%)

The atlas transfer was re-verified on identical geometry — input rendered with culling off so the comparison isolates the UV change: mean pixel |Δ| 0.0011, p99 0.0118, 0.13% of body pixels over 0.05. It is still a faithful rehousing of her texture, not a new look.

Still open

  • Speckle. Small dark flecks remain over the shoulders, arms and belly — scan noise carried in the texture, not an atlas artifact.
  • She reads glossy. The rm map is still the neutralised median from the garment-removal pass.
  • The head is untouched original Tripo output — the smearing at the nose and lips is source.
  • Extremity tone. Her feet measure 0.11 luma darker and 50% redder than her belly, and the rosy chest V is still there. Kept deliberately: Jeremy asked to preserve her original texture and replace only the breast/underwear region. Note this disagrees with the approved turnaround (exchange/INBOX/lena-base-turnaround/), which has uniform skin.
  • The breast/underwear re-authoring has not been done. That is the next stage, and the turnaround specifies it: featureless, no nipples, soft volume, smooth crotch.

Lane hygiene

Two agents worked this folder on 2026-08-06 and the numbering collided twice: 20/21 and then 32/33/34 (32_ref_measure/33_bust_variants/34_apply_bust from the sculpt pass vs 32_skipprobe/33_ab/34_target_tone from this one). Nothing was overwritten. Pick a fresh number rather than assuming the next one is free.