0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ネットワークトラフィックを「光の流れ」にするOSSを作った(あと、虹色ルーターを作ってくれる人募集)

0
Posted at

TL;DR

  • ネットワークの通信を「光の粒」として可視化するツールを作って公開しました
  • パケット1個 = 光1個。色 = プロトコル / 明るさ = サイズ
  • 画面(Webアート)物理LED(WLED) の両方に、同じイベントストリームを流せます
  • ハードは不得意なので、虹色に光るルーター / 光ファイバモデム を作ってくれる人を募集中です

設計:データ源と光らせ先を疎結合に

肝は、入力(データ源)と出力(光らせ先)を 1 本のイベントストリームで分離していることです。

 データ源                       ストリーム                  光らせ先
 demo / psutil / scapy / pcap → server.py(WebSocket) → ブラウザ Canvas
                                                     → WLED 物理LED(UDP)

イベントは 1 パケット = 1 JSON:

{"ts": 1718000000.0, "src": "203.0.113.7", "dst": "192.168.1.5",
 "proto": "HTTPS", "size": 1380, "dir": "in"}
  • データ源: demo(合成) / psutil(接続単位・Npcap不要) / scapy(真のパケット単位) / pcap(再生)
  • 画面: Canvas で中央=自端末、周囲=通信相手。lighter 合成 + 放射グラデでグロー表現
  • 物理LED: WLED のリアルタイムUDP(DNRGB, port 21324)。テープを「光の川」に見立て、パケットで点灯→毎フレーム減衰

出力を増やしたいときは、同じ JSON を受け取る先を足すだけ。--wled HOST で画面とLEDへ同時送出できます。

使い方(抜粋)

# 画面だけ:index.html を開くだけ(バックエンド無しでデモ動作)
# 自PCの実トラフィック:
cd server && pip install -r requirements.txt
python server.py --source psutil           # Npcap/管理者 不要
# 物理LEDも:
python server.py --source psutil --wled 192.168.1.50 --leds 60

募集:これで“光るハードウェア”を作りませんか

ソフト(頭脳)は完成・OSS化済みです。次は 物理的に光らせる人 を探しています。

  • 🌈 虹色ルーター: LEDハロー、または Raspberry Pi/OpenWrt で自作ルーター化して本体ごと光る
  • 光ファイバモデム: サイドグロー光ファイバ(PMMA)を「1本=1フロー」に見立て、光が中を流れる

デモ(開くだけで動く) → https://net-illumination.pages.dev
リポジトリ → https://github.com/highdefinitionaudiodriver/net-illumination
Issue / PR / fork 歓迎。配色 PALETTE は front と LED で共有なので、色設計だけの貢献も大歓迎です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?