Two carriers
A beam you aim, and a tone that fills the room.
A screen streams QR codes into the other phone's camera at 5,424 bytes a second. Tones just above hearing carry 25, which is ample for acknowledgements and reaches round corners.
A progressive web app that moves files between two devices in one room over light and sound - no network, no account, no server.


A screen streams QR codes into the other phone's camera at 5,424 bytes a second. Tones just above hearing carry 25, which is ample for acknowledgements and reaches round corners.
Framing, CRC, acknowledgements, selective retransmit and end-to-end hash checks ride on both carriers. A fountain code rebuilds a file from any sufficient set of frames, so one sender can broadcast to a whole room.
An 18 to 21 kHz chirp ranges the distance between two phones, estimates reverberation and maps nearby walls by sonar as you turn. Every reading says whether it was measured or assumed.