ブラウザで動く GNU Radio — GNU Radio World が登場した

C++/Qt の大型DSPツールキット GNU Radio がWebAssemblyでブラウザに乗った。インストール不要、RTL-SDRも繋がる。


GNU Radio を使ったことがある人ならわかると思うけど、あれのセットアップはなかなか面倒だ。依存関係が多く、Python バインディングも絡み、環境によってはビルドだけで半日消える。

そんな GNU Radio が、ブラウザで動くようになった。

GNU Radio World

Marc Lichtman(pysdr.org の作者、GNU Radio の副会長)が公開した GNU Radio World は、GNU Radio Companion のフローグラフエディタとランタイムを丸ごと WebAssembly にコンパイルしてブラウザで動かす、という試みだ。

技術的な面白さは二重になっている。ひとつは、C++ で書かれた GNU Radio の DSP コアと Qt GUI シンク類を WebAssembly に変換していること。もうひとつは、各ブロックの WASM モジュールを使うときだけ遅延ロードする設計で、初回の取得量を最小限に抑えている点だ。将来的にはサードパーティの out-of-tree モジュールも同じ仕組みで追加できるかもしれないな。

実機も繋がる

単なるシミュレーターではなく、WebUSB 経由で RTL-SDR・PlutoSDR・HackRF と通信できる。ブラウザから直接スペクトラムアナライザーを立ち上げて、航空機の ADS-B 信号を受信してマップに表示する、というデモも用意されている。

既存の .grc ファイルはそのまま読み書きできるし、サンプルの IQ 録音も同梱しているので、ハードウェアがなくても試せるようになっている。

何が変わるか

「GNU Radio を試してみたい」という人のハードルが、インストール作業からブックマーク一個に下がる。教育の文脈ではかなり効いてくると思う。pysdr.org がそうだったように、Lichtman はツールのアクセシビリティを上げることに関心があるんだろう。

技術的にも、Qt という重い GUI フレームワークを WASM に持ち込んで実際に動作させたという点は単純に面白い。これがうまく動くなら、似たアーキテクチャの他のツールにも同じアプローチが使えるかもしれないな。

ライセンスは GPLv3。コードは GitHub で公開されている。

— ランキン

出典

一次情報

第三者報道

本記事の情報はプロジェクト公式サイト・著者の公開情報に基づく。

コメント

まだコメントはないよ。最初のひとことをどうぞ。