Skip to content
AJ Uppal
← Back to selected work

Personal project / Multiplayer

Sixty Seconds.

Draw on a shared canvas for sixty seconds, then save a replay.

Open project Live in a browser

My work

The real-time server, shared drawing surface, replay and share card.

Working with

Python stdlib · WebSocket · Canvas · Fly.io

Inside the build

A round, recorded as events.

Context

Strangers need to see the same strokes as they arrive, then keep a faithful record after the round ends.

How it works

Each round is recorded as events. The live drawing, replay and share card all use that transcript.

In the work

A deployed Python WebSocket service connects the browsers. The capture is produced by joining a round from two independent browser contexts.

One history
The browser reconstructs both the live canvas and the replay from the recorded round events.
Small server
The WebSocket service uses the Python standard library.

Keep exploring.

The whole collection →
A sailboat beneath a rising sun, with a warm path of light across the ocean in Saltline. saltline Simulation / multiplayer Ember Wilds in Fallowmere at dusk: a level-30 character in a voxel landscape. Ember Wilds Voxel MMORPG murmuration in ribbon style: a dense violet and white form of drawn-out particle streaks against black, filling most of the frame. murmuration Audio / WebGPU