GNU Radio заработал в браузере: без Python, установки и сервера

На сайте gnuradioworld.com появился редактор схем обработки сигнала в стиле GNU Radio Companion, фирменного графического редактора GNU Radio, одного из главных инструментов software-defined radio (SDR, радио с программным управлением): в нём из готовых блоков собирают цепочку обработки сигнала для приёмника или передатчика. Здесь этот редактор и вся среда исполнения работают целиком в браузере: страница открывается в обычной вкладке, и собирать или запускать SDR-схему можно без Python, без установки чего-либо на компьютер и без собственного сервера. Технически это стало возможно потому, что DSP-стек GNU Radio, набор блоков обработки сигнала, и графические виджеты, которые в десктопной версии рисует Qt, скомпилированы в WebAssembly, байт-код, который браузер выполняет почти с той же скоростью, что и нативный код.

После сборки схемы достаточно нажать кнопку Run, появляются те же графики, что и в десктопном GNU Radio: живой спектр сигнала, водопадная диаграмма (waterfall) и диаграмма созвездия (constellation). Формат файлов полностью совместим с настольной версией: сайт читает и сохраняет те же файлы .grc, так что схему, собранную в браузере, можно открыть в обычном GNU Radio Companion, и наоборот. У кого нет своего SDR-приёмника, на сайте есть готовые примеры схем и записанные IQ-данные (сырые оцифрованные сигналы), на которых можно опробовать редактор без какого-либо оборудования.

У кого приёмник уже есть, тот может подключить его напрямую: сайт умеет работать с SDR-устройствами RTL-SDR, PlutoSDR и HackRF через браузерный интерфейс WebUSB, тоже без установки отдельных драйверов.

У материала заметные пробелы. На странице нигде не указано, кто разработал проект, ни имя автора, ни команда, ни компания не названы; не указана дата запуска; ничего не сказано об условиях лицензирования и о том, бесплатный сайт или платный; нет и сравнения быстродействия WebAssembly-сборки с нативным GNU Radio. Судить о заинтересованности аудитории можно по реакции на Hacker News: примерно за 16 часов пост набрал 196 голосов и 27 комментариев, для нишевой темы SDR это заметный интерес, но независимого обзора или проверки заявленного в источнике нет.

Ключевые факты

  • Редактор схем в стиле GNU Radio Companion работает целиком в браузере: DSP-стек GNU Radio и графические виджеты интерфейса скомпилированы в WebAssembly.
  • SDR-схему (software-defined radio) можно собрать и запустить без Python, установки чего-либо на компьютер и без своего сервера.
  • После запуска схемы доступны живые графики: спектр сигнала, водопадная диаграмма (waterfall) и диаграмма созвездия (constellation).
  • Формат файлов совместим с десктопным GNU Radio, сайт читает и пишет те же файлы .grc, а для работы без своего оборудования есть готовые примеры схем и IQ-записи.
  • Через WebUSB сайт напрямую подключается к SDR-приёмникам RTL-SDR, PlutoSDR и HackRF.

Почему это важно

GNU Radio, один из главных инструментов software-defined radio: в нём собирают и проверяют схемы обработки сигнала для приёмников и передатчиков. Смысл этого запуска, в контрасте, который прямо обозначен в описании: обычно, чтобы попробовать GNU Radio, нужно ставить сам GNU Radio и Python, а здесь DSP-стек и графический интерфейс скомпилировали в WebAssembly и уместили в браузерную вкладку, открыл сайт и уже собираешь схему, без установки чего-либо. Это заодно показывает, что даже такой тяжёлый десктопный инструмент с графическим интерфейсом на Qt технически можно целиком перенести в браузер, сохранив совместимость файлов с оригиналом.

Кому это важно

В первую очередь, радиолюбителям и инженерам, у которых уже есть SDR-приёмник RTL-SDR, PlutoSDR или HackRF: сайт подключается к ним напрямую через WebUSB, без установки драйверов и десктопного софта. Дальше, студентам и преподавателям курсов по цифровой обработке сигналов: готовые примеры схем и IQ-записи позволяют показать, как работает SDR, на любом компьютере с браузером, в том числе там, где ничего ставить нельзя. И тем, кто уже пользуется десктопным GNU Radio, можно быстро собрать или показать схему в браузере, а затем открыть тот же файл .grc в обычном GNU Radio Companion.

Как это применить

Порядок действий простой: открыть gnuradioworld.com в браузере, собрать схему из блоков или загрузить готовый пример и нажать кнопку Run, появятся графики спектра, водопада и созвездия. Своего SDR-приёмника нет, можно взять одну из готовых IQ-записей и прогнать обработку на ней. Приёмник есть (RTL-SDR, PlutoSDR или HackRF), его можно подключить напрямую через WebUSB. Собранную схему можно сохранить как обычный файл .grc и потом открыть в десктопном GNU Radio Companion. Важная оговорка: источник ничего не говорит ни о цене, ни о лицензии, бесплатен сайт или платен и на каких условиях распространяется, не указано; это стоит проверить отдельно перед серьёзным использованием.

Можно ли доверять

Текст, это описание самого сайта gnuradioworld.com, а не независимый обзор: сторонней проверки заявленного в источнике нет. При этом описание опирается на конкретные, проверяемые технические детали, WebAssembly-сборку DSP-стека, совместимость файлов .grc, поддержку конкретных моделей SDR-приёмников через WebUSB, а не на общие обещания. Косвенный сигнал доверия добавляет реакция аудитории: на Hacker News пост примерно за 16 часов набрал 196 голосов и 27 комментариев, заметный интерес для нишевой темы SDR, хотя сам по себе он не заменяет независимую проверку. При этом на странице не указано, кто автор проекта, ни имя, ни команда, ни компания, так что за инструментом не стоит публично известное имя или организация, на репутацию которых можно было бы опереться.

Риски и подводные камни

Главный пробел источника, анонимность: на сайте не назван ни разработчик, ни команда, ни компания, поэтому неясно, кто поддерживает проект и как долго. Не указаны ни лицензия, ни цена, непонятно, останется ли сайт бесплатным и можно ли использовать его код или сервис в собственных проектах. SDR-оборудование при этом подключается через WebUSB к сайту без публично названного владельца, прежде чем давать браузеру доступ к своему приёмнику, уместна обычная осторожность, как с любым сторонним веб-сервисом, запрашивающим доступ к USB-устройству. Источник также не сравнивает быстродействие WebAssembly-сборки с нативным GNU Radio, поэтому для тяжёлых схем обработки сигнала в реальном времени задержки и нагрузка на браузер остаются неизвестными.