Showcases

The engine, captured live.

The systems we are building Bract around, running in real time in the browser. Every image is a live WebGPU frame from development builds of our games. No offline renders, no paint-overs.

01 · Planet-scale precision

A race circuit in a solar-scale world.

Bract Racer already runs in Bract's planet-scale coordinate system: its tracks are meshes placed on a planet with a 6,371,000-metre radius, illuminated by a sun positioned 149,597,870,700 metres away, one astronomical unit or the average Earth-Sun distance. The close-up race and the distant sun share the same world, rather than a miniature scene with a nearby light.

Millions of metres, down to the road

Cars, circuits and scenery occupy a metre-based world with a planetary radius of 6.371 million metres. Local coordinates can stay near the circuit origin while positions relative to the planet span millions of metres.

A sun 149.6 billion metres away

The sun is placed at one astronomical unit along the selected sunlight direction, so the game uses an astronomical separation rather than moving the light close to the track.

Planet-scale precision, already in use

Bract's double-precision world positions and cell-anchored rendering carry a close-up racing game within a world that also contains astronomical distances.

Two approaches to the landscape

Bract Ring uses a simpler procedural landscape. Summit Pass partially uses the advanced terrain system for more detailed alpine scenery. Both use Bract's large-world precision.

More in the engine overview
02 · Virtual surfaces

Geometry grown on the GPU, every frame.

Refinement geometry turns a surface into new geometry inside compute passes. On the cat and dog cars of Bract Racer it grows a full coat of individual strands from the body mesh every frame, and the coat feels the car: it lags behind acceleration, swings out of turns, flops forward under braking, soaks up rain and dries off in the airflow.

Compute-generated strands

Each body triangle grows up to 16 tapered, four-segment strands, written by deterministic compute passes into a render-owned geometry arena.

Coat physics

Every coat is a damped spring driven by the felt acceleration of its object, so fur bounces over bumps and saturates in a crash.

Weather response

Rain soaks a coat dark and heavy. Parked, it dries again, faster in a strong airflow.

Secondary motion

Tails, ears and tongues are spring chains that feel the same wind and gravity as the coat.

More in the engine overview
03 · Three-stage effects

One effect system, three levels of authority.

Effects are split by how much of the frame they need to own. Weather is Stage 1 at work: rain and snow accumulate on surfaces over time, so a track can be damp, half covered or drying out, rendered by the same surface programs as everything else.

Stage 1

Material features

Wetness, puddles and snow cover live as resident material data, evaluated in one bounded shader block rather than one shader variant per feature.

Stage 2

Custom surface code

Registered WGSL modules are composed into the surface stage for procedural displacement, distortion and surface response, under stable cache keys.

Stage 3

Full pass effects

Frame-graph passes with declared resources and scheduling, for GPU particles, volumetrics and advanced liquids.

More in the engine overview
04 · Lighting and HDR

Physically based, from the sky down.

Every scene is lit by a simulated sky. A spectral atmosphere drives the sun and the environment light, materials respond with physically based shading, and the frame stays in high dynamic range until the final output.

Spectral PBR

Roughness, metallic and AO workflows with spectral reflectance, detail normals and triplanar sampling.

Light from the live sky

Atmosphere lookup tables feed GGX-prefiltered specular and irradiance image-based lighting.

Scene-referred HDR

16-bit scene colour with pre-exposure, bloom, tone mapping, motion blur and lens effects.

Temporal stability

Temporal anti-aliasing and roughness-aware specular anti-aliasing keep thin highlights steady in motion.

More in the engine overview
05 · Virtual shadow clipmaps

Shadow detail where the pixels ask for it.

Instead of fixed cascades, shadows live in virtual pages across a hierarchy of clipmap levels. Each frame the visible pixels request the pages they will sample, and only those pages are drawn.

Receiver demand

Visible pixels mark the pages they need: the right level, a coarser blend partner and a guaranteed fallback.

Static caching

Static caster pages are cached and redrawn only when those casters change. Moving casters are composed on top each frame.

Coarse first

A per-frame budget fills coarser levels before finer detail, so every pixel always has a shadow to sample.

GPU-culled casters

Casters are culled against the pages being drawn and submitted through indirect draws.

More in the engine overview
Early access 2026

Want to build something like this?

Early access opens in waves for studios, technical artists and teams building large worlds on the web. Tell us what you are making.