feat: clothing lane, character sources, and DCC bridges

Bulk import of the working lanes that were living untracked on the PC.

Content:
- characters/  Lena/male body lanes, bakes, texture work, run logs
- clothing/    garment pipeline, configs, gates, contract docs
- garments/    MD-authored garment sources (.zprj/.zpac)
- UAL-Lib/     Universal Animation Library 2 source (.blend/.fbx/.glb)
- tools/       blender_bridge, iclone_bridge, md_bridge, tailor, glm_agent
- docs/, plans/, dev/, .agents/plans/

Repo hygiene:
- .gitattributes: LFS now covers .blend, .zprj, .zpac, .obj, .npy and the
  Reallusion .iAvatar/.ccAvatar/.ccRestore containers. Without this the
  ~3.8 GB in this commit would land as raw blobs. .png/.jpg are left out
  on purpose — ~250 are already tracked raw and converting them would
  rewrite every one without shrinking history.
- .gitignore: exclude /accurig/ (~1 GB AccuRig program files, redistributable
  from Reallusion, nothing authored here) and /dev/null/ (git-lfs hook copies
  dropped by a `>/dev/null` redirect on Windows).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-06 15:55:43 -07:00
parent 3363209cac
commit 3ba86b2ea8
558 changed files with 68622 additions and 8 deletions
@@ -0,0 +1,61 @@
# Handoff: decimated nude Lena → retexture / re-atlas lane
**2026-08-06.** Jeremy asked for the healed nude Lena decimated to the game-body budget and passed
to the retexture / re-atlas work, "to see how they do".
## The file
`characters/female/lena_nude/lena_nude_decimated_glb_v01.glb`
| | |
|---|---|
| sha256 | `b11940bb46732ae0a60e1624e88e76fa48dcc3e3af49a6363348521bb7c52cc8` |
| parent | `lena_nude_sculpt_glb_v03.glb` (master `hires_claude/29b_final.blend`) |
| recipe | `hires_claude/30_decimate.py` then `30b_fix_winding.py` |
| ratio | Decimate **COLLAPSE 0.037728** — bisected, not guessed |
| density | 31,964 v / 64,957 tris in Blender (46,810 v as exported; UV seams split verts) |
| why that density | matched to the shipped `lena_nude_quatskin_glb_v01.glb` (31,670 v), Jeremy's call |
| rig | none — unrigged, no skins, transforms applied |
| maps | basecolor + normal + rm embedded (3 images, wired baseColor / metallicRoughness / normal) |
Ready to load directly: `24_seams.py` accepts a `.glb` as its first argument and applies transforms
itself, so this drops in with no preparation.
## Read this before you spend a pass on the UVs
**The carried `TEXCOORD_0` is not worth preserving.** Collapse decimation shreds Tripo's
5,870-chart atlas — in the textured review render (`hires_claude/review_30/chest_tex_0.png`) the
transplanted skin grain smears into streaks and the throat picks up a red blotch. That is expected
and is exactly the problem the ~14-chart anatomical atlas solves. Judge this mesh from
`review_30/full_clay_0.png` (clay, no material) and treat the UVs as scrap.
**Decimation improved one thing.** The waistband/underbust lines that survive on the hires sculpt
are nearly invisible at 32k — the collapse averaged them out. So the residual line problem is a
hires-only concern; don't go hunting for it here.
## Known defects being handed over
- **25 backfacing triangles** of 64,957. Down from 61 via `30b_fix_winding.py`, but the remainder
sit in non-manifold knots where `normals_make_consistent` oscillates (61 → 260 → 39 → 25 → 25).
They render black. If your pass rebuilds topology, they will likely vanish for free.
- **835 boundary edges / 1649 non-manifold edges**, inherited from the sculpt. Every fill attempt
refused them (`bmesh.ops.holes_fill`, edit-mode `mesh.fill_holes`, and a per-loop pass) — they
are dangling flaps and slivers, not perforations. Documented in the lane README.
- **The head is untouched original Tripo output.** Every geometry pass in this lane stopped below
the chin (z < 0.90) on purpose, so lips/nostrils/eyes still have the source smearing. If the
retexture covers the face, that is new ground, not a regression.
- **She reads glossy** — the `rm` map was neutralised to a median over the old garment texels, so
the whole body is shinier than skin should be. Untouched deliberately: an earlier attempt at
correcting roughness made her plasticky (see the lane README's fourth dead end).
## Provenance the three fixes came from
v03 addressed Jeremy's three notes on v02 — cut lines, discoloured bra/crotch patches, and the
cleavage. Measured outcomes and the four dead ends that were ruled out on the way are in
`README.md` under "Hi-res sculpt v03". Worth skimming before re-treading the geometry.
## Numbering note
This lane had two agents working in it simultaneously on 2026-08-06. `20`/`21` exist twice under
different filenames (`20_atlas_probe.py` + `20_cleavage.py`, `21_seam_probe.py` + `21_tone.py`).
Nothing was overwritten, but pick a fresh number rather than assuming the next one is free.