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 →
Benchmark · Dataset2 min read·Updated October 2026·By the ExodeUI team

Animation Runtime Bundle Size Benchmark (September 2026)

Measured gzipped JavaScript for five animation runtimes in identical minimal React apps, with versions, build settings and the numbers we lost on.

Direct Summary & Definition

Core Takeaway

In a production Vite 5 build of five otherwise identical minimal React apps, gzipped JavaScript for the animation runtime ranged from 58 KB for dotlottie-web to 758 KB for the ExodeUI React SDK. Rive was 100 KB, GSAP 71 KB and Framer Motion 80 KB. ExodeUI is the heaviest because it bundles the Rapier 2D WebAssembly physics engine, and we are publishing that result against ourselves.

The results table

All five apps use React 18.3.1 and React DOM, which add about 44 KB gzip to every row. The differences between rows are the animation runtimes themselves. Measure is the sum of all emitted .js files after gzip -c.

RuntimeVersionRawGzipRelative to Lottie
@lottiefiles/dotlottie-web0.80.0200 KB58 KB1.0x
GSAP3.15.0208 KB71 KB1.2x
Framer Motion11.18.2248 KB80 KB1.4x
@rive-app/canvas2.42.0333 KB100 KB1.7x
exodeui (React SDK)6.4.52,113 KB758 KB12.8x

Why ExodeUI is the heaviest, in one sentence

The ExodeUI SDK includes @dimforge/rapier2d-compat, a WebAssembly rigid-body physics engine of roughly 1.69 MB, which is about 80 percent of the payload. The other four runtimes interpolate keyframes or drive a playhead and do not simulate physics, so their runtimes are small. That explains the number but does not excuse it, and it does not make 758 KB smaller.

  • Rapier ships even when a component only needs a spring.
  • Lazy WASM loading and physics tree-shaking are the top requests on the runtime roadmap.
  • Compiled scene files are small, often a few KB. The runtime, not the asset, is the weight.

Methodology, so you can reproduce it

Five separate minimal apps, each rendering one animated element using the library documentation first example. Same toolchain, same React version, measured the same way.

  • Build tool: Vite 5.4.21 with @vitejs/plugin-react 4, minify esbuild, production mode.
  • React: 18.3.1 in all five apps.
  • Measurement: sum of emitted .js files, raw and after gzip -c.
  • Not measured: runtime frames per second, memory, WASM instantiation time, and scene asset size.
  • Caveat: Rive .riv assets are typically much smaller than equivalent .exode JSON, which is a separate axis from runtime size.

What to do with the number today

If you adopt ExodeUI, do not put the runtime in your first-paint bundle. Load it at the interactive surface with a dynamic import so the cost is paid only by users who reach the component.

  • For a decorative loop or a hero effect, use a lighter runtime. That is an honest recommendation.
  • For a component that only needs a spring, current ExodeUI is a poor trade on size. Use CSS or Motion.
  • For full rigid-body physics driven by app state, lazy-load the runtime per route.

How to cite this benchmark

The table above is the citable unit. It is versioned by the runtime versions listed, measured with the build settings above, and dated September 2026. Re-run it before quoting a newer release, because the ExodeUI number is expected to change as lazy loading and tree-shaking ship.

  • Cite as: ExodeUI, Animation Runtime Bundle Size Benchmark, September 2026.
  • Quote the gzip column, not the raw column, when comparing shipped weight.
  • State the React baseline when you quote a delta, because every row includes it.

Frequently Asked Questions

Sources

  1. Original benchmark write-up with full narrative — ExodeUI blog
  2. Vite production build options — Vite docs
  3. Rapier 2D physics engine — Dimforge

Related Guides & Examples

Check the number against your own build

The method is reproducible in an afternoon. If your result differs, we would like to see it.

Read the full benchmark
Try for free