Deterministic n-body physics · in your browser
Simulate gravity
like it’s amaterial.
Aether is a real-time physics engine for interactive worlds. Ten thousand bodies, orbital mechanics, and emergent structure — all running at a smooth 60 frames per second. Move your cursor to bend the field.
The physics
Honest simulation, engineered for the browser.
No pre-baked splines or faked motion. Aether integrates real forces every frame — and stays fast doing it.
Barnes–Hut gravity
An octree approximates distant masses so the field scales to tens of thousands of bodies without melting the main thread.
Symplectic integration
A velocity-Verlet core conserves energy over long runs, so orbits stay orbits instead of quietly spiralling into noise.
Deterministic replay
Every simulation is seeded and reproducible. Rewind, branch, and share an exact universe by passing a single hash.
Zero-copy rendering
State lives in typed arrays and streams straight to the GPU. No garbage, no jank — just frames that land on time.
Field composition
Layer gravity, drag, springs and custom force fields. Compose behaviours the way you compose functions.
Runs anywhere
A 14 kB core with no dependencies. Drop it into React, a game loop, or a plain canvas and it just works.
Live sandbox
Bend the field. It answers instantly.
The same core that powers the hero, exposed. Tune the constants, flip the sign of gravity, and click the canvas to reseed the swarm.
A universe you can put in production.
Aether ships as a single ES module with typed bindings. Wire it to your render loop, feed it forces, and let determinism do the rest.
import { World, gravity } from "aether"; const world = World.seed(0xC0FFEE); world.spawn(10_000).force( gravity({ g: 6.674e-11 })); world.tick(1 / 60); // step the universe