Murow

A lean TypeScript game engine for sim-first server-authoritative multiplayer:
data-oriented ECS, fixed-tick simulation, prediction with rollback,
and a WebGPU renderer. One install: murow.

bun install murow

Everything in one package.

Data-oriented ECS

Structure-of-Arrays storage with five API tiers, from one-liners to zero-overhead hot loops. Holds 60 FPS at 50k entities, scales to 100k, with tighter tail-variance than other JS ECS libraries.

Server-authoritative netcode

GameServer / GameClient with snapshot deltas, client-side prediction, and rollback reconciliation. Define intents and predictions once; they run identically on both sides.

Lag compensation & interest

Server-side rewind for fair hitscan against what the shooter saw, plus an area-of-interest grid that only replicates what each peer can perceive.

WebGPU renderer (2D + 3D)

GPU-side frame interpolation, frustum and animation culling, instanced draw batching, and glTF skeletal animation — smooth at 144 Hz off a 15 Hz simulation.

Compute & typed shaders

Write WGSL in TypeScript with full type safety via TypeGPU. Compute kernels and custom instanced geometry are first-class, not bolted on.

Renderer-agnostic core

ECS, game loop, netcode, asset pipeline, and collision run entirely on the CPU, so the same logic powers a headless server. The WebGPU renderer is just one backend; bring your own.

Read more about the package →