Training in the browser
Where the agent runs, where it is saved, and what happens when you walk away.
Where it runs
The engine and the agent share a Web Worker, off the main thread, drawing into the page through an OffscreenCanvas. The interface stays responsive because none of the work happens on the thread that renders it.
The cost is your machine, not ours. Training is your CPU, which is the reason the agent is yours.
- Doom, compiled to wasm
- The policy network
- Learning between runs
- Draws the canvas
- Handles the controls
- Stays responsive
One agent per browser
There is a single trainer for the whole tab. The trainer page and the experiment page are two views of the same agent, not two agents, so walking between them does not start a second run or split your progress.
Leaving the page it started on does not stop it. Training continues while you browse.
Where the weights live
Saved locally, in IndexedDB, keyed by wallet and level. They are written periodically while training and reloaded when you come back, so a closed tab is a pause rather than a reset.
They stay on your machine until you submit. Submitting uploads that one policy for verification.
Speed
The engine can be run faster than real time. Every frame is still rendered at every speed, because a viewport that skips frames to go faster is unwatchable, and watching it is most of the point.

