fast-2d
v0.0.8
Published
The fastest, lightest, dependency-free, TypeScript-first 2D physics engine for JavaScript — with cross-platform deterministic multiplayer.
Downloads
698
Maintainers
Readme
⚡ Fast2D
The best 2D physics for JavaScript — fast, lightweight, and intuitive.
fast2d.com · zero dependencies · TypeScript-first · renderer-agnostic
Fast2D is the fastest, most lightweight, and most intuitive 2D physics engine for JavaScript. The core is pure, allocation-conscious TypeScript with no runtime dependencies and no rendering baked in — drive it with WebGPU, WebGL, or a Canvas2D fallback. The long-term scope grows from rigid bodies to soft bodies to fluids, with cross-platform deterministic simulation for lockstep/rollback multiplayer.
Quick start
npm install fast-2dimport { World, Bodies } from "fast-2d";
const world = new World({ gravity: [0, 9.81] });
const ball = world.add(Bodies.circle({ position: [0, 0], radius: 0.5 }));
world.add(Bodies.rectangle({ position: [0, 10], width: 20, height: 1, isStatic: true }));
world.step(1 / 60);
console.log(ball.position.y);Positions accept a Vec2, a [x, y] tuple, or { x, y } — whatever reads best.
Why Fast2D?
- Fast — allocation-free hot paths, precomputed inverse mass/inertia, a data-oriented solver.
- Lightweight — zero runtime dependencies, tree-shakeable ESM + CJS, ships types.
- Intuitive — a tiny, well-documented API (
World,Bodies,Body,Vec2). - Renderer-agnostic — the core never touches the DOM; you own the pixels.
Docs
- Getting Started
- fast2d.com — live demos and benchmarks
License
MIT © instafluff
