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
- AGPL-3.0
- repo
- repo ACTIVE6,881 stars
●●○○○ · an evening · AGPL-3.0 · 6,881 stars · repo ACTIVE
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 README's benchmark table lists about 418 KB/s sustained from a desktop monitor to a phone and about 199 KB/s phone to phone, each with a run report. It survives dropped frames thanks to fountain coding: the receiver collects roughly 1.15 times the minimum number of distinct frames, in any order, and rebuilds the file, so a dropped frame costs time, never correctness. The honest limitation, stated by the project itself: nothing is encrypted, and anything on the sending screen is readable by any camera pointed at it. What you gain is transfer without a shared network; what you do not gain is confidentiality. When it does not decode, the fix is usually on the sender: fewer bytes per frame, a lower frame rate, full brightness and a steady camera. Both devices also need compatible versions (0.5.0 changed the frame format). For moving a file between two devices that cannot or should not share a network, it is genuinely useful.
IN THE REPO
GOOD TO KNOW
- —The repository contains the complete web application source code (AGPL-3.0 licence).
- —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.
- —AGPL-3.0 licence: you can use and modify it, including commercially, but if you host a modified version for others you must publish your source.
- —The project has grown fast since the repository went public on 30 July 2026: v0.4.0 streams several codes at once and the README publishes benchmark runs with receipts (418.5 KB/s sustained desktop-to-phone).
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
More builds like this
All projectsGallery
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 a pasted text snippet up to 16 KB. Keep the sending screen at full brightness.)
- 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.)
KNOWN ISSUES
- If nothing decodes, the fix is usually on the sender: in Transfer settings drop bytes per frame to 1465 (the default is tuned for close-range phone-to-phone and fails on an ordinary monitor at arm's length), then drop the frame rate to 24, fill the camera view with the code, prop the phone up and turn the sending screen's brightness all the way up.
- 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.
- Your hardware sets the speed: the published records (about 418 KB/s desktop to phone, 199 KB/s phone to phone) used a 49-inch Odyssey G9 monitor and iPhone 17 Pro Max phones. Expect your own numbers to differ.
- 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.
- There is no back-channel: the sender does not know when the receiver has enough frames. The stream loops until you stop it; the receiver finishes on its own.
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 README keeps a benchmark table with run receipts: about 418 KB/s sustained from a desktop monitor to a phone (1 MB in 2.5 s) and about 199 KB/s phone to phone. Your own speed depends on the screen, the camera and the sender settings.
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 README now lists about 418 KB/s from a desktop screen to a phone using several QR codes at once. What would you use this for where a network path is impossible or undesirable?
Evan Crawley (Bash Alarmist)
Evan Crawley (Bash Alarmist) built Decimen to move files between two devices with nothing but a screen and a camera. He published the repository on 30 July 2026, it quickly passed 6,800 GitHub stars, and he has since added multi-code streaming, benchmark runs with receipts and a twelve-language interface.
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.
CompareeTEAM2mo agoedited
Practical notes from our verification: Decimen runs in the browser at decimen.app and sends files as a stream of animated QR codes, using fountain coding so a shaky hand or a missed frame only extends the transfer instead of breaking it. Current releases show several codes at once; the README benchmark lists about 418 KB/s sustained from desktop to phone and about 199 KB/s phone to phone. The single biggest limitation is stated plainly: nothing is encrypted, so encrypt anything sensitive yourself first. The repository is licensed AGPL-3.0, not MIT, and contributors sign a CLA. QR generation uses node-qrcode and decoding uses zxing-cpp. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.