息 (breath) · 生き (life) · 粋 (chic)
Iki is an open, MIT-licensed 2D rig puppet animation engine for the web — a from-scratch alternative to Live2D and Inochi2D. You author a character as layered parts wired to a small set of parameters, and the runtime animates it in WebGL. A host (such as Charivo) drives those parameters from lip-sync, gaze, blink, and expressions — and an AI agent can build the character in the first place, from role-named PNG layers to a rigged model, through the bundled MCP server.
Status: early, but real. The runtime renders parameter-driven color quads, atlas-sampled texture parts, warp-mesh and grid deformation, stencil clipping masks, and spring/chain physics. The editor authors parts, deformers, and physics rigs; the generator rigs a character from role-named PNG/PSD layers, including through an MCP server that AI agents can drive.
No install — both demos run in the browser:
- Playground — drag the sliders that a host would drive, on a hand-authored model or a generated character.
- Editor — author parts, deformers,
and physics rigs, import a layered PSD, and export a validated
.iki.
- MIT. No publication license, no revenue tiers — ship whatever you build.
- Open format. The
.ikimodel is a plain, documented schema you own — which is what makes AI-driven model generation tractable. - Characters an AI agent can build. Role-named PNG layers in, a rigged model that blinks, talks, turns and nods out, over MCP. That is the part Iki is really exploring.
- Web-native. WebGL runtime, TypeScript, no native toolchain.
- Host-agnostic. The engine knows nothing about Charivo or any host; it
just plays
.ikimodels. Charivo consumes it through a thinrender-ikiadapter, the same way it consumes the Live2D SDK today.
Live2D Cubism is the industry standard, and it is far more mature than Iki in every dimension that matters to an artist — editor, tooling, ecosystem, and the quality ceiling of what you can rig with it. Inochi2D is the established open-source project in this space. Iki is not trying to replace either. It exists because three things it wanted never lined up in one place: a permissive license, a plain-text format, and a rig an agent can build.
| Live2D Cubism | Inochi2D | Iki | |
|---|---|---|---|
| License | Proprietary SDK license; a publication license is required to distribute, with exemptions for individuals and small businesses (terms) | BSD-2-Clause | MIT |
| Editor | Cubism Editor (paid PRO tier, free tier) | Inochi Creator (open source) | Headless editor core + example app (early) |
| Model format | .moc3, compiled and proprietary |
Open | Plain JSON with a documented schema and a validator |
| Runtime | Native SDKs, including a Web SDK | Native (D) | TypeScript + WebGL2, npm install |
| An AI agent can build it | — | — | Yes: compose_layers_from_parts, measure_layers and auto_rig_from_layers over MCP, plus a Claude skill |
| Maturity | Industry standard | Established | Early (0.x, schema still settling) |
If you need production-grade 2D rigging today, use Cubism. If you want an open web format you can script against, that is what this is.
| Package | What it is |
|---|---|
@ikijs/format |
The .iki model schema, types, loader, and validator |
@ikijs/engine |
WebGL2 runtime that plays a .iki model |
@ikijs/editor |
Headless editing core (no UI): EditorDocument, edit commands, undo/redo, atlas layout/UV helpers, auto-rigger (depends only on @ikijs/format) |
@ikijs/mcp |
stdio MCP server exposing .iki read/validate plus compose_layers_from_parts, measure_layers and auto_rig_from_layers to AI agents |
examples/playground (live) |
Slider-driven demo of the generated hero character and a hand-authored model |
examples/editor (live) |
Private React+Zustand app — load/import art, numeric part + deformer + physics editing, pivot gizmo, live IkiPlayer preview, validated .iki export |
plugin/ |
Claude Code plugin — the character-generation skills, their two agents, and the MCP server, wired up in one install |
npm install @ikijs/engine @ikijs/format@ikijs/editor is for building authoring tools; @ikijs/mcp runs as a
server (npx -y @ikijs/mcp) rather than being imported.
pnpm install
pnpm build
pnpm playground # open the Vite URL and drag the slidersA model is a flat list of parts composited back-to-front, plus parameters wired to those parts through linear bindings:
import { StandardParameter, type IkiModel } from "@ikijs/format";
const model: IkiModel = {
version: 1,
name: "Hello",
canvas: { width: 1000, height: 1000 },
parameters: [{ id: StandardParameter.MouthOpen, min: 0, max: 1, default: 0 }],
parts: [
{
id: "mouth",
color: [0.78, 0.32, 0.36, 1], // solid fill, or tint multiplier when a texture is present
width: 150,
height: 34,
order: 0,
transform: { x: 0, y: -150 },
bindings: [
{
parameter: StandardParameter.MouthOpen,
channel: "scaleY",
from: 0,
to: 3,
},
],
},
],
};Stick to the StandardParameter ids (ParamMouthOpenY, ParamAngleX, …) so
any host can drive any model without per-model wiring. Left/Right in those
ids name the character's side, so the character's left eye is the part at
positive x (the viewer's right).
Stability:
IKI_FORMAT_VERSIONidentifies the.ikicontract, and from 1.0 on, any breaking schema change bumps it. Until then the v1 schema is still settling: a 0.x release may tighten validation and reject a model an earlier one accepted (canvas extents must now be> 0, for instance). Such changes are called out in the changelog. The TypeScript surface can likewise shift between 0.x minors.
Can I use this commercially? Yes — MIT, for everything in this repo. Models you make are yours.
Can it load Live2D models? No. .moc3 is a proprietary compiled format;
Iki has its own open schema and no importer for it.
Is it production ready? Not yet — the packages are published from 0.1.0 and the v1 schema is still settling. See Stability above for what that means for a model you save today.
Do I need the editor to use it? No. @ikijs/engine + @ikijs/format are
enough to play a model. The editor packages are for building authoring tools.
How do I make a model? Either hand-write the JSON — it is small, see above —
or feed role-named PNG layers to the auto-rigger in
@ikijs/editor / @ikijs/mcp, which
wires up blink, gaze, lip-sync, head-turn and brows for you.
ROADMAP.md tracks what has landed and what is deferred.
MIT © Zeikar
Built with HyperClaude — Claude builds, Codex critiques.