1 ポイント 投稿者 GN⁺ 2024-10-21 | 1件のコメント | WhatsAppで共有
  • 家の構造や素材に応じて変化する WiFi信号強度 を物理ベースで計算し、ルーターの設置場所選びを支援するWebシミュレーター
  • シミュレーションはユーザーのデバイス上で リアルタイムにローカル実行 され、背景シミュレーションの色や速度を変更できる
  • 実際の住宅の間取り図と壁・窓の素材を適用した サンプルシミュレーション を実行でき、デモ動画とドキュメントも提供される
  • 電磁波が素材を通過しながら移動する方式を直接計算し、テキストボックス周辺で波動が 屈折 する例を示す
  • 計算量の大きい手法のため、WebGPU でグラフィックカードを活用し、ブラウザー上でより高速にシミュレーションする

ルーターの設置場所を選ぶWiFiシミュレーション

  • WiFi Solver は、家の中でアクセスポイントのWiFi信号がどのように広がるかを示すシミュレーションエンジン
  • 家の WiFi信号強度 を計算し、WiFiルーターを置く位置を判断することに焦点を当てている
  • すべてのシミュレーションはユーザーのデバイス上で ライブ実行 される
  • 実際の住宅の間取り図と壁・窓に対する現実的な素材を適用した例を実行できる
  • デモ動画で一部の機能を見ることができ、より詳しい情報は ドキュメント で確認できる
  • 1日体験するか、1回限りの支払いで永続アクセス権を取得できる

物理計算とWebGPUの活用

  • WiFi Solver は、電磁波が素材を通過しながら移動する方式を 最小限の近似 で直接シミュレーションする
  • ページをスクロールすると、波動がテキストボックス周辺で 屈折 する様子を見ることができる
  • 計算コストの高いアプローチのため、WebGPU を使ってグラフィックカードを活用し、シミュレーション速度を高めている
  • 下部では背景シミュレーションに新しいソースを追加できる
  • 作者の他の作品は ブログ で確認できる

