Dev Tool route: /skeleton (admin)
Product role: Mixamo-25 author wizard → retarget → Toon Bip001 play pack → grudge-convert → R2/CDN → Warlords / Casting / Forge.
See Admin architecture.
Do not invent a fourth editor. Showcase O on Casting stays the live lab bind surface. This tab is the production skeleton / anim editor and deploy tool.
| Lane | Skeleton | Use |
|---|---|---|
| Author | Mixamo-25 (22-core place) | Extract textures/clips, T-pose, click-place, auto-map Mixamo / Bandai / Biped |
| Play | Toon RTS Bip001 22-core | Warlords race kits {human,barbarian,elf,dwarf,orc,undead}.glb. One mixer. Hip rotation kept, hip position stripped |
Play body is never Mixamo Y-Bot, Meshy, capsule, or 30characters.glb (outline only).
Same pattern as Casting Showcase Anims:
| Side | What |
|---|---|
| Left | Warlords actions by family: gait · combat · mobility · reaction |
| Right | Extracted / retargeted clips |
| Bind | Click action, then clip. Session binds ship in role-binds.json + anim-packs-fragment.json |
Race dropdown loads the Toon play host so you preview clips on the production skeleton.
Dev Tool route: /skeleton (local tool, available to signed-in and local test sessions)
Product role: wired Mixamo-25 wizard → grudge-convert → R2/CDN → Forge.
See Admin architecture.
Review fitted skeleton and place markers opens this local tool with the exact retained source GLB, verifies its SHA-256 and enters Place. Supplied fitted markers are overlaid; an unrigged source with no marker suggestions is shown honestly as zero bones. Loading another file clears the previous correction context.
Use corrected placements in Prompt-to-3D returns all 22 core placements together with the source revision, original motion prompt, seed and animation settings. The next submission checks the source hash again and creates an immutable sibling. Return to animation preserves that context without applying placements. Known animals, including animal bipeds, use the existing local creature deformation route; HY-Motion retains its human/humanoid-only gate.
Each step tab runs or focuses a real pipeline action:
| Step | What it does |
|---|---|
| Load | File picker → viewport + one AnimationMixer + skeleton helper |
| Extract | skeleton:extract (convert FBX if needed, textures + clips) |
| T-pose | Blender rest pose via skeleton:tpose (+ optional Ollama hint) |
| Place | Auto-map Mixamo-25 + click mesh to place bones (snap nearest joint) |
| Bind | Roles left · clips right; retarget another pack onto the host |
| Convert | Build library v2 stamped skeleton: bip001 + optional ingest:convert |
| Ship | Install Documents and/or upload R2 + D1 index (not player SSOT) |
Toolbar: Open model · Convert GLB · Race · Pack.
.positionmodels/anims/libraries/anim-packs-fragment.json into Casting / info.* anim-packs.json (defs). Clips stay R2.Clip-only / bones-only files bind to Toon RTS unarmed {race}.glb (Bip001, SI).
| Default kit | assets.grudge-studio.com/asset-packs/toon-rts-characters/glb/characters/human.glb |
| Visible | {PREFIX}_Units_head_A · Body_B · Arms_A · Legs_A (kit voxel weapons hidden) |
| Not | 30characters.glb, Meshy, capsule, Mixamo Y-Bot as play |
| Clips | Mixamo names rematch via normalizeBoneKey; strip .position |
Code: src/shared/genericPreviewHost.ts · src/renderer/lib/forge/genericPreview.ts.
Hips, Spine, Spine1, Spine2, Neck, Head, L/R Shoulder–Arm–ForeArm–Hand, L/R UpLeg–Leg–Foot–ToeBase.
Bip001 Pelvis · Spine · Spine1 · Spine2 · Neck · Head · L/R Clavicle · UpperArm · Forearm · Hand · L/R Thigh · Calf · Foot · Toe0.
Law: spaced names. No Prop1, no Bip001 root, no Xtra, no Mixamo tracks on the play mixer.
magic · sword_shield · longbow · pistol · rifle · polearm · 2h_melee · unarmed · locomotion_8way · combat_mobility · reactions
Left-column families: gait/8-way · crouch/sneak · combat (incl. greatsword + rifle) · dodge/roll · climb/cover/wall · hit · action/interact.
Cover / wall-hug roles are desired until Mixamo clips are extracted. Rifle crouch/sneak/8-way and greatsword jump/heavy/block already have baked JSON.
Plus author aliases: sword · greataxe · greatsword · samurai · bow · rifle · unarmed · staff keys.
Cloud hydrate (defs JSON, not Railway):
https://casting.grudge.studio/api/v1/anim-packs.jsonhttps://assets.grudge-studio.com/prod/anims/_manifest/anim-packs.jsonhttps://info.grudge-studio.com/api/v1/anim-packs.jsonhttps://objectstore.grudge-studio.com/api/v1/anim-packs.jsonrest.glb
skeleton-mapping.json # author Mixamo-25 + playSkeleton bip001 + roleBinds
retarget-map.json # names (Mixamo-25) + playNames (Bip001 → source)
bip001-play-bones.json
role-binds.json
anim-packs-fragment.json
clips-index.json
by-weapon/<pack>.json
textures/
| Store | Owns |
|---|---|
| R2 | Clip / rest.glb binaries |
info.* / Casting /api/v1 |
Role table (anim-packs.json) |
| D1 | Asset index after upload |
| Railway | Player heroes / bag — never anim rows |
| Documents | Local grudge-anim-libraries |
| Rule | Detail |
|---|---|
| SI scale | ~1.8 m human (dwarf 1.55, orc 2.0) before CDN |
| CDN | https://assets.grudge-studio.com/... |
| Play kit | Toon {race}.glb via loadRaceKit in games |
| Mixer | One AnimationMixer |
| Forge | Send CDN URL, not only local path |
| UUID | Tag assets via Grudge UUID |
Related: Object storage · Asset loader · Systems & APIs.