Download

The client traces it.
On your own GPU.

Free clients that open a game from a link or a QR code and path-trace it on your device.

ThreeRT for macOS

macOS 14 or later · Apple silicon
  • Everything on threert.app, traced on your Mac
  • Hardware ray tracing on M3 and later
  • Includes the threert command line; updates itself

Looking for the build on this host…

ThreeRT for iPhone

iOS 17 or later · iPhone and iPad
  • Scan a game’s QR code and it opens
  • Hardware ray tracing on iPhone 15 Pro and later
  • Reloads on every save of your project

Looking for the build on this host…

ThreeRT for Steam Deck

SteamOS 3 · Linux x86_64 · Vulkan ray queries
  • Everything on threert.app, in Game Mode
  • Hardware ray tracing on the Deck’s own GPU
  • Tested on a Steam Deck; untested on desktop Linux

Looking for the build on this host…

ThreeRT for Android

Android 10 or later · arm64 · Vulkan ray queries
  • Everything on threert.app, with a controller or touch
  • For flagship chips with hardware ray tracing
  • Verified on a Snapdragon 8 Gen 2 handheld

Looking for the build on this host…

Scan, and it runs.

The client is a runtime, not one game. Like Expo Go for an app, it loads whatever project you point it at, and it loads it again every time you save.

  1. Run threert dev

    It bundles your game on every save, serves it on your network and prints a QR code.

  2. Scan the code

    With ThreeRT on the iPhone. On the Mac that runs the dev server, ThreeRT for macOS opens the game by itself.

  3. Traced, and live

    The same code is path-traced on the device. Save a change and every connected client reloads. The game’s logs print in your terminal.

$ threert dev
✓ built 3f2a9c1e · 412 KiB · 38 ms

  ThreeRT dev server · my-game
  Local   http://127.0.0.1:8790
  iPhone  threert://192.168.1.23:8790 (scan with the ThreeRT app)
  Web     http://192.168.1.23:8790/ (three.js, any browser)

  ✓ opened in ThreeRT for macOS
  editing game.ts — every save rebuilds and reloads every client

A link is all a game needs

The code carries threert:// and the dev server’s address. This one holds the example address from the terminal output; yours has your machine’s.

No ray tracing? Still the same game.

A device the client cannot trace on, and every browser, opens the same game as three.js: the dev server and every published package serve that page next to the code. See it on the apps at threert.app.