1件のコメント

 
GN⁺ 2024-10-21
Hacker News の意見
  • 可視化は見事だが、6〜12.5cm 波長の実際のカバレッジパターンよりも波そのものに焦点を当てすぎていて、カバレッジ確認用としては他のツールより有用性が低い。
    それでもアートプロジェクトとしては面白く、WebGL をサポートするオープンソースの Milkdrop である projectM https://github.com/projectM-visualizer/projectm/blob/master/... や、その元祖の一つである Geisswerks https://www.geisswerks.com/ も思い出す。
    こういうものが好きなら、VJ 向けの音楽可視化とドーム内部投影機能を備えた NestDrop も気に入るかもしれない https://nestimmersion.ca/nestdrop.php

    • サンプルシミュレーションの一つに入ると、可視化を波から時間平均電力密度に切り替えられるので、そちらの方が求めているカバレッジ表示に近いはず。
  • バグがある。「add a new source」ボタンを押し続けると、固定最大サイズ 128 の配列を超えて、画面に JavaScript 例外が表示される。
    さらに AMD カードだけかもしれないが、テキストボックスのせいでスクロールを特定の方法で動かすとシミュレーションが壊れる。Page Up/Down を素早く押したり、一番下までスクロールした後にスクロール位置を揺らしたりすると、不正なデータが広がって画面全体がノイズ、黒、白で埋まり、3D モードに上げるとポリゴンの大混乱になる。

    • Apple M1 でも二つ目の問題が再現したので、グラフィックカード固有の問題ではなさそう。
    • 二つ目の問題は、シミュレーション速度を上げるとより起きやすいようだ。
  • 「スクロールするとテキストボックスの周囲で波が屈折するのが見える」とは、役に立たないのにかっこいい機能だ。

  • 以前、音で似たようなものを作りたいと思っていた。ヘッドホンではなく、部屋の中でアクティブノイズキャンセリングをするために、マイクとスピーカーを組み合わせた装置を戦略的な位置に置く構想だった。
    少し考えると、干渉のせいで静かな領域と音が 2 倍になる領域ができる可能性があり、理想的ではないが興味深かった。さらに考えてみると、3 次元で扱う必要があるため設定の複雑さがずっと大きくなることに気づいた。屈折効果を見ると、ここにも同じように当てはまりそうだ。

    • 「音のレーザー」があれば、柱のような領域に入ってくる波を制御して、「音の傘」のように入ってくる音を打ち消せる。
      ただし、遠くにあるスピーカーのように指向性の弱い一般的な音にしか機能せず、人の話し声のようなものを消すのは難しい。クラブでテーブルごとに普通の会話を可能にする用途には、かなり役立つかもしれない。問題は関連技術が現在特許で縛られていて、作るのはかなり簡単でも、特許切れを待つかライセンス料を払う必要があること。
    • 技術的に可能なら、次のユニコーンになり得るように見える。
  • 可視化の面は本当に素晴らしい。複数の送信機を扱う部分とスクロールの終盤は、ビームフォーミングを示す https://apenwarr.ca/beamlab/ を思い出させる。
    このデモで流れを見る一番簡単な方法は、右のメニューで 3 をオフにして送信機を 2 つだけ残し、「r」ボタンを押した後、クリックまたはドラッグしてビームが最適化されていく過程を見ること。右側では受信電力利得の統計も見られる。
    見た目にはこのデモが一番楽しいが、自宅の Wi-Fi 配置を最適化したい人には Hamina の無料ティアの方がはるかに有用な可能性が高い https://www.hamina.com/planner
    欠点はアカウントを作らせること、利点は一般的な Wi-Fi 指標や機能に合わせた複数のサマリービューを提供し、波動シミュレーションそのものを見せることにあまり重点を置いていないこと。

    • Hamina が言及されるのを期待して来た。仕事で無線設置計画に使っているが、かなり良いソフトウェアだ。
  • 下の方にある新しいソース追加リンクを押しすぎたら、Unexpected Application Error が出た。
    主なエラーは RangeError: offset is out of bounds で、Float32Array.set()Pi.makeUniformBuffer で発生している https://wifi-solver.com/dist/bundle-UKQ5A5W6.js:32:118833

  • 似た興味深いプロジェクトとして https://cemsim.com/ もある。私が作ったものではない。

  • ここでは SDR 無線処理、つまり GPIO から読み取ったノイズをパイプで Web ブラウザに渡し、すべてのチャネル活動を一度に見せるものを期待していた。

  • Alienware M15 Ryzen Ed. R5 で Waveguide Simulator デモを動かすと、ノート PC からはっきりした高音の震える音がする。
    RTX 3070、Windows 11 Pro、Chrome v129 環境で、最初はスピーカーの音かと思ったが、音量を下げてもシミュレーターが再生されている間はずっと聞こえた。ゲームや他の WebGPU デモでは聞こえず、現実的な家のシミュレーションではまた別の音のパターンが出る。

    • コイル鳴きのように聞こえる。GPU がフル稼働しているときによく聞こえる現象だ。
      https://en.wikipedia.org/wiki/Electromagnetically_induced_ac...
    • GPU の電源供給回路から出ている音である可能性が高い。消費電力パターンに可聴周波数があると、インダクタやコンデンサのような部品がその周波数で機械的に振動して音を出すことがある。
      ゲームで聞こえない理由は、ゲーム音声の方が大きいか、電力パターンにそうした可聴周波数がないためかもしれない。CPU の電源回路でも同じ現象は起こり得るが、これは GPU を使っているので GPU 側と見るのが無難だ。
    • GPU が高すぎるリフレッシュレートで動作して発生するコイル鳴きやコンデンサ鳴きかもしれない。最も簡単な解決策は、nvidia control panel でブラウザまたはグローバル設定に、モニター最大リフレッシュレートの 2 倍程度のフレームレート制限をかけること。
      600fps 以降のワークロードではかなり一般的だ。
    • デスクトップの 3070 でも同じ音が聞こえる。Mac M1 では聞こえない。
    • ノート PC の AMD Radeon Mobile GPU でも、GPU を多用するコードを動かすたびに同じコイル鳴きがする。
  • Wifi 6E ルーターを使っているので、ここで 6GHz、5GHz、2.4GHz が目に見えて違う動きをするのか気になる。全体の形が同じなのか、それとも周波数が大きな違いを生むのか知りたい。

    • 6GHz と 5GHz はほぼ同じで、5GHz と 2.4GHz は吸収と反射の働き方が違うため、かなり差が出るはず。