ハイライト {#highlights}
Minverseのインクウェルにスタイラスをドッキングすると、スタイラスがアームに沿ってまっすぐ向くようになりました。ドッキングされたスタイラスに設定される方位(ヘッディング)が 135 度から 180 度に変更されました。これは、それ以外の変更がないデフォルトのセッションにおいて、バージョン 3.5.6からの唯一の目に見える違いです。
ゲート制御やオプトインは不要で、ハンドルのファームウェアバージョン1.3.1以上のすべてのユーザーが対象となります。詳細については「修正」をご覧ください。
セッション中、デバイスの姿勢がリアルタイムで反映されるようになりました。アプリケーションがデバイスの制御を開始した時点で値が固定されることなく、state.body_orientation が20 Hz でデバイスの姿勢を追従します(Inverse3 /Minverse ファームウェア 7.9 以降、デフォルトで有効)。
デバイス設定のリセットにより、そのデバイスが実際に保存している値が復元されるようになりました。config/torque_scaling、config/重力補正、config/handedness に対する DELETE は、サービスに組み込まれた固定の工場出荷時定数ではなく、デバイスの起動時に保持されている値が返されるようになりました。そのため、左手用として保存されていたデバイスが右手用にリセットされることはなくなりました。
デバイススコープの設定変更は、デフォルトのイベントチャネルでは自動的に通知されなくなりました。以前は、共有のマウントや姿勢の書き込みが 1 回行われるたびに、そのデバイスを保持している各セッションごとにセッション更新済み が送信されていました。しかも、いずれもデバイスを特定するものではありませんでした。保持されているすべてのセッションは、引き続き次のスナップショットから更新されます。
内部改善 {#internal-improvements}
新しい設定 devices/*inverse/body_orientation_poll_interval_ms(デフォルトは 50 ms、0 (無効、範囲 0~5000)により、リアルタイムの姿勢データの読み取りを調整できるようになりました。ただし、50 ms のデバイスモーションタイマーが実質的な下限となります。
ファームウェア 7.9 未満のデバイスでは、姿勢の利用側(コンシューマー)ごとに個別に警告が表示されるようになりました。そのため、古いファームウェアに対しては devices/*inverse/query_orientation_on_idle を有効にした場合、黙って無視されるのではなく、その設定が機能しないことが通知されます。
姿勢データの送信を停止したデバイスについては、警告を 1 回表示するようになりました。以前は、最後に取得した正常な値を何の通知もなく、永久に報告し続けていました。保存されている値自体は変更されないため、デバイスは引き続き使用できます。
セッションスコープの config/mount あるいは config/body_orientation の書き込みは、これまで通りデフォルトのイベントチャネルで通知されます。削除されたのはデバイススコープに関連する要素のみであり、利き手、トルク・スケーリング、重力補正 引き続き、セッションごとの通知を行います。
修正 {#fixes}
Minverseのインクウェルによるドック・キャリブレーションの結果、ドッキングされたスタイラスの設定が45度不足していました。インクウェルのキャリブレーション時に、ドッキングされたスタイラスに設定される方位が135度から180度に変更され、その値は設定 devices/*inverse/inkwell/dock_heading_deg となりました。2026年9月22日、ハンドルのファームウェア 1.3.1 を搭載したスタイラス付き Minverse を使用して測定しました。従来の 135 度では、ドッキングされたペンの角度が 45 度不足していたため、
ヨー推定器でこれを補正する必要がありました(観測値は +42~+50 度)。現在、残差は約 5 度以内に収まっています。段階的なゲートの対象外です(ドック・キャリブレーションの処理経路は常に実行されます)。そのため、ハンドルのファームウェア 1.3.1 以降を使用しているすべてのユーザーについては、
ドッキングされたペンの表示される姿勢が 45 度変化します。このバージョンより前のファームウェアでは、ファームウェアがこの値を無視して姿勢全体を即座に設定するため、これらのユーザーには変化はありません。
state.body_orientation は、デバイスがアイドル状態のときにのみ更新されていたため、アプリケーションが力覚のストリーミングを開始した瞬間に値が固定され、すべての利用者が古いハンドシェイクのスナップショットを読み取っていました。現在は既存のモーションタイマーによってポーリングされており、セッション中もリアルタイムで更新されます。
config/torque_scaling、config/重力補正、config/handedness に対する DELETE は、デバイス自体が保存している設定の上に、コンパイル時に組み込まれた工場出荷時の定数を上書きしていました。そのため、「デフォルトにリセット」と、デバイスの実際の起動時の状態が一致していませんでした。config/handedness は、保存されていた値にかかわらず、常に 右 に設定されていました。現在、これら 3 つすべてについて保存されていた値が復元され、
従来の定数は、デバイスから一度も読み取られたことのない項目に限り使用されます。
デバイス単位の設定変更が1回行われるたびに、そのデバイスを保持している各セッションごとに1件のイベントが発生していました。 ペイロードには session_id、プロフィール、範囲 のみが含まれており、デバイス識別子もなかったため、購読者は、複製の発生源を特定することも、一連のイベントの重複を排除することもできませんでした。デバイス単位の通知については、デバイスを指定するための代替手段が提供されるまで保留となります。セッションごとの更新については変更はありません。
潜在的な互換性破りの変更 {#potential-breaking-changes}
config/torque_scaling を削除、config/重力補正、config/handedness は、リセットがどういう意味かを変更しています。応答と書き込まれる値は、サービス側の固定定数ではなく、デバイスに保存された設定になりました。応答の形式は変わりません。値が異なるのは、保存された設定が工場出荷時の定数と異なるデバイスに限られます。ただし、
リテラル定数(false / {enabled: true, scaling_factor: 0.0} / 右)を前提としていた連携では、異なる値が返されるようになります。
state.body_orientation は、形式や階層(tier)を変えずに、値の意味が変わります。ストリーミングクライアントにとっては実質的に静的だったフィールドが、20 Hz で変化するようになります。アタッチ後は定数として扱っていた利用者は、オプトインなしに新しい動作を目にすることになります。
オプトインしていない `:10020` の購読者は、デバイススコープへの書き込みが原因である場合、`config.mount` または `config.body_orientation` の `session-updated` を受信しなくなりました。また、非推奨となっている従来のフラットな ボディ・オリエンテーション スコープも同様のレーンに従うようになり、デフォルトのチャネルに逆流することがなくなりました。移行: イベントを更新のトリガーとして扱うのをやめ、
セッションのスナップショットから値を読み取ってください。スナップショットは、保持されているすべてのセッションにおいて、オプトインを一切必要とせずに引き続き更新されます。同等のセッションスコープを持つイベントや、
利き手 / トルク・スケーリング / 重力補正 の通知には影響がありません。
ドッキングされたスタイラスの表示角度が 45 度変わります。これは参照用のみです。バグ修正であり、「ハイライト」と「修正」で公開されています。ここに記載するのは、これは、ファームウェア 1.3.1 以降を使用しているすべてのユーザーにおいて、オプトインなしでも観測値が変更されるためです。そのため、従来の 135 度の基準値に合わせて独自のアプリケーションを調整していた利用者は、実際に移行作業を行う必要があります。形式の変更はありません。
非推奨 {#deprecations}
このリリースでは、新たに非推奨となった機能はありません。 devices/*inverse/query_orientation_on_idle 新しいポーリング間隔がゼロ以外であれば冗長になってしまいますが、3.5.7 では意図的に 旧式 としてフラグを付ける行っていません。この機能の非推奨化はバージョン 3.6 で予定されています。