Aller au contenu principal

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 :

CanalPortTransportsUtilisation
Simulation10001WebSocketBoucle de commande et d'état en temps réel (1 message en entrée → 1 état en sortie)
Événements10020WebSocket (cours magistral uniquement)Événements système : sécurité, batterie, connexion, alertes de fréquence
HTTP10001RESTRequê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​

ObjectifPar où commencer ?
Envoyer des forces ou des instructions de position à un appareil haptiqueContrôle en temps réel
Configurer la base, le montage, le préréglage ou les filtresConfiguration 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'exempleTutoriels

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 :