Introduction
OpenBone is an open-source tool for 2D skeletal animation. You rig artwork with bones, meshes and constraints the way you would in Spine, make it interactive with state machines and pointer listeners the way you would in Rive, and play the result in the browser and in every major game engine. Every edit is also an MCP tool, so an AI agent can build and animate a character for you while you watch it happen in the editor.
Everything, from the editor to the last runtime, is MIT licensed and built only on permissively licensed dependencies.

The walker above is not a video: it is examples/walker.obone playing in the web player. Click the
path to make him walk and click him to jump.
The pieces
Section titled “The pieces”| Piece | What it is |
|---|---|
| Editor | A desktop app (Windows, macOS, Linux) and a web app: rigging, animation, state machines, audio, export. See the editor tour. |
| File format | .obone (JSON) and .obonb (binary, about 40% of the size). One file can carry its art and sound. See the format reference. |
| Runtimes | A TypeScript reference runtime and native runtimes for C/C++, C#, Java, Swift, Flutter and Haxe, all checked against one conformance suite. |
| Web player | <openbone-player>, a drop-in web component, plus PixiJS, Phaser, Three.js and CanvasKit integrations. |
| MCP server | @openbone/mcp: every editing operation as a tool, plus rendering and state-machine simulation so an agent can check its work. |
| CLI | openbone: validate, render, simulate and export from scripts and CI. |

Where next
Section titled “Where next”OpenBone is MIT licensed and made by UXCentury. The example art, voices and sounds are credited in the repository.