QR Multiplex Lab
Three ways to share one screen between receivers: spread one file over colors and tiles, give each user their own channel, or layer a coarse and a fine code for near and far users. Simple version · Quiz mode
The base layer carries few bytes per frame, so keep its file small: under about 1 KB, such as a text message. The enhancement layer can be larger. Receivers need a sharp, close view to recover it.
Transmission settings
A smaller QR size has bigger squares and reads from farther away, but carries less per frame. With 2 or 4 tiles each code is drawn smaller, so choose a smaller level. The frame rate changes live while playing.
The screen cycles through all 7 QR sizes, about a second each. Receivers open the Receive tab and camera; each phone shows the largest level it reads reliably.
Choose the file or files for this scheme.
Open the camera and point it at the sender's screen. The page works out which scheme is being sent. For the layered scheme, stand far away to get only the base file, or close to get both.
Scheme: not detected yet.
You can read up to level
A level counts when at least 80 % of its frames are read. Note your distance to the screen with the level.
Record labelled runs for statistics. Each run starts decoding from scratch, logs every frame and every QR code read, and is kept on this phone until you clear it.
No run in progress.
| # | Label | Dist. (m) | Scheme | Time (s) | Frame loss | Module errors | Files | Completion (s) | GitHub |
|---|
Frame loss is averaged over the streams in a run. Module errors are raw, before QR error correction. The dataset holds every frame and QR read. To turn it into figures and tables, run the analysis script.
GitHub settings
Datasets go to a separate data repository, so a token shared with a class can't change this website. Use a fine-grained token limited to that repository, with Contents: Read and write permission only. The token stays in this phone's browser and is sent only to GitHub. Each save adds one dataset file, holding only the runs not saved before.