Analysis updated 2026-08-13
Transfer a file between two devices that have no shared network connection.
Send a file to someone without installing an app or pairing devices.
Move a file across an air-gapped or offline system using only a screen and camera.
Study how fountain-coded QR streaming works as a screen-to-camera data protocol.
| bashalarmistalt/decimen-optical-transfer | pmndrs/leva | microsoft/tsyringe | |
|---|---|---|---|
| Stars | 5,941 | 5,940 | 5,947 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | easy | moderate |
| Complexity | 3/5 | 2/5 | 3/5 |
| Audience | vibe coder | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
No install needed to try it live at decimen.app, running locally requires Node and npm.
Decimen Optical Transfer sends files between two devices using nothing but a screen and a camera. One device displays the file as a fast animated stream of QR codes, and another device points its camera at the screen to reconstruct the file. There is no network connection between the devices, no app to install, no pairing process, and no permissions needed beyond access to the camera. The file effectively travels as light. You can try it directly at decimen.app on both devices, with nothing to install, and it works offline after the first visit. It can also be installed as an app on the home screen of both iOS and Android devices. It supports files up to 64 megabytes or pasted text, keeps the original filename and file type, compresses with gzip only when that helps, and verifies each file with a SHA-256 checksum before it is offered to the user. The interface is translated into twelve languages, including right-to-left languages like Arabic. Measured transfer speed is reported at around 418.5 KB per second sustained from a desktop screen to a phone camera. It is worth noting that neither the sending nor receiving side is encrypted. Anything shown on the sending screen can be read by any camera pointed at it, so the tool guarantees no network path rather than confidentiality. Under the hood, the sender streams what are called fountain-coded frames, based on a technique called Luby transform coding. Because a screen-to-camera connection has no way to signal back to the sender, the receiver just needs to collect enough distinct frames in any order to reconstruct the file, so any dropped frames simply cost time rather than breaking the transfer. The project is written in TypeScript and can be run locally with npm, including commands for development, testing, benchmarking, and building both a hosted site and standalone pages. It was built by a single developer and is released under the AGPL-3.0-or-later license as of version 0.4.0, though earlier releases remain available under the MIT license.
Decimen Optical Transfer sends files between devices using only animated QR codes on a screen and a camera, no network needed.
Mainly TypeScript. The stack also includes TypeScript, QR Codes, Fountain Coding.
You can use and modify it, but if you run a modified version as a network service, you must share your source code with users of that service.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly vibe coder.
This repo across BitVibe Labs
Verify against the repo before relying on details.