Welcome to the mesh playground
Each circle is a device, like a phone with no signal and no Wi‑Fi. It can only reach the devices inside its radio range (the dashed ring), so a message crosses the crowd by being passed from device to device.
Every device runs the real Offline Protocol engine, compiled to WebAssembly. Nothing about forwarding is faked: you are watching the engine decide who carries what.
ana ben cai dev
How a message gets through
Send a message and it floods out: every device that hears it hands a copy on to its neighbors, one hop per round, until it reaches the recipient. The recipient then sends a receipt back, which is how the sender learns it was delivered.
message
receipt
retry
control
lost
A faint flicker is the engine's own housekeeping between neighbors. A red beam that sputters out is a frame the air lost.
Try it yourself
Double-click Double-tap add a device
Drag move it
Click Tap a device, then another, to send
Right-click Long-press remove a device
Or pick a sender and recipient under Send, on the left. The Network panel on the right follows every message to the end.
The controls, the network and the log live in the sheet at the bottom: drag it up, or tap a tab.
Now try to break it
Radio range Shrink it and the mesh splits into islands no message can cross.
Frames lost Make the air noisy and watch retries get messages through anyway.
Pause, Step one round Follow a message one hop at a time.
Every control has a ? beside it that says more.