Haply 逆サービス
Inverse Service は、お使いのコンピュータ上でバックグラウンドプロセスとして動作し、Haply のタッチセンサーデバイスをアプリケーションにリアルタイムで接続します。デバイス検出、シリアル通信、セキュリティ監視、ステータスストリームの転送など、コードの下流で行われるすべての処理をこのサービスが担うため、開発者はユーザー体験の構築に専念することができます。
動作要件と互換性
本サービスは、主要なデスクトッププラットフォームで動作し、WebSocket クライアントと JSON パーサーを備えたあらゆる言語から呼び出すことができます:
- プラットフォーム: Windows 10 以降(MSVC)、Linux(
.deb(パッケージ)、macOS - 言語:Python、JavaScript/TypeScript、C++、C#、Rust、Go、Java……およびWebSocketとJSONを用いた通信が可能なあらゆる言語
公式にサポートされている統合
Haply 以下の製品について、公式の統合機能が提供されています:Haply Inverse Unity Package、Toia、Geomagic Freeform、およびNVIDIA Isaac Lab。
これ以外にも、プラットフォームやランタイムが WebSocket クライアントと JSON パーサーを提供していれば、本サービスを利用できます。当社はすでに、Unreal EngineやTouchDesigner、その他のリアルタイムおよびシミュレーション技術スタック上で本サービスを動作させています。お使いの環境で WebSocket を開くことができれば、Inverse デバイスを駆動することができます。
特定の言語に関する例については、公開されているサンプルリポジトリ(C++およびPython)をご覧ください。
通信インターフェース
本サービスでは、2つの通信チャネルを提供しています:
| 通路 | ポート | 伝送方式 | 用途 |
|---|---|---|---|
| シミュレーション | 10001 | WebSocket | リアルタイムコマンド/ステータスループ(メッセージ入力1件、ステータス出力1件) |
| 事件 | 10020 | WebSocket(読み取り専用) | システムイベント:セキュリティ、バッテリー残量、接続、通信速度に関する警告 |
| HTTP | 10001 | REST | ステートレスな設定の照会、設定、セッション管理、およびデバイスチェック |
すべてのペイロードは JSON 形式です。標準エンベロープ、ポート、およびコンテンツタイプの規則については、JSON 規約を参照してください。
利用シーン
| 目標 | 開始位置 |
|---|---|
| 触覚デバイスに力または位置の目標値を送信する | リアルタイム制御 |
| 配置:座標系、マウント方式、プリセット、またはフィルター | 会話構成 |
| ナビゲーションシーン(速度制御による移動) | ナビゲーションモジュール |
| システムイベント(セキュリティ、バッテリー残量、接続)の監視 | 事件と監視 |
| 例題を通じて学ぶ | チュートリアル |
座標系
Haply その内部座標系は右利き座標系であり、Z軸は上向きです(+Xは右、+Yは前方、+Zは上)。座標系の基点変換を1回行うことで、これをアプリケーションの座標系に再マッピングすることができます。設定が完了すると、すべての入力および出力に対して自動的に変換が行われます。
シーン内でデバイスの位置を特定するために、2種類の変換が使用されます:
- マウント――デバイスの物理的なオフセット量(プリセット設定、または明示的な設定による)
- ワークスペース――カメラ/シーンナビゲーション用のランタイムドリフト(手動で設定するか、ナビゲーションモジュールを通じて設定可能)
座標処理の完全な手順については、「マウントとワークスペース」を参照してください。
サービスの実行
Inverse Service は、2つのモードで動作します:
- Haply Hub に組み込み(推奨)——Haply Hubには最新バージョンのサービスがバンドルされており、Hub を起動すると自動的に起動します。手動での設定は不要で、常に最新の修正プログラムを入手できます。
- スタンドアロン実行――Inverse Installer を使用して、特定のバージョンのサービスを Windows サービスまたは Unix デーモンとしてインストールします。CI、コマンドラインによるデプロイ、または Hub を実行していないマシンに適しています。
管理独立サービス
Windows——サービスアプリを開く:を押す Win+R,入力 services.msc、「Haply Inverse Service」を見つけて、右クリック → 開始/停止/再起動。
Linux(systemd):
systemctl start haply-inverse-service.service
systemctl stop haply-inverse-service.service
systemctl restart haply-inverse-service.service
systemctl enable haply-inverse-service.service # auto-start on boot
API リファレンス(完全版)
各エンドポイントおよびメッセージに関する完全な機械可読仕様:
- HTTP API 参考(OpenAPI)— 対話型 Swagger UI
- シミュレーション API リファレンス(AsyncAPI)— 対話型 AsyncAPI ビューア