The @blinn-motion/figma-plugin reads a Figma Motion timeline and emits a MotionDoc — no PNGs, no video, just your keyframes, easing and springs as data.

Build the plugin

The plugin previews animations with an inlined @blinn-motion/dom bundle, so build that first.
npm run build -w @blinn-motion/dom          # produces the inlined browser bundle
npm run build -w @blinn-motion/figma-plugin # tsc → dist/code.js, inlines → ui.html

Load it into Figma

1

Import the manifest

In Figma: Plugins → Development → Import plugin from manifest… and pick packages/figma-plugin/manifest.json.
2

Select an animated frame

Choose a frame that has a Motion timeline (one with keyframes on the timeline panel).
3

Run the plugin

The left pane previews the animation with @blinn-motion/dom. The right pane shows the MotionDoc and the raw Figma JSON side by side.
4

Download the MotionDoc

Hit Download .json. The file plays anywhere, with any Blinn Motion adapter.

Then play it

import { create } from "@blinn-motion/dom";
import doc from "./downloaded.motion.json";

create(document.getElementById("stage")!, doc, { loop: true }).play();
Not everything in Figma Motion converts one-to-one. Before relying on a specific effect, skim Figma Motion coverage to see what’s supported, approximate, or out of scope.