Разработчик собрал прототип передачи файлов между смартфонами через QR-коды — без установки приложений и настройки сети
Скорость обмена достигает 190 КБ/с при 60 кадрах в секунду: всё работает прямо в браузере через камеру устройства
Метод опирается на фонтанные коды (fountain codes) для устойчивости к потерям кадров, а каждый кадр несёт служебный заголовок с метаданными сессии
В режиме «с рук» скорость составляет около 128 КБ/с, а при неподвижной установке устройств — до 186 КБ/с
Разработчик собрал рабочий прототип системы передачи данных, которой не нужны ни специальные приложения, ни настройка сетевого подключения, ни сопряжение устройств — из разрешений требуется только доступ к камере. Информация передаётся «по воздуху» почти буквально: одно устройство выводит на экран поток быстро сменяющихся QR-кодов со скоростью до 60 кадров в секунду, а второе считывает их камерой прямо в браузере. По опубликованным на GitHub тестам автора под ником bashalarmistalt, такой обмен разгоняется до 190 КБ/с. Технику передачи «экран-в-камеру» между двумя устройствами назвали Decimen Optical Transfer: fountain-coded QR file transfer.
Опробовать решение можно по адресу decimen.app: веб-приложение открывается сразу на обоих смартфонах, кэшируется после первого запуска и дальше работает без интернета. Написано оно на TypeScript и распространяется под свободной лицензией MIT. Проект на GitHub связан с публикацией на Reddit пользователя Alstroph — судя по всему, это тот же человек; в его посте есть наглядное видео с демонстрацией передачи файла через QR-коды.
Как это работает
Ключевую роль в методе играют «фонтанные коды» (fountain codes) — разновидность помехоустойчивого кодирования, а точнее LT-коды (Luby Transform). Тонкость в том, что канал здесь односторонний: принимающее устройство физически не может попросить отправителя повторить потерянный кадр. Фонтанные коды снимают эту проблему — получателю достаточно поймать камерой любое достаточное число кадров, чтобы собрать исходный файл. Пропущенные, смазанные, повторившиеся или пришедшие не по порядку кадры не ломают передачу, а лишь немного удлиняют её: потерянный кадр стоит времени, но не целостности данных.
Каждый QR-кадр самодостаточен. В него зашит служебный заголовок размером 20 байт — с идентификатором сессии, порядковым номером, количеством и размером блоков, длиной файла и хэшем. Благодаря этому приёмник может подключиться к уже идущему потоку или сбросить состояние, когда началась новая сессия. Собранный файл проверяется по контрольной сумме SHA-256, прежде чем его предложат сохранить.
Источник изображения — tomshardware.com
По словам автора, приложение он собрал с помощью Claude Code: это кэшируемая веб-страница, которая запускается в браузере на обоих смартфонах после выдачи доступа к камере. Идея, по его признанию, родилась из желания получить «способ передавать файлы между телефонами, не загоняя их в одну сеть», — после чего он остановился на варианте с «быстро мигающими QR-кодами». Публичная демо-версия — это компактная выжимка из более крупного эксперимента: полная сборка использует node-qrcode для генерации кодов и библиотеку zxing-cpp, скомпилированную в WebAssembly, для распознавания. Последнее пришлось вынести в отдельные фоновые обработчики, поскольку Safari так и не обзавёлся встроенным механизмом чтения штрихкодов.
Скорость и тонкая настройка
В прототипе есть и подсказки по тому, как выжать максимум. В своих замерах разработчик задействовал iPhone с дисплеем Apple ProMotion и наложенными друг на друга кодами: удерживая устройства в руках, он получил около 128 КБ/с. Если же отправитель и получатель зафиксировать неподвижно, скорость поднималась до 186 КБ/с, а в отдельных тестах — почти до 190 КБ/с. Приложение принимает произвольные файлы объёмом до 64 МБ (или фрагмент текста), сжимает их через gzip только тогда, когда это действительно уменьшает «оптическую» нагрузку, и сохраняет исходное имя файла.
Идея не новая — но быстрая
Автор честно признаёт, что похожие проекты появлялись и раньше, но настаивает: концепцию своего решения, собранного с помощью Claude Code, он проработал самостоятельно. После публикации демо на Reddit в комментариях быстро вспомнили сразу нескольких предшественников — от проекта divan/txqr 2018 года (анимированные QR-коды и фонтанные коды на языке Go) до sz3/libcimbar, где ради плотности вообще отказались от QR в пользу собственного цветного кода. Тем не менее версия Decimen выделяется скоростью: по замерам она заметно опережает более ранние открытые реализации.
QR-коды всё чаще применяют не только для передачи, но и для хранения данных. Так, компания Cerabyte использует микроскопические QR-подобные метки в своём сверхдолговечном керамическом хранилище — ещё одно напоминание о том, что у привычного «квадрата с точками» куда больше применений, чем оплата счёта в кафе.



















