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.
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.
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.
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.

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.
Custom surface code
Registered WGSL modules are composed into the surface stage for procedural displacement, distortion and surface response, under stable cache keys.
Full pass effects
Frame-graph passes with declared resources and scheduling, for GPU particles, volumetrics and advanced liquids.
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.
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.
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.