Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

I built a 2D rig compiler for AI agents, and the validator's messages are the whole UI

Description and use

rig-c turns silent parser failures into explicit error messages, enforces strict validation before emission, and offers tools for human review and web playback, enabling reliable AI‑generated 2D rigs.

Problem

AI agents that generate 2D character rigs receive only silent parse success feedback, allowing broken rigs to pass unnoticed.

Outcome

rig-c turns silent parser failures into explicit, actionable error messages, enforces strict validation before emission, and provides tools for human review and web playback, enabling reliable AI‑generated 2D rigs.

Workflow

  • 1. Use @rig-c/parts to convert a painting and its layer decomposition into rig parts, bones, meshes, and a looping idle.
  • 2. Use @rig-c/pose to clean and retarget a pose sequence onto the rig, refusing sequences without a clean record.
  • 3. Run rig-c to compile, validate against the spine profile, and emit the rig JSON only if all assertions pass.
  • 4. Use @rig-c/review to render the built rig, inspect it in the browser, and export feedback bound to frames, bones or slots.
  • 5. Optionally use @rig-c/play to play the compiled model in a web page via CSS matrix transforms or a single canvas.

Evidence

From the project's own list of what a standard parser lets through unremarked: a 4.2-shaped constraint that simply vanishes in 4.3, a mismatched size: that collapses every UV, a four-number curve array that yields NaN, a mesh whose vertex count equals its UV count, which silently loses its bone weights.

Source

The compiler never guesses a default from the art, never re‑measures a plate, never fills in a "reasonable" fallback.

Source

rigc build compiles, validates, and writes to disk only if every named assertion of its profile passes: 36 under the default spine profile.

Source

@rig-c/review puts it beside the source footage and exports feedback bound to a frame, bone or slot.

Source

The player puts the rigid tier in the DOM: one absolutely positioned <img> per slot, a single matrix write per frame, composited by the browser.

Source

  • Record date: 2026-10-23T11:26:25.426Z