Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
Motion History7 min read·Updated October 2026·By the ExodeUI team

From Flash to Lottie to State Machines: The Evolution of Web Vector Animation

How web vector animation moved from Flash and ActionScript to Lottie's After Effects exports and then to state-machine runtimes, and what each step changed.

Direct Summary & Definition

Core Takeaway

Flash combined vector animation and interactivity in one tool, but it ran in a plugin that Adobe stopped supporting after December 31, 2020. Lottie brought vector animation back by playing After Effects animations, exported as JSON with Bodymovin, natively on web and mobile, but those animations only play. State-machine runtimes such as Rive and ExodeUI add interactivity back into the design file.

Flash: animation and logic in one place

Flash let designers draw vectors, animate them on a timeline and add behaviour with ActionScript, all in one file. It powered games, ads and whole websites. Its weakness was the plugin: it ran outside the browser's own technologies, with persistent security and performance problems. Adobe ended support for Flash Player after December 31, 2020, and blocked Flash content from running from January 12, 2021.

Timeline from Flash with ActionScript, to Flash end of life in December 2020, to Lottie JSON exports, to state-machine runtimes
Each step kept vector animation and moved interactivity closer to the design tool again.

Lottie: vectors without the plugin

Lottie, from Airbnb, parses Adobe After Effects animations exported as JSON with the Bodymovin plugin and renders them natively on web, iOS, Android and React Native. It made rich vector motion practical in apps again, and it is still the most widely supported format for animations that simply play.

The missing piece: interactivity

Lottie files describe a timeline, not behaviour. Making a Lottie animation respond to hover, loading or success means writing code around the player. Flash had that behaviour built in; the plugin-free world lost it.

State machines: behaviour in the file again

State-machine runtimes bring the Flash idea back without the plugin. Rive lets you design vector animation and wire it to a state machine whose inputs your code controls. ExodeUI, which we make, applies the same idea to product UI, adding layout, spring physics and logic in one open JSON file played by runtimes for React, SwiftUI, Flutter and more.

Key Principles to Remember

  • Flash combined vector animation and interactivity in a plugin
  • Adobe ended Flash Player support after December 31, 2020
  • Lottie plays After Effects animations exported with Bodymovin, natively
  • Lottie animations play; interactivity needs extra code
  • State-machine runtimes bring authored behaviour back into the file

Frequently Asked Questions

Sources

  1. Adobe Flash Player End of Life — Adobe
  2. lottie-web — GitHub (Airbnb)
  3. State Machine Playback — Rive docs

Related Guides & Examples

Behaviour in the file, without a plugin

Build an interactive component with states and springs and play it in React, SwiftUI or Flutter. Free to start.

Open the examples
Try for free