{"id":51013949,"url":"https://github.com/zeikar/iki","last_synced_at":"2026-06-21T07:31:36.867Z","repository":{"id":362581058,"uuid":"1259448068","full_name":"zeikar/iki","owner":"zeikar","description":"Iki — an open 2D rig puppet animation engine for the web (a from-scratch Live2D alternative).","archived":false,"fork":false,"pushed_at":"2026-06-21T01:02:05.000Z","size":875,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-21T03:05:05.101Z","etag":null,"topics":["2d-animation","avatar","charivo","hyperclaude","iki","live2d","puppet","rigging","typescript","vtuber","webgl"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeikar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-04T14:15:47.000Z","updated_at":"2026-06-21T01:02:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"f2f6c4e4-61ab-4dc9-ab45-c1ef9ba32187","html_url":"https://github.com/zeikar/iki","commit_stats":null,"previous_names":["zeikar/iki"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zeikar/iki","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeikar%2Fiki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeikar%2Fiki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeikar%2Fiki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeikar%2Fiki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeikar","download_url":"https://codeload.github.com/zeikar/iki/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeikar%2Fiki/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34601660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d-animation","avatar","charivo","hyperclaude","iki","live2d","puppet","rigging","typescript","vtuber","webgl"],"created_at":"2026-06-21T07:31:36.182Z","updated_at":"2026-06-21T07:31:36.853Z","avatar_url":"https://github.com/zeikar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Iki\n\n[![Built with HyperClaude](https://img.shields.io/badge/Built%20with-HyperClaude-D97757?logo=anthropic\u0026logoColor=white)](http://zeikar.dev/hyperclaude/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n\n\u003e 息 (breath) · 生き (life) · 粋 (chic)\n\n**Iki** is an open 2D rig puppet animation engine for the web — a from-scratch\nalternative to Live2D and [Inochi2D](https://inochi2d.com/). You author a\ncharacter as layered parts wired to a small set of parameters, and the runtime\nanimates it in WebGL. A host (such as [Charivo](https://github.com/zeikar/charivo))\ndrives those parameters from lip-sync, gaze, blink, and expressions.\n\n\u003e Status: **early / from scratch.** The runtime renders parameter-driven\n\u003e color quads, atlas-sampled texture parts, and warp-mesh deformation today.\n\u003e The editor and the AI generator are the milestones ahead.\n\n## Why\n\n- **Open format.** The `.iki` model is a plain, documented schema you own —\n  which is what makes AI-driven model generation tractable.\n- **Web-native.** WebGL runtime, TypeScript, no native toolchain.\n- **Host-agnostic.** The engine knows nothing about Charivo or any host; it\n  just plays `.iki` models. Charivo consumes it through a thin `render-iki`\n  adapter, the same way it consumes the Live2D SDK today.\n\n## Packages\n\n| Package                                        | What it is                                                                                                                                                           |\n| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [`@iki/format`](./packages/format)             | The `.iki` model schema, types, loader, and validator                                                                                                                |\n| [`@iki/engine`](./packages/engine)             | WebGL2 runtime that plays a `.iki` model                                                                                                                             |\n| [`@iki/editor-core`](./packages/editor-core)   | DOM-free editing core: EditorDocument, part-edit commands, undo/redo, atlas layout/UV helpers, toIkiModel/serialize round-trip (depends only on @iki/format)         |\n| [`examples/playground`](./examples/playground) | Slider-driven demo of a hand-authored model                                                                                                                          |\n| [`examples/editor`](./examples/editor)         | Private React+Zustand app — load sample model, numeric part edit, per-part texture drop (quad + mesh, rides the warp), live IkiPlayer preview, validated .iki export |\n\n## Quick start\n\n```bash\npnpm install\npnpm build\npnpm playground   # open the Vite URL and drag the sliders\n```\n\n## The `.iki` model\n\nA model is a flat list of parts composited back-to-front, plus parameters wired\nto those parts through linear bindings:\n\n```ts\nimport { StandardParameter, type IkiModel } from \"@iki/format\";\n\nconst model: IkiModel = {\n  version: 1,\n  name: \"Hello\",\n  canvas: { width: 1000, height: 1000 },\n  parameters: [{ id: StandardParameter.MouthOpen, min: 0, max: 1, default: 0 }],\n  parts: [\n    {\n      id: \"mouth\",\n      color: [0.78, 0.32, 0.36, 1], // solid fill, or tint multiplier when a texture is present\n      width: 150,\n      height: 34,\n      order: 0,\n      transform: { x: 0, y: -150 },\n      bindings: [\n        {\n          parameter: StandardParameter.MouthOpen,\n          channel: \"scaleY\",\n          from: 0,\n          to: 3,\n        },\n      ],\n    },\n  ],\n};\n```\n\nStick to the `StandardParameter` ids (`ParamMouthOpenY`, `ParamAngleX`, …) so\nany host can drive any model without per-model wiring.\n\n\u003e **Stability:** pre-release — the `.iki` format may change without an\n\u003e `IKI_FORMAT_VERSION` bump until the first published release. After that,\n\u003e breaking schema changes bump the version.\n\n## Roadmap\n\n1. **Format + runtime** (parameter-driven color quads) — done\n   - **Idle motion** — host-agnostic `IdleMotion` driver (auto-blink / breath / gaze drift) shipped by the engine, consumed by the playground and the editor preview — done\n2. **Charivo adapter** — [`@charivo/render-iki`](https://github.com/zeikar/charivo/tree/main/packages/render-iki) implementing the renderer contract — in progress in the Charivo repo\n3. **Textures** — atlas + UV-rect texture sampling, `color` as tint multiplier — done\n   \u003e Atlas authors should add padding / extruded borders between sub-rects to avoid LINEAR-filter bleeding.\n4. **Warp/rotation deformers** — the soft 2.5D head-turn that defines the look\n   - **4a. Rotation deformer + pivot + parent hierarchy** — done\n   - **4b. Warp mesh, keyform, per-vertex UV** — done\n   - **4c. Warp deformer (group warp)** — done\n   - **4d. Advanced warp depth** — 2D parameter grids (joint `AngleX`×`AngleY` keyform blend via `warp2d`, true Live2D-style) — done. Deferred (revisit when enhancing the look): multi-driver grid composition; Bezier/bicubic smooth warp patches (vs. the current bilinear); nested warp deformers + matrix-under-warp hierarchies; glue / clipping-aware deformation / path deformers; folded-cell detection\n5. **Editor** — author parts, meshes, and bindings\n   - **5a. Load → numeric part edit → live preview → validated export** — done\n   - **5b. Texture/atlas import + per-part UV (quad parts)** — done\n   - **5c. Per-part texturing + per-vertex mesh-UV remap** — done (existing face/eyes/mouth meshes take a per-part texture that rides the warp). Deferred to a later slice: mesh topology editing (triangulation / vertex add-move-delete / quad→mesh) and base-UV persistence across reload.\n   - **5d. Warp-deformer grid keyform authoring by canvas dragging** — done (drag the existing `faceWarp` grid control points to author the `IkiGridWarp` keyform that the head-turn rides). Deferred: per-part `warps` authoring, new deformer types, cols/rows resize, multi-keyform timeline, 2D/multi-driver grids (#4d).\n   - **5e. Matrix-deformer hierarchy authoring (numeric)** — done (select a deformer → edit `pivot` / `transform` / parameter bindings numerically; reparent deformers and attach parts via dropdowns, with cycle / non-matrix-parent / mesh-on-warp validation that fails fast). Deferred: canvas pivot gizmo, creating/deleting deformers.\n6. **AI generator** — image → segmented parts → auto-rigged `.iki`\n\n## License\n\nMIT © Zeikar\n\n---\n\n**Built with [HyperClaude](http://zeikar.dev/hyperclaude/)** — _Claude builds, Codex critiques._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeikar%2Fiki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeikar%2Fiki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeikar%2Fiki/lists"}