The fastest, lightest 2D physics
for JavaScript.

Fast2D is the fastest, most lightweight, dependency-free, TypeScript-first 2D physics engine for JavaScript — with cross-platform deterministic multiplayer.

0 dependencies 15.9 KB gzip TypeScript-first Deterministic Renderer-agnostic
import { World, Bodies } from 'fast-2d';

const world = new World({ gravity: [0, 9.81] });
world.add(Bodies.circle({ position: [0, 0], radius: 0.5 }));

world.update(1 / 60); // fixed-step accumulator
Explore the demos ↓ Star on GitHub

No physics or engine knowledge needed. Copy a ready-made prompt and paste it into ChatGPT, Claude, Copilot, or Cursor — it wires Fast2D into your game for you.

0 fps 0 bodies 0 awake 0 steps/s 0.0 ms/step

See it for yourself — live

The same seeded scene, same body count, same fixed 1/60 s step — run across Fast2D and the popular JavaScript 2D physics engines in your browser. Each engine uses its own default solver settings with sleeping off, so you're watching raw steady-state cost. Lower ms/step is better.

Identical seeded scenes and timestep for every engine. Some engines run in their own unit space (converted back for drawing), so fall speed can differ slightly — the measured ms/step is what's compared. Results vary by device, and this is an honest snapshot: Fast2D is young, so it doesn't win every scene yet.