Open source · public beta

2D skeletal animation, from layered art to any engine.

Rig a layered PSD in one step, animate it for games and film, make it talk with lip-sync from audio, and play it anywhere with the included runtimes. AI assistants can inspect, rig and animate your projects through the built-in MCP server.

Free · MIT or Apache-2.0 · No account, no install for the browser editor

Live: NILA on the Rigby2D runtime, in your browser
1 stepfrom layered PSD to an editable rig
4 runtimesJavaScript, Rust, Unity and Godot 4
Losslessskeleton JSON 3.8 / 4.2 / 4.3 and .skel
MCP built inAI assistants work on real projects

Everything from rig to render

One editor for game characters and animated film, with the tools that usually take three apps. Every card links to its guide in the documentation.

AutoRig

Import a layered PSD and get an editable rig: body parts found from the layer names, joints where parts meet, weighted meshes for bending parts and IK for arms and legs.

Retargeting

Animate once, reuse on other characters. Bones are matched automatically (L_UpperArm finds upperarm_l) and movement is scaled to each character's size.

Full rigging toolset

Bones, weighted meshes, linked meshes, image sequences, skins, events, clipping and paths, with IK, transform, path, physics and slider constraints.

Animate with confidence

Setup and Animate modes, dopesheet and graph editor with Bézier handles, onion skinning, a pose library and face controls that blend between poses.

Film workspace

Render transparent PNG sequences, WebM with alpha and MP4 at 4K, with timecode, frame-rate presets, an animatable camera and audio tracks mixed into the video.

Lip-sync from audio

Drop in a voice line and the mouth is keyed shape by shape with the nine viseme mouths, each landing just before its sound and never flickering. Whisper transcribes the speech on your computer, nothing uploaded; or use ElevenLabs, Rhubarb or Papagayo timings.

Scenes

Put several characters on one stage. Each plays clips of its animations, trimmed, looped and crossfaded, with its own voice, in front of painted layers with parallax and a moving camera.

Python scripting

Python 3 is built in. Write scripts against the open project and turn them into tools in the Scripts menu. Each run is one undo step; failures leave the project untouched.

Made for your setup

Pop the Timeline, Tree and Inspector out onto a second monitor and recall saved window layouts with a shortcut. Pixel-art projects stay sharp end to end.

Learn by doing

Interactive lessons with a practice character take you from a drawing to a moving character, right inside the editor.

Guides and precision

Pixel rulers and guide lines, real-time guides that trace each rotate, move, scale and shear, drag-and-drop draw order with a live preview, and the hovered bone lit up in every panel.

Runs anywhere

The full editor runs in your browser with nothing to install, or as a Windows app. Projects are one .rigby file; exports are standard skeleton JSON and .skel.

Built for AI assistants

Your assistant works on the project, not just about it

Rigby2D ships a Model Context Protocol server. Any MCP-capable AI assistant can read rigs, evaluate poses with the real runtime, find export problems, add bones and eased keys, AutoRig a PSD, retarget animations, lip-sync dialogue and run Python, all inside the folders you allow.

  • Edits save in the file's own format
  • Many edits apply as one atomic batch
  • One-file install, or one command from source
MCP guide

Which images are missing from hero.skel?

Add a 1-second wave animation to nila.rigby that raises the right arm and fires a hi event at the end.

Add line.wav to the talk animation and lip-sync NILA's mouth to it from this script.

AutoRig character.psd.

Play it anywhere

Small, fast runtimes

A dependency-free JavaScript runtime with a reference WebGL renderer, a Rust port that matches it frame by frame, 3 to 4× faster, powering the Godot 4 node RigbySkeleton2D, and a Unity package in C#: multi-core, garbage-free, clean edges in any color space, scenes included.

The animation at the top of this page is that JavaScript runtime, drawing NILA live: mesh deformation, physics on her braid and earrings, face swaps and lip-sync, all from one exported .skel.

Runtime guide
const skeleton = Skeleton.fromJson(json);
const pose = new Pose(skeleton);
const state = new AnimationState();
state.play(skeleton, 'walk', true, 0.2);

// every frame:
state.update(skeleton, 1 / 60);
state.apply(skeleton, pose);
for (const quad of pose.quads(skeleton)) {
  // draw quad.positions with quad.uvs
}