POINT ONE PHONE AT ANOTHER PHONE'S SCREEN AND THE FILE JUST ARRIVES
Point one phone at another phone's screen and the file just arrives — no network, no pairing, no app.
by Evan Crawley (Bash Alarmist)
SoftwareAutomation
- difficulty
- ●●○○○
- time
- an evening
- license
- MIT
- repo
- repo ACTIVE4,728 stars
●●○○○ · an evening · MIT · 4,728 stars · repo ACTIVE
Partner
COMPAREE VERDICT
Decimen Optical Transfer is exactly what it says: a web page that turns a file into an animated stream of QR codes on one device, and a camera view on another device that rebuilds the file from those codes. No network path between the devices, no pairing, no permissions beyond the camera. Files up to 64 MB, filename and media type preserved, SHA-256 verified before anything is handed to you. The author's own demo shows 365 KB in 2.6 seconds at 140.42 KB/s. The reason it survives dropped frames is fountain coding: each QR frame carries a random XOR mix of file blocks, and collecting roughly 1.15 times the minimum number of distinct frames, in any order, is enough to reconstruct the whole file. A dropped frame costs time, never correctness. The honest limitation, stated by the project itself: nothing here is encrypted. Anything on the sending screen is readable by any camera pointed at it. What you gain is air-gapped transfer without a shared network; what you do not gain is confidentiality. If the file is sensitive, encrypt it yourself first. The one thing most likely to go wrong is ambient light: bright sunlight or a poorly positioned screen can make the QR codes unreadable. For someone who needs to move a file between two devices that cannot or should not share a network, this is a weekend well spent.
IN THE REPO
NOT IN THE REPO
- —The repository contains the complete web application source code (MIT license).
- —Works as a live PWA at decimen.app — no build step required to use it.
- —Documentation includes usage instructions and technical explanation of the fountain coding approach.
- —No encryption is implemented; whatever is on the sending screen is readable by any camera pointed at it.
- —MIT license permits commercial use.
- —The project is a working proof-of-concept extracted from a larger experiment; some features from that experiment (denser frames, 120 fps ProMotion, stacked codes) are not in the current release.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Gallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Open decimen.app on both devices (Works offline after the first visit; installs as a PWA on iOS and Android.)
- 2.On the sending device, select or paste the file or text you want to transfer(Files up to 64 MB, or text snippets up to 4 MB.)
- 3.On the receiving device, point the camera at the sender's screen(Grant camera permission if prompted. The app will start capturing and reconstructing the file automatically.)
- 4.Wait for the transfer to complete — the receiver will show progress and verify the file with SHA-256 before offering it(A dropped frame costs time but never breaks the transfer.)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
Partner · KickstarterCodeeBot: build the robot from Lego-compatible bricks and program it by hand; a GPT tutor explains each step.
KNOWN ISSUES
- Ambient light matters: bright sunlight or glare on the sender's screen can make the QR codes unreadable. Transfer in a normally lit room, not outdoors in direct sun.
- Nothing is encrypted: whatever is on the sending screen is readable by any camera pointed at it. If the file is sensitive, encrypt it yourself before sending.
- Screen brightness and refresh rate affect speed: the author's experiment reached 186 KB/s with a 120 Hz ProMotion display, but the current release uses standard QR density and frame rates.
- The receiver needs a steady hand or a prop: the camera must stay pointed at the screen long enough to collect ~1.15x the minimum number of frames. A shaky hand extends the transfer time.
- File size limit is 64 MB: larger files will not fit. Split them or use a different method.
- No progress sync between devices: the sender does not know when the receiver has enough frames. The sender just loops until you stop it manually.
Does this work if the devices are on different networks or completely offline?
Yes. The devices do not communicate over any network. One shows QR codes, the other reads them. That is the entire link.
Is the transfer secure or encrypted?
No. Anything on the sending screen is readable by any camera pointed at it. If you need confidentiality, encrypt the file before sending it.
What happens if I move the camera or drop frames?
The transfer takes longer, but the file is not corrupted. Fountain coding means the receiver can collect any ~1.15x the minimum number of distinct frames in any order and still reconstruct the whole file.
Can I send a video or an image?
Yes. Any file type up to 64 MB. The receiver gets the filename and media type, and a received video plays right in the page.
How fast is it in practice?
The author's demo shows 365 KB in 2.6 seconds (140.42 KB/s) capturing at 60 fps. The larger experiment reached 186 KB/s with a propped phone and a 120 Hz sender, but those optimizations are not in the current release.
Do I need to install anything?
No. Open decimen.app on both devices. It works as a PWA and installs itself if you want it to.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
The author's demo transferred 365 KB in 2.6 seconds at 140.42 KB/s, but the larger experiment reached 186 KB/s with a propped phone and denser frames. What would you use this for where a network path is impossible or undesirable?
Evan Crawley (Bash Alarmist)
Evan Crawley built Decimen Optical Transfer after getting tired of streaming quality and ads in music players and wanting phone-to-phone file transfer without both phones being on the same network. He realised rapidly flashing QR codes might work and used Claude Code to build the working proof of concept in one night. He posted it to r/ClaudeAI on 30 July 2026, where it received 6,808 upvotes and 355 comments.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.

CompareeTEAM18d agoedited
Practical notes from our verification: the project works exactly as described at decimen.app — we transferred a 2.1 MB image between an iPhone and a MacBook in under 20 seconds with no setup beyond opening the page. The fountain coding approach means a shaky hand or a missed frame just extends the time, never breaks the transfer. The single biggest limitation is the one the project states plainly: nothing is encrypted, so do not send anything sensitive without encrypting it yourself first. The repository is MIT licensed and dependencies are node-qrcode and zxing-wasm, both well-maintained libraries.