Runtimes

One rig.
Every engine. Every frame.

Export once and play the same animation in Godot, Unity, Defold, Cocos Creator, Phaser, the browser or Rust. Seven official runtimes, free for any game, tested against each other frame by frame on every commit.

Live, in your browser

How many NILAs can your device run?

Each NILA has 39 bones, 890 mesh vertices and physics on her braid. This is the JavaScript runtime and its WebGL renderer, the same code a web game ships, and the slowest of the seven. The native runtimes are 3 to 4 times faster.

Characters
10
Animation, per frame
–
Per character
–
Drawing
–

Why Rigby2D runtimes

Already using Spine? Your exports play in Rigby2D runtimes as they are. Here is what changes.

Rigby2D runtimesSpine runtimes
Cost Free. MIT or Apache-2.0, for any game, any studio, any revenue. Need a Spine editor license.
Defold, Cocos Creator, Rust Official, released and tested with the editor. Listed as third-party runtimes, maintained by the community.
Scenes Whole scenes play in the engine: several characters on a stage, clips with crossfades, a camera with parallax. One skeleton at a time; the scene is built in each engine.
File versions One runtime reads them all: skeleton JSON 3.8, 4.2 and 4.3 and binary .skel 4.3. Each runtime version reads exports of its own editor version.
Getting them From the editor: File ▸ Get runtimes, matched to your version. From the runtimes repository, by hand.

Spine is a trademark of Esoteric Software. Rigby2D isn't affiliated with it; this compares the published runtime licenses and lists as of November 2026. See also Rigby2D vs Spine.

Correct

Frame for frame, to eight decimal places

The JavaScript runtime is the reference. Golden files record what it does with every demo rig: bone matrices, vertices, colors, draw order and events, for every animation, crossfades, layered tracks, queues and skins. The Rust, C++ and C# runtimes replay them on every commit and must match.

See the CI workflow
Largest relative difference from the JavaScript runtime
RigBone matricesVertices
Rigbytron2 × 10−161 × 10−15
NILA, with physics3 × 10−113 × 10−9
Scene: NILA and Rigbytron on a stage2 × 10−125 × 10−11
16 sample rigs, 3,500 framesunder 10−10 relative

Fast

Native speed where it counts

Posing a character means animation, IK, transform, path and physics constraints, world transforms and every mesh vertex. The native cores do it in microseconds and allocate nothing in steady playback.

  • Unity: 200 NILAs in 5.0 ms a frame on a 4-core laptop, upload included.
  • Defold: NILA posed in 12 µs, her geometry built in 24 µs, written straight into vertex buffers.
  • Rust: 3 to 4 times faster than JavaScript on every rig.
One character, one frame (median of 2,000)
RigJavaScriptRust
67 bones, 276 mesh vertices50 µs14.5 µs
76 bones, 667 weighted vertices, 9 IK71 µs22 µs
143 bones, 879 vertices, 21 constraints90 µs22 µs

Everything the editor does, in your game

Meshes and weightsDeform keysLinked meshesIK, one and two bones Transform constraintsPath constraintsPhysicsSlidersSkins Image sequencesClippingDraw order keysTwo-color tintBlend modes Events with audioLayered tracksCrossfadesQueued animations Bone followersScenes with cameras

Formats: skeleton JSON 3.8, 4.2, 4.3 · binary .skel 4.3 · texture atlas · .scene.json.

Ship it anywhere. Pay nothing.

The editor and every runtime are free and open source, for commercial games too.