Skip to main content
Version : 3.5.x

Service Inverse de Haply

Le service Inverse s'exécute en arrière-plan sur votre machine et connecte les périphériques Haply à votre application en temps réel. Il gère tout ce qui se passe en amont de votre code : détection des périphériques, communication série, surveillance de la sécurité et transmission des états — vous permettant ainsi de vous concentrer pleinement sur la conception de l'expérience utilisateur.

Configuration requise et compatibilité

Le service fonctionne sur les principales plateformes de bureau et peut être utilisé à 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 (.deb (paquet), macOS
  • Langages : Python, JavaScript / TypeScript, C++, C#, Rust, Go, Java, … tout ce qui prend en charge WebSocket + JSON

Intégrations officiellement prises en charge

Haply des intégrations natives pour le packageHaply Unity, Toia, Geomagic Freeform et NVIDIA Isaac Lab.

Au-delà de cela, le service est accessible depuis n'importe quelle plateforme ou environnement d'exécution intégrant un client WebSocket et un analyseur JSON — nous l'avons utilisé avec Unreal Engine, TouchDesigner et d'autres piles logicielles de simulation ou en temps réel. Si votre environnement peut établir une connexion WebSocket, il peut piloter un dispositif Inverse.

Pour des exemples spécifiques à chaque langage, consultez les dépôts d'exemples publics : C++ et Python.

Interfaces de communication

Le service met à disposition deux canaux de communication :

ChaînePortTransportsObjectif
Simulation10001WebSocketBoucle commande/état en temps réel (1 message entrant → 1 état sortant)
Evénements10020WebSocket (en lecture seule)Événements système : sécurité, batterie, connexion, alertes de débit
HTTP10001RESTRequêtes de configuration sans état, paramètres, gestion des sessions, analyse des appareils

Toutes les charges utiles sont au format JSON. Consultez les conventions JSON pour connaître les règles relatives à l'enveloppe standard, aux ports et au type de contenu.

Cas d'utilisation

ObjectifPar où commencer
Envoyer des forces ou des cibles de positionnement à un dispositif haptiqueContrôle en temps réel
Configurer la base, le montage, les préréglages ou les filtresConfiguration de la session
Se déplacer dans une scène (locomotion à vitesse contrôlée)Module de navigation
Surveiller les événements système (sécurité, batterie, connexion)Événements et surveillance
Apprendre par l'exempleTutoriels

Système de coordonnées

Le repère interne Haply est orienté vers la droite (axe Z vers le haut: +X à droite, +Y vers l'avant, +Z vers le haut). Vous pouvez le remapper sur le repère de votre application à l'aide d'une simple permutation de bases: une fois cette configuration définie, toutes les entrées et sorties sont automatiquement converties.

Deux transformations permettent de positionner l'appareil dans votre scène :

  • Mount — le décalage physique du périphérique (défini via un préréglage ou explicitement)
  • Espace de travail — décalage d'exécution pour la navigation entre les caméras et les scènes (définissable manuellement ou via le module Navigation)

Consultez la section « Mount & Workspace » pour découvrir l'ensemble du processus de traitement des coordonnées.

Exécution du service

Le service Inverse peut fonctionner selon deux modes :

  • Intégré au Haply (recommandé) — le Haply intègre la dernière version du service et la lance automatiquement dès que le Hub est ouvert. 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 exécuté.

Gestion du service autonome

Windows — Ouvrez l'application Services : appuyez sur Win+R, tapez services.msc, recherchez «Haply Service », 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 :