Decimen Optical Transfer: fountain-coded QR file transfer
Summary
Decimen Optical Transfer is an open-source web app that sends files between devices using animated QR codes and fountain codes, requiring only a screen and camera with no network connection. It supports files up to 64 MB, works offline as a PWA, and achieves around 130 KB/s transfer rates.
View Cached Full Text
Cached at: 08/06/26, 08:00 AM
bashalarmistalt/decimen-optical-transfer
Source: https://github.com/bashalarmistalt/decimen-optical-transfer
Decimen Optical Transfer: fountain-coded QR file transfer
Send a file between two devices using nothing but a screen and a camera. One page displays the file as an endless stream of animated QR codes; another device points its camera at it and reconstructs the file. No network path between the devices, no app, no pairing, no permissions beyond the camera. The payload travels as light.
Try it
→ decimen.app
Open it on both devices and go — nothing to install. Works offline after the first visit, and installs as an app on both iOS and Android if you want it on a home screen.
Files up to 64 MB (or a pasted text snippet), filename and media type preserved, gzip only when it helps, SHA-256 verified before anything is offered — and received video plays right in the page. Extracted from a larger experiment that reached 128 KB/s phone-to-phone.
Mid-transfer: a phone pulling a file out of the air at 130 KB/s.
Neither mode is encrypted: whatever is on the sending screen is readable by any camera pointed at it. The property this gives you is no network, not confidentiality — see privacy.
Documentation
Using it — quick start · sending · receiving · troubleshooting · install & offline · privacy
How it’s built — architecture · protocol · platform quirks · build & release
The short version of the protocol: a screen-to-camera link has no back-channel, so the sender streams fountain-coded frames (Luby transform) — the receiver collects any ~K·1.15 distinct frames in any order and peels the file out. Dropped frames cost time, never correctness.
Run it yourself
npm install
npm run dev # https dev server with HMR
npm run serve # build, then serve the production bundle
npm run demo # demo mode: only the bundled payloads can be sent
npm test # golden wire-format vectors and unit tests
npm run build # the hosted site → dist/
npm run build:standalone # both self-contained pages → dist-standalone/
npm run build:all # everything
Open https://localhost:5173/send/ on the sending device and the printed
Network URL on the receiving phone (accept the self-signed certificate
once). Walkthrough: quick start.
Similar projects
The concept here was arrived at independently. It turns out several people have had similar ideas, and their takes are all worth a look:
- mohankumarelec/airgapped-qr-code-transfer: browser-based QR file transfer with compression and sequential chunking. Discovered after publicly demoing this project; convergent evolution in action.
- divan/txqr (2018): animated QR plus fountain codes in Go, with two excellent write-ups on why fountain coding beats sequential looping.
- sz3/libcimbar: goes past QR entirely with a custom high-density color code purpose-built for this channel.
Built by Evan Crawley (Bash Alarmist), with node-qrcode and zxing-wasm.
License
MIT
Similar Articles
@QingQ77: Transferring files between two devices that can't access the internet is too troublesome, so just have the sender encode the file into a set of dynamic QR codes, and the receiver can scan the screen once to receive it. https://github.com/deedy/qr-data-transfer…
QRFerry is an open-source browser-based tool that transfers files between two offline devices by encoding data as a live animated QR stream, using RaptorQ fountain coding and WebAssembly.
Show HN: ShadowCat – file transfer through QR Codes in a Browser
ShadowCat is an offline single-file HTML page for transferring data between devices via QR codes, intended for old phones with functional cameras and browsers but broken radios.
Dithered QR Codes
This article introduces a dithered QR code generator that lets you embed photos into QR codes while keeping them scannable, explaining the underlying techniques such as function patterns, Bayer dithering, and Floyd-Steinberg error diffusion.
Converting Text to image to save on token usage
DeepSeek's OCR paper introduces 'optical compression,' showing that an image token can encode roughly 10 text tokens' worth of information with high accuracy, making images of text more token-efficient than raw text. Community tools and a new app, Imagizer, demonstrate this approach in practice.
Completely rewrote NotesQR end-to-end: Anonymous P2P file sharing that your AI agents can now use too
NotesQR, an anonymous P2P file sharing tool built on WebRTC, has been completely rewritten with faster handshakes, plus a new CLI and MCP integration so AI agents like Cursor or local scripts can send and receive files programmatically.