Commit Graph

2 Commits

Author SHA1 Message Date
type-two
8119e2de4c Phase 4: donor harvest — real cloth that bends, plus three assemble bugs it exposed
harvest op: split a garment off an already-rigged clothed character by material. Blender's
mesh.separate(type='MATERIAL') carries the vertex groups onto the separated piece, so the
garment lands ALREADY skinned to the donor's skeleton — no fit, no weight transfer, and it
deforms correctly at the elbow because it was authored to. Unused groups are purged after.

Triaged all 43 clothed donors on ultra (headless Blender, run where the files are rather than
moving 3 GB). Measured what the LoRA bench could only guess at: only 11/43 (25%) are separable.
The rest bake skin and cloth onto one fused atlas and cannot be split at all. The best targets
are the Ready Player Me avatars (Wolf3D_Outfit_Top/Bottom/Footwear — a clean 3-way split) and
the Mixamo characters (Topmat/Bottommat/Shoesmat); most of the man_*/woman_* set is fused.
Triage also over-reported at first: the skin regex missed 'mouth', so mouth materials showed up
as garments. Widened.

Proving it end to end exposed three real bugs in `assemble`, none of which erred — they all
failed silently, which is why they had survived:
· Bone names are NOT uniform across the fleet, contrary to the "one skeleton" contract in the
  README. character_kit and NPCFACTORY use 'mixamorig:Hips'; Ready Player Me donors use bare
  'Hips'; Blender suffixes '.001' on any import collision. Vertex groups therefore pointed at
  bones that did not exist and the garment sat frozen in bind pose while the body animated.
  Now matched on the bare name, so a garment harvested off one rig drives another.
· Donors are not authored at a common scale. character_kit rigs are ~0.06 m tall, a Ready
  Player Me donor ~1.5 m, so the harvested top arrived 27.41x oversized and swallowed the
  scene. Rescaled by a shared hips->head bone span, the same trick character_kit's
  assemble.fit_part uses.
· Material-less bone-widget meshes (a 42-vert 'Icosphere' in character_kit rigs) rode along and
  wrecked the scene bbox, which drives both the HUD height and the viewer's auto-framing — one
  stray widget framed the camera on the widget and rendered the character as a speck.
  NPCFACTORY's render_plates.py had already worked around the same thing.

Verified: a garment harvested from a Ready Player Me donor, assembled onto character_kit's
hum_character, deforming correctly mid-stride through a Running clip. Honest caveat unchanged —
the garment inherits its donor's proportions, so it reads loose on a slimmer body and there is
no cloth sim to save it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 19:07:32 +10:00
type-two
58354d9b66 WARDROBEGOD v1 — wardrobe generator bench (bodies, fits, garment gen pipeline)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 20:53:43 +10:00