...или как я сделал протокол связи через свет с точностью 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 канале
Комментарии (13)
 - kenomimi30.10.2025 17:24- LiFi сто лет как существует и весь перепатентован вдоль и поперек во всех своих проявлениях. Так что ничего нового, увы.  - Flayt_334 Автор30.10.2025 17:24- Li-fi требует аппаратной поддержки, ligthprint в отличие от него, программный протокол, работающий в web, это удобно, кроме того протокол работает на уровне визуальной яркости / цвета — через ШИМ, мерцание или цветовую модуляцию 
 
 - arx388930.10.2025 17:24- Каждый источник света (экран, фонарик, лампа) 
 имеет свой цифровой почерк — из-за особенностей PWM-драйвера, частоты и шума.
 Камера улавливает этот “почерк” — временную сигнатуру света.- Вы считаете, что произвольная камера будет способна это улавливать? 
 И не всегда используется ШИМ чтобы чем-то светить (к счастью). - Flayt_334 Автор30.10.2025 17:24- Даже если экран не настолько ШИМ, он всё равно излучает свет с небольшими колебаниями — - Lightprint умеет анализировать эти колебания и узнавать источник по характеру свечения - Со временем оказывается, что даже два одинаковых телефона (одна модель, один уровень яркости) дают чуть разный «почерк» свечения — из-за погрешностей драйверов, сенсоров, матриц. Именно это делает возможной аутентификацию по свету, а не просто по коду или картинки  - sic30.10.2025 17:24- Теперь спросите у LLM не почему это возможно (хоть и с некоторыми оговорками), а зачем это нужно, когда современный смартфон и так буквально напичкан средствами аутентификации с 100% надёжностью. - И второй вопрос, ну это уже больше ради развлечения, а что если смартфон ну немного так чуть чуть искупается, или со стола упадёт, и профили шим чуть чуть изменятся? 
  - abutorin30.10.2025 17:24- А потом в один момент из-за погрешности ваш монитор или телефон начинает мерцать "по другому" и все, приехали. 
  - saege5b30.10.2025 17:24- ШИМ может меняться от уровня выставленной яркости. - А ещё есть профили энергосбережения, экологические профили, профили здоровья... 
 
  - Flayt_334 Автор30.10.2025 17:24- Естественно камера не идеальна, в обычных условиях она может выдавать не настолько отличный результат но можно это откалибровать, потенциал есть для развития  - arx388930.10.2025 17:24- Ладно. Намек No. 2 и последний: сколько кадров за единицу времени вы можете получить с дефолтной вебки или камеры смартфона в своё ПО для анализа? 
 
 
 - inkelyad30.10.2025 17:24- А теперь то же самое, но на звуке, pls. 
 Писк разных БП, шум за окном, можно даже попросить пользователя к собственной тушке микрофон приложить, чтобы его сердце услышать, зубами поскрипеть тоже в микрофон и так далее и тому подобное.
 </s>
 Было бы гораздо более интересно (как статья - практическая полезность была бы столь же под большим вопросом.), если бы сюда еще прилагался рассказ 'как сделать железку-авторизатор' на этом принципе. Которая не случайными шумами, а вполне осмысленно чем-то мигает или, как я выше предложил, пищщит.
 
           
 

sic
У Вас из черновиков вывалилось.