Files
settled-reach/spikes/synty-intake/scripts/recon_clothing_bind.py
T
jpmschweitzerandClaude Fable 5 4bcd778e16 chore(assets): Synty intake spike — scripts, evidence logs, verdict data (T-1089)
Bridge-C evidence spike: unitypackage extraction, rest-pose recon, garment
transplant onto the Quaternius rig (Data Transfer POLYINTERP_NEAREST), 11-body
batch fit, Godot QA scenes. Technical PASS; route nonetheless REJECTED by
product call (cost, baked body-segment modularity, style) — full trail on
T-1089. Salvage: source-agnostic transplant/batch-fit scripts (the G1-family
pipeline for any donor mesh) and the T-1090 discovery (5 body types misrender
bare). Extracted vendor payload (spikes/**/raw/) now gitignored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:01:24 +02:00

24 lines
881 B
Python

"""Quick recon: which bind skeleton do production per-body clothing GLBs embed?"""
import bpy
import os
REPO = "/var/mnt/data/projects/settled-reach"
FILES = [
"client/assets/characters/clothing/peasant_pants/teen_m.glb",
"client/assets/characters/clothing/peasant_pants/average_f.glb",
"client/assets/characters/clothing/peasant_pants/average_m.glb",
]
for rel in FILES:
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)
bpy.ops.import_scene.gltf(filepath=os.path.join(REPO, rel))
for o in bpy.data.objects:
if o.type == 'ARMATURE':
for bn in ("pelvis", "upperarm_l"):
b = o.data.bones.get(bn)
if b:
w = o.matrix_world @ b.head_local
print(f"RECON {rel} {bn} "
f"({w.x:.5f}, {w.y:.5f}, {w.z:.5f})")