Build Log
SketchForge Research & Architecture — Drawing-to-Roblox-Character Pipeline
August 3, 2026
Full research and architecture pass on orchestrating existing image-to-3D, rigging, and animation AI into a repeatable pipeline that turns a child's drawing into a Play-ready Roblox character — 9 deliverable documents, a live-researched industry survey, then a REAL Phase 0 test (local InstantMesh + Blender Rigify, run end-to-end on the actual hardware) that found R15 rig conformance is harder than the research alone predicted, and revised the roadmap to a faster Custom-rig-first Phase 1. Session also surfaced and partially investigated a pre-existing, unrelated infrastructure bug: forgekit-website's Vercel deploy fails on npm workspace resolution, blocking the retro's own publish step.
Timeline
What shipped
experiments/sketchforge/docs/mission-blueprint.md — Mission Blueprint, explicitly scoping SketchForge as its own experiment distinct from Game Builder's child-safety Mission, naming the expected future composition point
experiments/sketchforge/docs/industry-survey.md — Deliverable 1: commercial (Tripo, Meshy, Rodin, Luma, Sloyd, Masterpiece X, Stability, Hunyuan3D) and open-source (TRELLIS.2, TripoSR, InstantMesh, Hunyuan3D, Stable Fast 3D, Rigify, Mixamo, Open3D) tool survey, all figures from live research, unverified claims explicitly flagged rather than guessed
experiments/sketchforge/docs/pipeline-stages.md — Deliverable 2: all 14 pipeline stages (image cleanup through validation) with input/processing/output/failure/fallback/candidate-implementations for each; identifies Retopology and Rigging (R15 conformance) as the two genuinely hard stages, the rest as effectively solved by existing tooling
experiments/sketchforge/docs/architecture-proposal.md — Deliverable 3: recommends 'Option A externally, Option B internally' (one orchestrated pipeline surface, built from independently invokable per-stage units) over a pure single-pipeline or pure-independent-workpieces design; explicitly rejects Option C (Alloy's Arc/Mission lifecycle) as importing human-judgment-staging machinery to solve a mechanical sequencing problem
experiments/sketchforge/docs/roblox-integration.md — Deliverable 4: confirmed Roblox import formats/limits (10,742 triangle character budget, 4K/2K texture caps), the exact R15 Humanoid rig hierarchy and naming requirement, and the Open Cloud API's flagged-but-unverified mesh-upload restriction
experiments/sketchforge/docs/automation-design.md — Deliverable 5: answers all six of the Charge's automation questions (per-stage retry, caching, artifact versioning, resumability, single-stage replacement, provider swapping) directly from the architecture and provider-abstraction designs
experiments/sketchforge/docs/provider-abstraction.md — Deliverable 6: a common TypeScript interface per pipeline stage, written from stage contracts (not reverse-engineered from any one vendor's API shape), with a typed ProviderResult/ProviderError pattern so failures are data the orchestrator can inspect, not exceptions
experiments/sketchforge/docs/cost-analysis.md — Deliverable 7: 10/100/1,000-character cost tables for commercial API and hybrid paths using real researched pricing; local/self-hosted per-character cost explicitly named as unbenchmarked rather than estimated from vendor marketing claims
experiments/sketchforge/docs/prototype-roadmap.md — Deliverable 8: names the four different 'fastest path' axes (quality/effort/cost/architecture) as genuinely different recommendations, then proposes a 4-phase roadmap starting with two cheap Phase 0 validation tests before any pipeline code is built
experiments/sketchforge/docs/risk-assessment-and-recommendation.md — Final Deliverable items 8-9: risk table plus the recommendation to remain an experimental capability, not promote to a first-class product, until Phase 0/1 resolve the two gating risks
forgekit-os/journal/anvils.md — logged the SketchForge placement Anvil (nested vs. standalone)
forgekit-os/journal/strikes.md — logged the paired Strike: 'A shared output target is not the same thing as a shared Mission'
experiments/sketchforge/docs/phase-0-results.md (new) — real, executed Phase 0 Test 1 results: local toolchain setup, the actual InstantMesh mesh (26,778 verts/53,544 faces), the actual Rigify bone dump (706 bones, 160 deform), a bone-by-bone comparison against R15, and the honest 'not a clean mapping' finding with its architectural implications
experiments/sketchforge/docs/prototype-roadmap.md (revised) — Phase 0/1 corrected to open-source-first per Zeb's direction; Phase 1 re-sequenced to target Roblox's Custom-rig fallback first, deferring full R15 conformance + Open Cloud upload testing to a revised Phase 2
experiments/sketchforge/docs/roblox-integration.md (revised) — R15 fulcrum section updated with the real bone-collapsing finding from phase-0-results.md, replacing the research-only 'concrete, buildable... mapping table' framing
experiments/sketchforge/docs/risk-assessment-and-recommendation.md (revised) — R15 risk row updated from research-estimated severity/likelihood to the real, measured result; recommendation section updated to reflect Test 1 having actually run
Local machine: Miniconda, conda env 'instantmesh' (Python 3.10, PyTorch 2.3.0+cu121, InstantMesh + deps), Blender 4.2.16 LTS — real toolchain now installed on Zeb's machine, reusable for Phase 1