Haply Inverse Service
Le Inverse Service s'exécute en arrière-plan sur votre machine, et relie les appareils haptiques Haply à votre application en temps réel. Il prend en charge tout ce qui se trouve sous votre code : détection des appareils, communication série, surveillance de la sécurité et diffusion de l'état — afin que vous puissiez vous concentrer sur la création de l'expérience.
Exigences et compatibilité
Le service fonctionne sur les principales plateformes de bureau et peut être piloté depuis tout langage disposant d'un client WebSocket et d'un analyseur JSON :
- Plateformes : Windows 10+ (MSVC), Linux (paquet
.deb), macOS - Langages : Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … tout langage prenant en charge WebSocket + JSON
Intégrations officiellement prises en charge
Haply maintient des intégrations de première partie pour Haply Inverse Unity Package, Toia, Geomagic Freeform et NVIDIA Isaac Lab.
Au-delà de ces intégrations, le service peut être utilisé depuis toute plateforme ou tout environnement d'exécution qui inclut un client WebSocket et un analyseur JSON — nous l'avons fait tourner aux côtés de Unreal Engine, TouchDesigner et d'autres environnements de simulation ou en temps réel. Si votre environnement peut ouvrir une connexion WebSocket, il peut piloter un appareil Inverse.
Pour des exemples propres à chaque langage, consultez les dépôts publics d'exemples : C++ et Python.
Interfaces de communication
Le service expose deux canaux de communication :
| Canal | Port | Transport | Usage |
|---|---|---|---|
| Simulation | 10001 | WebSocket | Boucle de commande et d'état en temps réel (1 message en entrée → 1 état en sortie) |
| Événements | 10020 | WebSocket (lecture seule) | Événements système : sécurité, batterie, connexion, avertissements de fréquence |
| HTTP | 10001 | REST | Requêtes de configuration sans état, paramètres, gestion de session, inspection des appareils |
Toutes les charges utiles sont au format JSON. Consultez les conventions JSON pour l'enveloppe standard, les ports et les règles de type de contenu.
Cas d'utilisation
| Objectif | Où commencer |
|---|---|
| Envoyer des forces ou des consignes de position à un appareil haptique | Contrôle en temps réel |
| Configurer la base, le montage, le préréglage ou les filtres | Configuration de session |
| Naviguer dans une scène (locomotion à commande de vitesse) | Module de navigation |
| Écouter les événements système (sécurité, batterie, connexion) | Événements et surveillance |
| Apprendre par l'exemple | Tutoriels |
Système de coordonnées
Le repère interne de Haply est direct, Z vers le haut (+X vers la droite, +Y vers l'avant, +Z vers le haut). Vous pouvez le faire correspondre au repère de votre application au moyen d'une seule permutation de base — une fois définie, toutes les entrées et sorties sont converties automatiquement.
Deux transformations positionnent l'appareil dans votre scène :
- Montage — le décalage physique de l'appareil (défini au moyen d'un préréglage ou explicitement)
- Espace de travail — un décalage à l'exécution pour la navigation de caméra ou de scène (défini manuellement ou au moyen du module de navigation)
Consultez Montage et espace de travail pour le pipeline complet des coordonnées.
Exécution du service
Inverse Service peut fonctionner selon deux modes :
- Intégré à Haply Hub (recommandé) — Haply Hub inclut la dernière version du service et le démarre automatiquement dès que le Hub est ouvert. Aucune configuration manuelle requise : vous bénéficiez toujours des dernières corrections.
- Autonome — installez une version précise du service en tant que service Windows ou démon Unix à l'aide du Inverse Installer. Utile pour l'intégration continue (CI), les déploiements sans interface graphique ou les machines où le Hub n'est pas en cours d'exécution.
Gestion du service autonome
Windows — ouvrez l'application Services : appuyez sur Win+R, tapez services.msc, repérez « Haply Inverse Service », puis faites un clic droit → Démarrer / Arrêter / Redémarrer.
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
Référence complète de l'API
Pour la spécification complète, lisible par machine, de chaque point de terminaison et de chaque message :
- Référence de l'API HTTP (OpenAPI) — interface Swagger UI interactive
- Référence de l'API de simulation (AsyncAPI) — visionneuse AsyncAPI interactive