Distributed Donut
A spinning ASCII donut, rendered live by a fleet of browsers. Your tab pitches in CPU to compute frames — the server owns the timeline and streams the result back to everyone.
buffer
—s
Seconds of rendered frames queued in your browser to keep
playback smooth despite network jitter.
playback
—fps
Frames per second your browser is currently drawing to the
screen.
frames drawn
0
Total frames your browser has drawn since it connected.
your task
#—
ID of the most recent frame batch the server asked your browser
to render.
fleet
—live
How many browser tabs are connected and helping render right
now.
server buffer
—%
How full the server's shared frame buffer is, from 0 to
100%.
01
connect — your browser joins over WebSocket and spawns a Web Worker.
02
render — the server assigns a range of frames; the worker does the math off-thread.
03
broadcast — finished frames land in a ring buffer and stream to every tab.