Convert other formats into Rive (and back)

Bring Lottie, After Effects, Animate, Figma, Spline, Spine and 3D model files into Rive, or take Rive out to Lottie, Spline, Figma and Spine. It runs on your computer, with no design app open and no account. Every conversion comes with a report of what carried over, what was rebuilt and what was lost.

You bring
The source file: .json or .lottie, .aep, .fla, a Figma link, .splinecode, a Spine skeleton with its atlas, .glb, or a .riv to take out.
You get
The converted file, a loss report, and optionally a measured side-by-side comparison.
Needs
Nothing beyond the install. Figma needs a personal access token.

Ask your assistant

  • Convert hero.json to Rive and tell me what was lost.
  • Convert every Lottie in ./animations to .riv and rank them by how far they drifted from the source.
  • Turn this After Effects project into a .rev I can keep editing in the Rive editor.
  • Bring this Figma prototype into Rive with its clicks working: <the Figma link>.
  • Export my .riv as a dotLottie that keeps its state machine.
  • Convert my Spine character to Rive, and this Rive rig to Spine 4.2 for Unity.

What converts to what

FromTo
Lottie .json, dotLottie .lottie (including interactive dotLottie packages)Rive, Spline, Figma, plain Lottie
After Effects .aep, read directly, no After Effects neededRive, Lottie, Spline, Figma
Adobe Animate .fla (CS5 and later) or an XFL folderRive, Lottie, Spline, Figma
Figma, from a link (frames, prototypes, Figma Motion)Rive, Lottie, Spline
Spline .splinecode / .splineRive, Lottie, Figma
Spine skeletons: .json or .skel with its .atlas (3.8 JSON, 4.0 to 4.3), or a .zip of the exportRive (one artboard per skin), and through it Lottie, Spline, Figma
glTF / GLB models (Blender, Maya, Cinema 4D, Sketchfab)Spline as a 3D model; Rive, Lottie and Figma drawn flat
Rive .riv / .revLottie, dotLottie (state machine kept), Spline, Figma, Spine, and .riv ↔ .rev

How it works

  1. Convert. convert_format detects the source format and writes the result: a .riv for apps and websites, or a .rev to open and keep editing in the Rive editor. A Figma file is fetched first with import_figma. import_lottie shows what a Lottie holds before you convert it.
  2. Read the report. Every decision is one of four kinds:
    • Clean: carried over as it was.
    • Reconstructed: rebuilt from what Rive has, for a feature Rive spells differently.
    • Dropped: lost, with the reason.
    • Escalated: a question only you can answer. Your assistant asks you, then runs the conversion again with your answer.
  3. Measure it. verify_conversion draws the source and the result at the same moments and reports how far apart they are.
  4. Look at it. preview_riv_gif on the result.

A whole folder

Give a folder, a list of files or a .zip of Lotties. Each gets its .riv, an editable .rev and its own report, and a batch report ranks the files by how far each drifted, so you can check the worst first. One bad file costs only itself.

Make a plain animation interactive on the way in

A Lottie only plays. Ask for an upgrade and the converted file also gets a state machine (an idle loop, hover and press, a trigger per named marker) or a view model that exposes its colours and text to your app. Each addition is marked as added in the report.

After Effects, edited in place

edit_aep reads an After Effects project and writes changes back into it. Writing a brand-new .aep isn't offered: without After Effects there is no way to check such a file would open. When converting a project whose footage has moved, tell your assistant which folders it is in.

Spine

Spine skeletons are read with Spine's own runtime of their version and keep their bones, meshes, skins and keys. Rive files go out as a Spine skeleton, atlas and pages that Spine's runtimes load. See Spine in and out.

3D models from Blender

Export a .glb with Animation Mode "Scene", "Split Animation by Object" off and compression off. Otherwise Blender writes each object's motion as its own animation and only the first plays, and a compressed file is refused. To Spline, meshes, materials, textures, bones, shape keys, the camera, lights and the first animation carry over.

Good to know

  • Every conversion between formats loses something, because each format describes things differently. The report names each loss, so ask your assistant what was dropped rather than assuming nothing was.
  • A .riv can't be opened in the Rive editor. Ask for .rev when you want to keep editing there, and verify_editor_compat checks the editor will read it as meant.
  • From Animate, ActionScript, button states, sounds, filters and blend modes don't cross. From glTF, normal maps, vertex colours and the other animations don't. Each is named in the report.
  • convert_format can list every supported route, with what each one can't carry.

Related