Every frame is just numbers you own.
Iki is an open 2D rig puppet animation engine for the web. You author a character as layered parts wired to parameters, and the runtime animates it in WebGL. The model is plain JSON — readable in a text editor, diffable in git, and small enough for a script to generate.
These sixteen values produced the frame above. That is the whole rig — a host drives the same ids from lip-sync, gaze, blink timers, and expressions.
What runs today
Iki is early, but none of this is a mockup — every line below is running in the two demos linked at the top of this page.
- Runtime
- Renders parameter-driven color quads, atlas-sampled texture parts, warp-mesh and grid deformation, stencil clipping masks, and spring and chain physics. WebGL2, no native toolchain.
- Editor
- Authors parts, deformers, and physics rigs in the browser, with undo and redo on every edit. Imports layered PSDs.
- Generator
- Rigs a character from role-named PNG or PSD layers — blink, gaze, mouth, head turn, and brows, wired automatically. It also runs as an MCP server, so an AI agent can take layers to a rigged model without a human in the loop.
- Format
-
One documented schema with a fail-fast validator that reports the
exact path that failed. A model is a
.ikiJSON file you can open, read, and edit by hand.
Packages
Published to npm under
@ikijs. The engine
depends only on the format package, and never on a host.
| Package | What it is |
|---|---|
| @ikijs/format | The .iki model schema, types, loader, and validator |
| @ikijs/engine | WebGL2 runtime that plays a model |
| @ikijs/editor | Headless editing core — documents, commands, undo/redo, and the auto-rigger |
| @ikijs/mcp | MCP server that exposes reading, validating, and rigging to agents |
Live2D Cubism is the industry standard and is far more mature than Iki in every dimension that matters to an artist. If you need production-grade 2D rigging today, use Cubism. Iki exists for people who want an open web format they can script against — read the full comparison.