Service Inverse de Haply
Le service Inverse s'exécute en arrière-plan sur votre machine et connecte les appareils haptiques Haply à votre application en temps réel. Il prend en charge tous les aspects techniques sous-jacents à 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é à partir de n'importe quel langage disposant d'un client WebSocket et d'un analyseur JSON:
- Plateformes : Windows 10 et versions ultérieures (MSVC), Linux (paquet
.deb), macOS - Langages : Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … tout langage prenant en charge WebSocket et JSON
Intégrations officiellement prises en charge
Haply maintient des intégrations de première partie pour l’Haply , Inverse Unity Package, Toia, Geomagic Freeform et NVIDIA Isaac Lab.
Au-delà de ces intégrations, le service peut être utilisé depuis n'importe quelle plateforme ou n'importe quel environnement d'exécution disposant d'un client WebSocket et d'un analyseur JSON — nous l'avons fait fonctionner avec Unreal Engine, TouchDesigner et d'autres environnements de simulation ou en temps réel. Si votre environnement est capable d'établir une connexion WebSocket, il peut piloter un appareil Inverse.
Pour des exemples spécifiques à chaque langage, consultez les dépôts publics d'exemples : C++ et Python.
Interfaces de communication
Le service propose deux canaux de communication :
| Canal | Port | Transports | Utilisation |
|---|---|---|---|
| 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 (cours magistral uniquement) | Événements système : sécurité, batterie, connexion, alertes de fréquence |
| HTTP | 10001 | REST | Requêtes de configuration sans état, paramètres, gestion des sessions, inspection des appareils |
Toutes les charges utiles sont au format JSON. Consultez les conventions JSON concernant l'enveloppe standard, les ports et les règles relatives au type de contenu.
Cas d'utilisation
| Objectif | Par où commencer ? |
|---|---|
| Envoyer des forces ou des instructions 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 |
| Se déplacer dans une scène (déplacement à vitesse contrôlée) | Module de navigation |
| Surveiller 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 : l'axe Z vers le haut (+X vers la droite, +Y vers l'avant, +Z vers le haut). Vous pouvez l'aligner sur le repère de votre application à l'aide d'une simple permutation de base. Une fois celle-ci définie, toutes les entrées et sorties sont converties automatiquement.
Deux transformations permettent de positionner l'appareil dans votre scène :
- Montage — le décalage physique de l'appareil (défini à l'aide d'un préréglage ou de manière explicite)
- Espace de travail — un décalage lors de l'exécution pour la navigation par caméra ou par scène (défini manuellement ou à l'aide du module de navigation)
Consultez la section « Montage et espace de travail » pour connaître l'ensemble du processus de traitement des coordonnées.
Prestation du service
Inverse Service peut fonctionner selon deux modes :
- Intégré à Hub Haply (recommandé) — HubHaply inclut la dernière version du service et le lance automatiquement dès l'ouverture du Hub. Aucune configuration manuelle n'est nécessaire : vous bénéficiez toujours des derniers correctifs.
- Autonome — installez une version spécifique du service en tant que service Windows ou démon Unix à l'aide de l'Inverse Installer. Utile pour l'intégration continue (CI), les déploiements sans interface graphique ou les machines sur lesquelles 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 cliquez avec le bouton 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 consulter 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 interactive Swagger UI
- Référence de l'API de simulation (AsyncAPI) — visualiseur interactif AsyncAPI