A file crosses the gap as light. No radio, no cable, no network.
Three codes ride in one image, one per colour channel, so every frame carries three times the data. Turn colour off if the receiving camera reads badly under artificial light.
The first pass sends every chunk once. After that it keeps going with mixed frames, so anything the camera missed can still be worked out. Leave it running until the receiver says it is done.
If the browser will not hand over the camera, film the sending screen with the phone's own camera app and load the clip here. Nothing is granted and nothing is served. A second clip can fill any gaps the first one left.
nothing loaded
Hold steady, fill the frame with the code, and let the camera focus. Missed frames cost nothing — the sender keeps producing new combinations until every chunk is filled in. Watch codes read per second: if it sits well below three times the camera frame rate, the codes are too fine for this distance.
This paints real colour frames, puts them through a simulated camera — lens blur, 4:2:0 chroma subsampling, sensor noise, gamma shift — then decodes them exactly as the camera path does and compares the result byte for byte. Use it to settle bytes per code and error correction before a real run. It reads the settings from the Send and Receive tabs.
Created by Sanaur Rahman