RuView — WiFiの電波反射から人体検知やバイタル測定を行うRust製システム
ruvnet/RuView
★ 103,552 ・ Rust ・ MIT
概要
RuViewは、空間内に飛び交う一般的なWiFi信号の乱れを解析し、映像カメラや身につけるウェアラブル端末を一切使わずに、人の存在検知やバイタルサイン(呼吸・心拍)の測定、室内での動作追跡を可能にするセンシングプラットフォームです。コアコンポーネントがRustで実装されています。
通常のWiFiルーターから発信される電波は、室内の障害物や人体に反射しながら伝播します。RuViewは、ESP32などの安価なマイクロコントローラを用いてWiFiのCSI(Channel State Information:伝搬路情報)を取得し、人が呼吸したり動いたりした際に生じる微小な波形の変化を解析します。
「プライバシーを最優先しながら見守りやホームオートメーションを行いたい開発者」や、「安価なIoTハードウェアと電波物理学を組み合わせた空間知能(Spatial Intelligence)に関心のあるエンジニア」に向けた設計となっています。
主な特徴
-
カメラ・ウェアラブル不要の非接触センシング 電波の反射波を捉えるため、暗闇や壁越しであっても人の存在や入退室を検知できます。また、睡眠時や着座時の呼吸数や心拍数の変化を非接触で捉えることが可能です。
-
主要スマートホーム規格とのネイティブ統合 Home Assistant(MQTT経由)をはじめ、Apple Home(HAP-1.1ブリッジ)、Google Home、Amazon Alexa、Matter規格との連携に対応しています。ノードごとに未加工シグナルと推定状態(睡眠中、活動中、不在など)を合わせた21個のエンティティを提供します。
-
超低コストなエッジノードで完結 クラウド処理に依存せず、1台あたり安価に入手可能なESP32ノードのメッシュ網とローカル環境で処理が完結します。データ送信に伴うプライバシー漏洩リスクやクラウド利用料を抑えられます。
-
軽量な機械学習モデルとWASMパイプライン Hugging Faceで公開されている小型モデル(4ビット量子化により8KB程度に収まる128次元コントラスティブエンコーダーなど)を活用し、Raspberry Pi等の低スペックなエッジ機器でも高速に推論を実行できます。また、バイタル解析パイプラインはWebAssembly(WASM)としてもパッケージ化されています。
-
AIエージェント対応の運用ツール(MetaHarness) CLIツールおよびMCP(Model Context Protocol)サーバー、Claude Code用プラグインが用意されており、ハードウェアの検出やCSI波形の確認、ファームウェア書き込み、測定精度の検証などをAIアシスタント経由で支援する仕組みが備わっています。
使い方
RuViewの運用・検証ツールはnpm経由(@ruvnet/ruview)で提供されており、Node.js環境から手軽に呼び出すことができます。READMEでは、セットアップ診断や接続されたハードウェアの確認、リアルタイム波形解析のコマンドが紹介されています。
診断とガイドの参照
ローカル環境の確認や、センシング・モデル読み込みに関するドキュメントを参照するコマンドです。
# ローカル環境のセットアップを確認
npx @ruvnet/ruview@0.9.1 doctor
# モデル読み込みに関するガイドラインを取得
npx @ruvnet/ruview@0.9.1 guidance --topic sensing --query "model loading"
ハードウェアの接続とCSI取得
PCに接続されたESP32ノードなどのデバイスを一覧表示し、リアルタイムにCSIストリームを監視・解析します。
# 接続されているデバイス一覧を表示
npx @ruvnet/ruview@0.9.1 devices
# ESP32ノードから受信するCSIをリアルタイム表示
npx @ruvnet/ruview@0.9.1 esp32 --watch
# 45秒間のCSIデータを取得し、バイタル解析カーネルで処理
npx @ruvnet/ruview@0.9.1 esp32 --seconds 45 --analyze
MCPサーバーやAIエージェントとの連携
LLMエージェントからRuViewを操作するためのMCPサーバーを起動できます。
# 標準入出力(stdio)経由でMCPサーバーを起動
npx @ruvnet/ruview@0.9.1 mcp start
# Claude Code向けのセンシング用UIモードを起動
npx @ruvnet/ruview@0.9.1 mod
エージェントの実行はデフォルトで読み取り専用(read-only)に制限されており、ワークスペースへの変更やハードウェアへの書き込みには明示的なフラグ設定(--allow-write や device-access 付与)が必要です。
技術的なポイント
-
信号処理によるバイタルサイン抽出 CSIの位相情報(Wrapped Phase)に対してバンドパスフィルタを適用することで、生体活動の微細な周期を抽出しています。READMEの記載によると、呼吸数は0.1〜0.5 Hzのバンドパスと円周分散(circular variance)、ゼロ交差法を用いて6〜30 BPMの範囲を測定します。心拍数は0.8〜2.0 Hzのバンドパスとゼロ交差法により40〜120 BPMの範囲をリアルタイムに算出します。
-
RustとCandleを採用したモデル実行基盤 機械学習の実行基盤としてRust言語のMLフレームワーク「Candle」が使われており、
safetensors形式のモデル重みをロードして動作します。CSIエンベディング処理はApple M4 Pro環境下で1秒間に16万回以上のエンコード速度を記録したとされています。 -
データ来歴と暗号学的アテスト センシングイベントや環境測定値に対して、Ed25519鍵を用いた署名検証チェーン(witness chain)やポリシーを付与する仕組み(Governed Evidence)が取り入れられており、データの改ざん防止や出所の証明が考慮されています。
注意点
-
実験段階の機能と精度 READMEには、一部の機能について現在の限界や開発段階が率直に記載されています。例えば17キーポイントの姿勢推定(pose estimation)モデル(
pose_v1)は初期版であり、PCK@20(許容誤差20%でのキーポイント正解率)が3.0%と目標値(35%以上)を大きく下回っており、ランタイムのパスはスタブ実装が含まれているとされています。 -
バイタル測定データの扱い デバイスから報告されるバイタルサイン(心拍・呼吸)は未検証(unvalidated)としてラベル付けされる仕様となっています。医療用途には使用できません。
-
ハードウェアの準備が必要 ソフトウェアだけでなく、WiFiのCSIを取得可能なESP32ボードなどの対応ハードウェアを物理的に用意し、適切なファームウェアを書き込む必要があります。
-
ライセンス リポジトリのライセンスはMITライセンスです。
まとめ
RuViewは、WiFiの電波特性を活用してカメラなしで空間把握や生体情報の推定を行う意欲的なオープンソースプロジェクトです。Rustによる高速な処理系とHome Assistantなどのスマートホーム統合、さらにMCPを通じたAIエージェント連携など、現代的な設計が盛り込まれています。姿勢推定などの一部機能には発展途上の側面もありますが、低コストなハードウェアでプライバシーに配慮したセンシング環境を作りたい方にとって注目すべきリポジトリです。





