Sub-ticket of epic #346. Depends on #348 (worker) and #349 (chaining); character asset type only.
What: the stages that turn a textured character mesh into something that moves — auto-rigging with ProArt's fallback chain and preset animations with viewable previews. This is the "wow" moment for students (my drawing walks!) and the bridge to using assets in games.
Scope:
Rigging stage with art_pipe's fallback chain: UniRig → RigNet → Mesh2Rig → smart_rig (art_pipe/models/unirig.py, models/rignet.py, blender/mesh2rig.py, addons/artpipe/smart_rig.py), remapped to the canonical 56-bone humanoid schema (blender/rigging.py); record which rigger succeeded on the stage doc
Headless Blender in the worker image (art_pipe drives everything through blender/headless.py) — decide single-shot vs the daemon pool (blender/daemon_pool.py, ports 19200+) based on stage latency; document the choice
Animation stage: curated preset motion list for students (walk, run, jump, wave, dance …) via MDM / HY-Motion per the model-fit spike (HY-Motion wants ~24 GB — may be config-gated initially); free-text motion prompts stay staff-only until P6 moderation covers them
Rigged GLB (bones + skin weights) and animation clips as artifacts; MP4/GIF turntable + animation previews via art_pipe enrichment for the library and gallery
Mesh-health gate before rigging (art_pipe already has one post-modeling) — non-riggable meshes fail the stage with a student-readable reason and keep the textured asset usable as a static prop
Export stage: final game-ready GLB (art_pipe blender/headless/export_cmds.py), the artifact the game playgrounds will consume in P7
Note: rigging/animation only appear in the character asset-type stage plan (P1's data-driven plan). Props/scenery terminate at export after texturing.
Acceptance: a character asset completes rig + walk-cycle preset unattended; the library shows an MP4/GIF of it moving; the exported GLB opens in Blender with the canonical skeleton and plays the clip; a deliberately broken mesh fails rigging gracefully and remains downloadable as a static asset.
Sub-ticket of epic #346. Depends on #348 (worker) and #349 (chaining); character asset type only.
**What:** the stages that turn a textured character mesh into something that moves — auto-rigging with ProArt's fallback chain and preset animations with viewable previews. This is the "wow" moment for students (my drawing walks!) and the bridge to using assets in games.
**Scope:**
- [ ] Rigging stage with art_pipe's fallback chain: UniRig → RigNet → Mesh2Rig → smart_rig (`art_pipe/models/unirig.py`, `models/rignet.py`, `blender/mesh2rig.py`, `addons/artpipe/smart_rig.py`), remapped to the canonical 56-bone humanoid schema (`blender/rigging.py`); record which rigger succeeded on the stage doc
- [ ] Headless Blender in the worker image (art_pipe drives everything through `blender/headless.py`) — decide single-shot vs the daemon pool (`blender/daemon_pool.py`, ports 19200+) based on stage latency; document the choice
- [ ] Animation stage: curated **preset motion list** for students (walk, run, jump, wave, dance …) via MDM / HY-Motion per the model-fit spike (HY-Motion wants ~24 GB — may be config-gated initially); free-text motion prompts stay staff-only until P6 moderation covers them
- [ ] Rigged GLB (bones + skin weights) and animation clips as artifacts; MP4/GIF turntable + animation previews via art_pipe enrichment for the library and gallery
- [ ] Mesh-health gate before rigging (art_pipe already has one post-modeling) — non-riggable meshes fail the stage with a student-readable reason and keep the textured asset usable as a static prop
- [ ] Export stage: final game-ready GLB (art_pipe `blender/headless/export_cmds.py`), the artifact the game playgrounds will consume in P7
**Note:** rigging/animation only appear in the character asset-type stage plan (P1's data-driven plan). Props/scenery terminate at export after texturing.
**Acceptance:** a character asset completes rig + walk-cycle preset unattended; the library shows an MP4/GIF of it moving; the exported GLB opens in Blender with the canonical skeleton and plays the clip; a deliberately broken mesh fails rigging gracefully and remains downloadable as a static asset.
Slice 1 delivered: backend PR #68 + art_pipe commit ed4c30f (device branch). Full Character plan completed end-to-end on the M5 — all 7 stages, final export GLB verified with 1 skin, 48 joints, clips [tpose, walk]: smart_rig AUTO→HUMANOID (56 bones, 100% weight coverage, 82% canonical rename), NEW procedural idle/walk presets (topology-dispatched; idle/walk didn't exist in ProArt — added, upstream candidate), MP4/GIF previews (ffmpeg installed), and a real cmd_enrich_mesh crash on animated GLBs fixed en route. The in-Blender motion classifier independently tagged the idle preset "idle".
Companion fix PR #69resolves#362 (texture-atlas safety-gate false positives) so the Character plan completes at default production config.
Deliberately out (licensing): MDM / HY-Motion text-to-motion — SMPL/Tencent terms; procedural presets are the shipped path, revisit if licenses are obtained. Later slices: per-asset-type preset selection, UniRig/RigNet on CUDA (and via #358 on Mac), canonical-remap fidelity validation, rig preview in the studio UI (viewer slice in flight).
Slice 1 delivered: backend PR [#68](https://git.spikersoft.com/spikerj/spikersoft-backend/pulls/68) + art_pipe commit `ed4c30f` (device branch). **Full Character plan completed end-to-end on the M5** — all 7 stages, final export GLB verified with 1 skin, 48 joints, clips `[tpose, walk]`: smart_rig AUTO→HUMANOID (56 bones, 100% weight coverage, 82% canonical rename), NEW procedural idle/walk presets (topology-dispatched; idle/walk didn't exist in ProArt — added, upstream candidate), MP4/GIF previews (ffmpeg installed), and a real `cmd_enrich_mesh` crash on animated GLBs fixed en route. The in-Blender motion classifier independently tagged the idle preset "idle".
Companion fix PR [#69](https://git.spikersoft.com/spikerj/spikersoft-backend/pulls/69) resolves #362 (texture-atlas safety-gate false positives) so the Character plan completes at default production config.
Deliberately out (licensing): MDM / HY-Motion text-to-motion — SMPL/Tencent terms; procedural presets are the shipped path, revisit if licenses are obtained. Later slices: per-asset-type preset selection, UniRig/RigNet on CUDA (and via #358 on Mac), canonical-remap fidelity validation, rig preview in the studio UI (viewer slice in flight).
PR #68 merged to master (and #69 for the atlas-threshold companion). Core acceptance met on the Mac stack: Character completes rig + walk preset unattended; exported GLB carries the canonical-renamed skeleton and plays the clip; MP4/GIF previews render; gate failures are graceful. Closing this slice — the leftovers (per-asset-type preset selection, UniRig/RigNet on CUDA, canonical-remap fidelity validation, MDM licensing decision) are noted here and in the epic, and the studio-UI rig preview ships with angular PR #115.
PR #68 merged to `master` (and #69 for the atlas-threshold companion). Core acceptance met on the Mac stack: Character completes rig + walk preset unattended; exported GLB carries the canonical-renamed skeleton and plays the clip; MP4/GIF previews render; gate failures are graceful. Closing this slice — the leftovers (per-asset-type preset selection, UniRig/RigNet on CUDA, canonical-remap fidelity validation, MDM licensing decision) are noted here and in the epic, and the studio-UI rig preview ships with angular PR #115.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Sub-ticket of epic #346. Depends on #348 (worker) and #349 (chaining); character asset type only.
What: the stages that turn a textured character mesh into something that moves — auto-rigging with ProArt's fallback chain and preset animations with viewable previews. This is the "wow" moment for students (my drawing walks!) and the bridge to using assets in games.
Scope:
art_pipe/models/unirig.py,models/rignet.py,blender/mesh2rig.py,addons/artpipe/smart_rig.py), remapped to the canonical 56-bone humanoid schema (blender/rigging.py); record which rigger succeeded on the stage docblender/headless.py) — decide single-shot vs the daemon pool (blender/daemon_pool.py, ports 19200+) based on stage latency; document the choiceblender/headless/export_cmds.py), the artifact the game playgrounds will consume in P7Note: rigging/animation only appear in the character asset-type stage plan (P1's data-driven plan). Props/scenery terminate at export after texturing.
Acceptance: a character asset completes rig + walk-cycle preset unattended; the library shows an MP4/GIF of it moving; the exported GLB opens in Blender with the canonical skeleton and plays the clip; a deliberately broken mesh fails rigging gracefully and remains downloadable as a static asset.
Slice 1 delivered: backend PR #68 + art_pipe commit
ed4c30f(device branch). Full Character plan completed end-to-end on the M5 — all 7 stages, final export GLB verified with 1 skin, 48 joints, clips[tpose, walk]: smart_rig AUTO→HUMANOID (56 bones, 100% weight coverage, 82% canonical rename), NEW procedural idle/walk presets (topology-dispatched; idle/walk didn't exist in ProArt — added, upstream candidate), MP4/GIF previews (ffmpeg installed), and a realcmd_enrich_meshcrash on animated GLBs fixed en route. The in-Blender motion classifier independently tagged the idle preset "idle".Companion fix PR #69 resolves #362 (texture-atlas safety-gate false positives) so the Character plan completes at default production config.
Deliberately out (licensing): MDM / HY-Motion text-to-motion — SMPL/Tencent terms; procedural presets are the shipped path, revisit if licenses are obtained. Later slices: per-asset-type preset selection, UniRig/RigNet on CUDA (and via #358 on Mac), canonical-remap fidelity validation, rig preview in the studio UI (viewer slice in flight).
PR #68 merged to
master(and #69 for the atlas-threshold companion). Core acceptance met on the Mac stack: Character completes rig + walk preset unattended; exported GLB carries the canonical-renamed skeleton and plays the clip; MP4/GIF previews render; gate failures are graceful. Closing this slice — the leftovers (per-asset-type preset selection, UniRig/RigNet on CUDA, canonical-remap fidelity validation, MDM licensing decision) are noted here and in the epic, and the studio-UI rig preview ships with angular PR #115.