The first three.js-style engine to fully path-trace industry-standard scenes in real time.1
Three, for the API you already know. RT, for the three things it adds.
Every light is traced: shadows, bounce light, reflections and glowing surfaces that light the room. No shadow maps, no light probes, no baking.
60 fps in production scenes, with the camera moving. Not a still that converges once you stop.
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.
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.
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.
Each scene’s own camera path, both engines in lockstep. ThreeRT holds 60 fps the whole way.
Close-ups of the same frames. Left: three.js at its strongest. Right: ThreeRT.
Bistro’s string lights, shop signs and lamps light the square themselves, in their own colours.
The shop window and the wall lamp spill warm light across the facade and the pavement.
Zero-Day’s floor mirrors the machines and their lights, including the parts the camera never sees.
Each of Zero-Day’s small emitters adds its own light, highlight and shadow.
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.
Every light path traced, at 60 fps.
The same scene as three.js rasterization, in any browser or in-app WebView.
The web version isn’t a port. It is the same game, running as three.js.