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