Decimen、ペアリング不要でファウンテン符号化されたQRフレームを通じてファイルをストリーミング

Alstrophは、Claude Codeが一夜で作られたPoCの構築を手伝ったと述べており、そのPoCは128 KB/sをうたっているが、現在は受信側ページをローカルネットワーク経由で読み込んでいる。

By · Published

Primary source: Reddit

Why it matters

Decimen shows how AI coding agents can compress the path from protocol idea to working systems demo, while exposing an optical channel useful for both provisioning and data exfiltration.

Illustration of Decimen streaming fountain-coded QR frames between two devices, showing QR data blocks moving from one phone to another.

偽名で活動するソフトウェアエンジニアが Alstroph の名前で、7月31日に Decimen Optical Transfer を公開した。これは画面とカメラを急速に切り替わるQRコードで構成された一方向のファイルリンクに変えるものだ。デモ投稿で、Alstroph はこの概念実証を一晩で Claude Code を使って構築したと述べている。

このプロジェクトはキャッシュされたウェブ音楽プレーヤーから発展した。Alstroph はストリーミング音質や広告への不満が、Apple AirDrop に依存せず、両方のデバイスが同じ転送サービスを使う必要のない電話間の音楽共有の試みにつながったと書いている。作成者は後にこの概念を「音楽共有のためのスニーカーネット(sneaker net)」と説明し、結果は完成した消費者向け機能というより技術実験に近いことを認めた。

Alstroph はプロのソフトウェアエンジニアとして十年以上働いており、Claude Code をコーディングエージェントの早期リリース以来、仕事と個人プロジェクトの両方で使ってきたと語っている。作成者はまた、光学転送の概念は Claude セッションに先行しており、AI ツールは概念実証の実装に用いられたと述べた。

Decimen が見落としたフレームをどのように扱うか

Decimen はファイルをブロックに分割し、終わりのない一連のQRフレームを表示する。受信側のデバイスは画面にカメラを向け、十分なフレームをデコードして元のファイルを再構築する。送信が始まった後でも受信側は視聴を開始できる。各フレームにはセッション識別子、シーケンス番号、ブロック情報、ファイル長、ハッシュを含む20バイトのヘッダーが含まれているためだ。

重要な要素は Luby-transform フォンティン符号だ。表示される各フレームは元のファイルブロックの擬似ランダムな部分集合を組み合わせている。受信側はすべてのフレームや特定の順序を必要としない。Decimen のドキュメントによれば、オリジナルのブロック数の約1.15倍のブロックを収集すればファイルを再構築でき、ブラー、オートフォーカス、リフレッシュレートの不一致、遅いデコードで失われたフレームを吸収できるという。

この設計により、欠落したフレームを再送してほしいと送信側に要求する戻りチャネルは不要になる。また、送信側と受信側が異なるフレームレートで動作することも可能にする。Decimen は TypeScript と Vite を使用し、コード生成に node-qrcode を使い、カメラ側のデコードは zxing-wasm を通じて行われる。zxing-wasm は ZXing-C++ を WebAssembly 向けにパッケージしている。

リポジトリは、典型的なQRデモが無視しがちなブラウザ固有の失敗にも対処している。V8 と JavaScriptCore が同一のフォンティン符号分布を計算するよう、決定論的な対数実装を使用し、iOS のカメラフレームレート挙動を考慮し、ドロップしたフレームの周囲でデコードワーカーを実行する。コードは MIT license の下で公開された。

速度の主張にはセットアップ上の注意点がある

Alstroph の最初のデモは約120 KB/s を主張していた。リポジトリのドキュメント は、より広範な実験で手持ち時に約128 KB/s、受信側の電話を立てかけた場合に約186 KB/s に達したと記している。また、2 MB の画像転送が129 KB/s で測定されたと説明している。これらの数値は作成者が報告したベンチマークであり独立した計測値ではない。

機能を削ぎ落とした公開バージョンは選択可能な512 KB または 2 MB の画像を送信する。デフォルト設定では1フレームあたり1,465バイトを24フレーム/秒で表示する一方、より高スループットの実験では密度の高いQRコード、スタックコード、120 Hz ディスプレイ、誤り訂正されたカラーチャネルを使用した。

ブラウザページが実行されている状態では、ネットワークなしでペイロードを移動するという Decimen の主張は正しいが、現状のセットアップは完全に隔離された2台のデバイスのための即席で使えるワークフローではない。指示では送信側にローカルの Vite サーバーを実行させ、受信側の電話にカメラを起動する前にサーバーのローカルネットワークアドレスから HTTPS ページを読み込ませるようにしている。ファイルのバイトはその後、LAN ではなく光を通じてギャップを横断する。

展開可能なエアギャップ版は、事前に各デバイスに送信側と受信側のソフトウェアがインストールまたはロードされている必要があるだろう。現在のリポジトリは、ロックダウンされた環境向けの完全な運用手順をパッケージ化するのではなく、光学チャネルと復元手法を実証している。

アニメーションQR転送には既に歴史がある

Decimen は確立されたアイデアの新しい実装だ。TXQR は2018年に初めて公開され、アニメーションQRコードとフォンティン符号を組み合わせている。Qrs は Luby-transform エンコーディングを用いて一連のQRコードでデータをストリームする。Airgapped QR Code Transfer は Vue.js、圧縮、WebAssembly スキャンを用いたブラウザ実装を提供する。

Libcimbar は標準的なQRコードを捨て、カスタムのカラーアイコンマトリックスバーコードを採用している。メンテナは、フォンティン符号、圧縮、光学転送専用に設計されたバーコード形式を用い、モニターとスマートフォンカメラ間で約106 KB/s を実現したと主張している。Decimen の README はこれらの先行作を認めており、作成者は独自にこのアプローチに到達したと述べている。

新たな貢献は、ソロ開発者がこのアイデアをブラウザベースの、内部を確認できるシステムデモに変えた速度感にある。リポジトリには、誤り回復、カメラ挙動、エンジン間の数値的一貫性、ワーカーのスケジューリングに関する判断が含まれており、QR画像の連続生成を超えている。

同じチャネルはセキュリティ上の利点も持つ。一方向の光学リンクは、Bluetooth、Wi-Fi、従来のネットワークトラフィックがブロックまたは監視されている場所へ情報を移動できる。これは隔離環境でのデバイスプロビジョニングや制御された転送を支援する可能性がある一方、承認されたスクリーンとカメラを介した情報の持ち出し経路を生む可能性もある。Alstroph は議論の中で悪用について明確に認めている。

QR ストリームは可視のブロードキャストデータだ。視界が確保できる互換受信機なら誰でもフレームを収集できるため、物理的アクセスと画面の視認性が脅威モデルの一部になる。Decimen はそのトレードオフを小さな概念実証に詰め込んでいる:ペイロード経路からネットワーク制御は消え、部屋とカメラの制御が決定的になる。

Reader comments

Conversation for this story loads after sign-in.