
Apple「AirPods 3」を耳に着けたまま頭を左右に振ると、Linuxパソコンの画面でカーソルが動く。イヤホンの動きのセンサーをAppleの機器を使わずに読み出し、マウスにするツールが「MousePods」として公開された。作ったのはフランス・パリのMatteo Gaudioso氏だ。AirPodsの動きのデータを取り出すオープンソースのツールは以前からあるが、同氏によると、いずれもAirPods 3を「未対応」や「未検証」としていた。
同氏の調査では、AirPods 3は、AirPods Pro 2などがセンサーの開始に使う手順に応答しなかった。代わりに、センサーを「RemoteHID」というAppleの方式で、HID(マウスやキーボードが使う入力機器の規格)の機器として公開していた。同氏はこの通信の形式を文書にまとめ、公開文書としては初めてだとしている。
AirPods 3が未対応に見えたもう1つの理由は、Linuxの初期設定だった。Bluetoothで一度に受け取れるデータの大きさの上限(MTU)は、Linuxの標準で672バイトだ。672バイトのままでは、AirPods 3は動きのセンサーの存在を知らせてこない。iOSと同じ2582バイトに広げると、センサーが現れた。データを取り出す頻度は最大で約210回/秒で、公開されている頭の追跡ツールの25回/秒を上回るという。
カーソルは頭や手に持ったイヤホンを傾けて動かすほか、机の上でイヤホンを滑らせても動かせる。クリックするには、イヤホンの軸を押すか、頭を素早く傾ける。頭の向きを視点操作ソフト「opentrack」に送り、フライトシミュレーターの視点を動かす機能もある。ただし同氏は、ゲームでの試験はまだだとしている。
解析で同氏は米AnthropicのAIアシスタント「Claude」を使い、約300回の失敗した試行をClaudeに任せた。結果は同氏が実機で確かめた。
ソースコードはGitHubで公開され、ライセンスはApache-2.0だ。解析結果の文書はCC BY 4.0で、同氏は利用時に作者名とリポジトリへのリンクを明記するよう求めている。動作環境はLinuxとPython 3.10以上で、管理者権限は要らない。AirPods Pro 2での動作も確認済みで、AirPods 2、初代AirPods Pro、AirPods Maxは未検証だ。

