...или как я сделал протокол связи через свет с точностью 99.2 %
Когда мы говорим “оплата телефоном”, в голове сразу всплывает NFC или QR.
А что, если экран и фонарик сами могут обмениваться данными?
Без радиоволн, без Wi-Fi, без сети вообще.
Так появился Lightprint — протокол, который передаёт данные светом, а камера принимает их и распознаёт как уникальный “отпечаток”.
И всё это работает прямо в браузере, на чистом JavaScript.
⚙️ Как это работает
Lightprint — это Visible Data Communication (VDC):
экран или фонарик излучает модулированный свет,
камера его ловит и анализирует временной профиль яркости.
? 1. Режим Flicker (экран) — передача данных
Экран мигает цветами по схеме CS4 (Color Sequence 4).
Каждый кадр кодирует 2 бита информации — в виде цвета:
? Красный 01
? Зелёный 10
? Синий 11
⚫ Чёрный 00
Передаётся пакет формата:
HEADER + LENGTH + DATA + CRC8
? 2. Режим Stable (фонарик) — аутентификация по свету
Здесь ничего не мигает.
Фонарик светит стабильным белым светом, а LightprintEngine анализирует микропульсации (PWM) — невидимые глазу колебания, которые уникальны для каждого устройства.
Камера фиксирует эти микровибрации яркости и строит временной профиль.
Если профиль совпадает с эталонным шаблоном (через корреляцию Пирсона и DTW) —система считает, что источник света подлинный.
Так телефон можно аутентифицировать по фонарику — это как “световой отпечаток пальца”.
⚙️ Внутренности движка
LightprintEngine делает всё это на лету:
извлекает яркость (ROI);
фильтрует шум (EMA, high/low-pass);
считает стандартное отклонение, корреляцию;
вычисляет DTW для устойчивости к растяжению сигнала;
проверяет стабильность (SATURATION_THRESHOLD, UNDERSATURATION_THRESHOLD);
автоматически определяет режим Flicker или Stable.
? Почему это работает
Каждый источник света (экран, фонарик, лампа)
имеет свой цифровой почерк — из-за особенностей PWM-драйвера, частоты и шума.
Камера улавливает этот “почерк” — временную сигнатуру света.
Алгоритм сравнивает сигнал с базой и определяет:
“Это тот же источник или подделка"
? Результаты тестов
Точность распознавания 99.2 %
Время отклика ~50 мс
FPS приёма 30 fps
Скорость передачи (экран) ~30 бит/с
Скорость аутентификации (фонарик) < 0.5 с
Интернет: ❌ Не требуется
Bluetooth / NFC: ❌ Не используется
За развитием протокола можно следить в telegram канале
Комментарии (31)

kenomimi
30.10.2025 17:24LiFi сто лет как существует и весь перепатентован вдоль и поперек во всех своих проявлениях. Так что ничего нового, увы.

Flayt_334 Автор
30.10.2025 17:24Li-fi требует аппаратной поддержки, ligthprint в отличие от него, программный протокол, работающий в web, это удобно, кроме того протокол работает на уровне визуальной яркости / цвета — через ШИМ, мерцание или цветовую модуляцию

GidraVydra
30.10.2025 17:24Запатентован принцип передачи информации, а аппаратно или программно формируются кадры - чисто вопрос технической реализации.

Tsimur_S
30.10.2025 17:24Какой еще принцип? Передача информации светом восходит как минимум к 18 веку а если учитывать сигнальные костры то к каменному веку.

arx3889
30.10.2025 17:24Каждый источник света (экран, фонарик, лампа)
имеет свой цифровой почерк — из-за особенностей PWM-драйвера, частоты и шума.
Камера улавливает этот “почерк” — временную сигнатуру света.Вы считаете, что произвольная камера будет способна это улавливать?
И не всегда используется ШИМ чтобы чем-то светить (к счастью).
Flayt_334 Автор
30.10.2025 17:24Даже если экран не настолько ШИМ, он всё равно излучает свет с небольшими колебаниями —
Lightprint умеет анализировать эти колебания и узнавать источник по характеру свечения
Со временем оказывается, что даже два одинаковых телефона (одна модель, один уровень яркости) дают чуть разный «почерк» свечения — из-за погрешностей драйверов, сенсоров, матриц. Именно это делает возможной аутентификацию по свету, а не просто по коду или картинки

