Every light, traced.At 60 fps.

The first three.js-style engine to fully path-trace industry-standard scenes in real time.1

ThreeRT

Three, for the API you already know. RT, for the three things it adds.

  1. Ray Tracing

    Every light is traced: shadows, bounce light, reflections and glowing surfaces that light the room. No shadow maps, no light probes, no baking.

  2. Real Time

    60 fps in production scenes, with the camera moving. Not a still that converges once you stop.

  3. Runtime

    A game runtime, not only a renderer. Scene code and game logic run inside the engine, and the same scene runs as three.js in any browser.

Hello world
looks right.

Write a scene at tutorial size and leave every setting at its default. ThreeRT gives it sky light, soft shadows, bounce light and real reflections. Left: the same scene in three.js, as written.

Against three.js
at full power.

The same scene file, run by both engines. three.js gets everything it has: shadow maps, image-based lighting and, on WebGPU, its own SSGI, SSR and TRAA. ThreeRT gets the scene.

Not a still.
A camera move.

Each scene’s own camera path, both engines in lockstep. ThreeRT holds 60 fps the whole way.

Bistro night
Zero-Day

What a ray finds
that a raster can’t.

Close-ups of the same frames. Left: three.js at its strongest. Right: ThreeRT.

Every emitter is a light

Bistro’s string lights, shop signs and lamps light the square themselves, in their own colours.

Light that bounces

The shop window and the wall lamp spill warm light across the facade and the pavement.

Reflections of the whole world

Zero-Day’s floor mirrors the machines and their lights, including the parts the camera never sees.

Ten thousand small lights

Each of Zero-Day’s small emitters adds its own light, highlight and shadow.

Traced where it can be.
three.js everywhere else.

One scene, one game. On hardware with ray tracing, the native client traces every light. On every other screen, the same scene opens in the browser as three.js.

game.ts · one scene, one codebase

Native client

hardware ray tracing

Every light path traced, at 60 fps.

  • Dynamic resolution holds the frame rate
  • Installs like any game client

WebView

any browser, any device

The same scene as three.js rasterization, in any browser or in-app WebView.

  • A link instead of a download
  • Plain three.js, with its whole ecosystem

AAA games, one link away.

The web version isn’t a port. It is the same game, running as three.js.

Shadow maps. Light probes. Lightmaps.
Screen-space GI. Baking.
Just light.