Examples

Everything below was generated by Polymation — animations authored from a prompt, and real conversions between formats. The Rive examples are live and interactive; the conversions show the actual per-decision loss report Polymation produces every time.

Live 3D — in your browser

This Spline scene was authored from scratch by Polymation (no Spline app) and is rendering live, right now, in the real Spline web runtime. Drag to rotate it.

drag to rotate · scroll to zoom

From a prompt

Describe what you want in plain language; Polymation writes the .riv directly — shapes, state machines, physics, text, interactions. Hover the cards to interact.

Conversions — with an honest loss report

Cross-format conversion is lossy by physics (a 2D vector rig is not a 3D scene). So Polymation never silently drops anything: every conversion ships a per-decision report — what came across clean, what was reconstructed, what was dropped (and why), and what needs your call. These are real outputs from the examples below.

Every conversion writes both Spline forms — runtime .splinecode (shown live below) and editable .spline — so you can ship it or keep editing. Both 3D scenes here are rendering in the real Spline runtime.

Rive → Spline

Input — Rive (.riv) · live

ex-rive-source.riv

Three 2D shapes — a gradient box, a floating circle, a triangle — with a gradient fill, opacity and a float animation.

Output — Spline 3D · live runtime

.splinecode + .spline

The circle's float animation now plays in the live runtime 3D (right) — it auto-plays once on load, so hit ▶ Replay float to see it again. It also loops in the Rive input (left) and in the editable .spline. Drag the 3D to rotate.

Loss report — Runtime: PASS
6 reconstructed · 1 dropped · 0 need your input
Reconstructed
GradBox → 3D gradient panelThe rounded rectangle becomes a shallow 3D panel; its linear gradient (2 stops) maps to a Spline gradient layer shown unlit, so the gradient reads at true colour rather than wrapping a deep cube.
Reconstructed
Dot → 3D sphere + alphaA 2D circle's natural 3D form is a sphere (same circular silhouette); its opacity folds into the material alpha.
Reconstructed
Tri → 3D pyramidThe triangle becomes a pyramid carrying its solid fill colour.
Reconstructed
"Float" animation → Spline state (plays in runtime)The float keyframes become a Spline transform state + Start transition, lowered into the runtime .splinecode — the runtime auto-fires Start on load, so the sphere actually floats in the live 3D (use ▶ Replay).
Reconstructed
Draw order → z-depthThe three shapes' Rive draw order maps to distinct Spline z-planes (panel behind, sphere mid, pyramid front) so the scene has real depth.
Dropped
Ping-pong loopThe Start transition plays once; Rive's ping-pong loop mode has no direct Spline equivalent, so the back-and-forth is dropped — recorded with its loop mode.
Dropped
Animation in the runtime previewThe reconstructed state lives in the editable .spline, but the runtime .splinecode container serializes empty state lists — so the live preview above is static. Drag it instead.

Spline → Rive

Input — Spline 3D · live runtime

.splinecode + .spline

Output — Rive (.riv) · live

ex-spline-to-rive.riv

Each 3D mesh becomes its flat 2D footprint with the material color; the scene background becomes a Rive artboard background.

Loss report — Runtime: PASS
4 reconstructed · 8 dropped · 0 need your input
Reconstructed
RedCube → rectangleThe cube becomes its 2D rectangle footprint carrying the material colour.
Reconstructed
TealBall → ellipseThe sphere becomes a circular footprint (ellipse) with its colour.
Reconstructed
GoldPeak → triangleThe pyramid becomes its triangular footprint with its colour.
Reconstructed
Scene background → artboard backgroundThe Spline background colour becomes a full-artboard Rive rectangle behind all content.
Dropped
Z-depth · 3D tilt · lighting · materialsEach mesh's depth and out-of-plane rotation, the physical materials, and the scene's lights have no 2D equivalent — eight facets across the three meshes, each dropped with its original values recorded.

Lottie → Rive NEW in v1.8

Input — Lottie (.json) · live lottie-web

ex-lottie-source.json

A gradient card, a morphing blob (animated bezier path), and a dot easing back and forth with overshoot — playing in the real lottie-web player.

Output — Rive (.riv) · live

ex-lottie-to-rive.riv

Both sides are playing live. The blob's path morph became real Rive vertex keyframes (position + curve handles per point), the easing curves carried over 1:1, and the gradient survived intact. It converts back to Lottie too — grab the round-tripped .json above. Also accepts .lottie (dotLottie) files, and the reverse works: any Rive scene exports to Lottie for web/iOS/Android players.

Loss report — Runtime: PASS
4 reconstructed · 1 for your review · 0 dropped
Reconstructed
Blob → Rive vector path with a real morphThe animated bezier (4 cubic vertices) becomes a Rive PointsPath whose vertices are keyframed — position and tangent handles per point — so the outline genuinely morphs instead of freezing on frame one.
Reconstructed
Card → rounded rectangle + linear gradientThe rounded rect carries its 2-stop indigo→cyan gradient across, mapped onto a Rive gradient fill with the same axis.
Reconstructed
Dot → ellipse with eased motionThe position keyframes become a Rive timeline; Lottie's cubic easing handles (including the overshoot) map 1:1 onto Rive cubic interpolators.
Reconstructed
Timelines → one looping LinearAnimationAll layer keyframes lower into a 90-frame 30fps Rive animation; Lottie content is authored as a cycle, so it imports looping.
Your call
InteractivityLottie encodes no state machine — any triggers/inputs in the Rive output would be authored, not converted. Surfaced for your spec rather than invented.

Make your own

Everything here came from a prompt or a conversion. Install Polymation in your MCP client and try it — 3 free exports, no account.

Download free Subscribe — $10/mo