sic
30.10.2025 17:24Теперь спросите у LLM не почему это возможно (хоть и с некоторыми оговорками), а зачем это нужно, когда современный смартфон и так буквально напичкан средствами аутентификации с 100% надёжностью.
И второй вопрос, ну это уже больше ради развлечения, а что если смартфон ну немного так чуть чуть искупается, или со стола упадёт, и профили шим чуть чуть изменятся?

abutorin
30.10.2025 17:24А потом в один момент из-за погрешности ваш монитор или телефон начинает мерцать "по другому" и все, приехали.

Flayt_334 Автор
30.10.2025 17:24Естественно камера не идеальна, в обычных условиях она может выдавать не настолько отличный результат но можно это откалибровать, потенциал есть для развития

arx3889
30.10.2025 17:24Ладно. Намек No. 2 и последний: сколько кадров за единицу времени вы можете получить с дефолтной вебки или камеры смартфона в своё ПО для анализа?

notwithstanding
30.10.2025 17:24Он же прямо написал
>Скорость передачи (экран) ~30 бит/с

arx3889
30.10.2025 17:24Тогда уж надо цитировать вот это, какие еще биты?
FPS приёма 30 fps
Хотя малопонятно, какого приема, на чём, под чем...
Суть в том, что с частотой кадров, которые выдает дефолтная камера (60-30-25 fps, а то и меньше, смотря сколько позволит затвор в тех или иных условиях), он никакие микропульсации никогда не померит. Но в статье "герцы" вообще не встречаются, поэтому непонятно, какие масштабы там анализируются.
Для общего развития посмотрите, например, заметку уважаемого @AlexeyNadezhin про пульсации источников света: https://habr.com/ru/companies/lamptest/articles/416349/.
Статья и тема - какой-то очередной сезонный бред.

notwithstanding
30.10.2025 17:24Не отследил ваше прошлое сообщение, не понял, что вы по фонарик. Я режим светофора имел в виду. Он выглядит вполне правдоподобным. Правда, легко придумать что-то гораздо более эффективное на том же принципе, cimbar, например.

notwithstanding
30.10.2025 17:24Сколько времени займет аутентификация с вашей скоростью передачи данных?

inkelyad
30.10.2025 17:24А теперь то же самое, но на звуке, pls.
Писк разных БП, шум за окном, можно даже попросить пользователя к собственной тушке микрофон приложить, чтобы его сердце услышать, зубами поскрипеть тоже в микрофон и так далее и тому подобное.
</s>
Было бы гораздо более интересно (как статья - практическая полезность была бы столь же под большим вопросом.), если бы сюда еще прилагался рассказ 'как сделать железку-авторизатор' на этом принципе. Которая не случайными шумами, а вполне осмысленно чем-то мигает или, как я выше предложил, пищщит.

NutsUnderline
30.10.2025 17:24подобный способ передачи данных, с экрана но на фотодатчик был задействован в какойто системе чуть ли не в 90е, в Юный Техник что ли статья была. Родич "светового пера" из дремучих времен, и световых "пистолетов" из чуть менее дремучих времен. еще был какой то девайс на которые данные передавали миганием лампочек на клавиатуре

Flayt_334 Автор
30.10.2025 17:24Благодарю за информацию, похожие идеи были в разные годы, но никто так и не смог сделать единый протокол

investmenus
30.10.2025 17:24У меня есть своя собственная математическая модель, которая лучше и точнее метода Пирсона, для определения корреляции, если интересно могу поделиться.

riky
30.10.2025 17:24Надо попробовать сделать wifi provisioning через фотодиод и мигание части экрана смартфона...

Alexey_U
30.10.2025 17:24Похоже на приложение, где можно обмениваться текстом по азбуке морзе. Удалил. Сейчас ничего не могу сказать про них. По-моему их минимум 2 было.
sic
У Вас из черновиков вывалилось.