FAQ
Common questions from developers building with HEXR.
Frequently asked
Which headsets and platforms does HEXR support?
With the Unity package, Meta Quest 2, 3 and 3S and PICO 4 and 4 Ultra (consumer and Enterprise) builds connect to the glove, and so do the Unity Editor and builds on Windows. Microsoft HoloLens and Leap Motion work through separate, older integrations. The Python library runs wherever bleak does: Windows, macOS and Linux. What each has been validated with is in Platform & headset support.
How do I integrate HEXR?
In Unity, install the com.microtube.hexr package and pick OpenXR, Meta OVR or PICO in Project Setup — see Unity integration. Or control the glove directly from Python.
Is Unreal supported?
Not yet. Today HEXR ships a Unity package and a Python library — there is nothing to install for Unreal at the moment. Unreal support is in progress. If you are planning an Unreal project, tell us: what people actually need shapes what gets built first.
How do I get the Meta XR SDK?
The Unity package registry does not carry com.meta.xr.sdk.*, so Package Manager cannot install it by name on its own. Open the free Meta XR All-in-One SDK on the Asset Store, click Add to My Assets, then install it in Unity from Window → Package Manager → My Assets. After that, press Re-scan in HexR → HexR Tools → Project Setup. OpenXR needs none of this — all of its packages come from the Unity registry. PICO’s OpenXR plugin is the exception: it is a manual download from PICO’s developer site.
Which Unity version do I need?
Unity 2022.3 LTS or newer, verified through Unity 6000.6. That is what the com.microtube.hexr package declares, and Package Manager will refuse to install it on anything older. You also need git on your PATH, because Unity shells out to it to fetch the package. The full support matrix — and what to do when a Unity upgrade breaks a build — is on Unity version support.
Do I have to copy the HEXR folders into my project?
No — not ours. Install the package from its git URL and everything of HEXR’s comes with it: scripts, prefabs, the HaptGlove runtime and the Bluetooth transports for Windows and Android. Copying those folders out of a tutorial project instead gets you duplicate assemblies and a compile error.
Your XR backend is a different matter. HEXR deliberately depends on neither OpenXR nor Meta OVR — it compiles in a project with no XR at all — which also means nothing installs one for you. You still need to bring your own backend and a hand-tracking rig from it, and some HEXR components expect that backend’s types to be present.
Open HexR → HexR Tools → Project Setup, pick the backend your project targets, and install whatever it reports missing. OpenXR packages all come from Unity’s own registry; the Meta XR SDK does not, so it needs adding to your Unity account first — see Unity integration.
I set everything up but no haptics fire. What is wrong?
Find out whether the glove or your scene is at fault before changing any code — the two look identical from inside Unity.
Test the glove on its own
Open HEXR Tester, connect the glove, select a single channel and press Trigger. This takes your project out of the picture entirely.
Nothing in the tester either? It is the hardware
Check the arm module is powered and the battery light is not red. Then check the fit — a finger that is not pushed all the way in leaves the indenter off the fingertip, and nothing is felt even though the channel is working. Then run Quick test: one bad channel is an indenter or valve fault, all six failing at once is the pump or its supply.
It fires in the tester? Then the glove is fine — it is your scene
Work through the list below one change at a time, pressing Play after each. Changing three things at once and getting haptics tells you nothing about which one mattered, and these faults stack — fixing the collider does nothing while the glove is still unconnected.
| Check | Why it silences everything |
|---|---|
| The glove is actually connected in the scene | The connection is made from your own project. If nobody pressed the HexR menu’s Connect Left Glove / Connect Right Glove, or the HexR Haptics Tester’s Connect in the Editor, and your code does not call HexRManager.Instance.Connect(...), every call is sent to nothing. Check bleConnected before blaming anything else |
| Pressure Controllers are in the scene | Every haptic call looks one up and produces nothing without it. HexR → Create HexR Rig adds them |
| The scene has hands in it | HEXR follows a rig that is already there; it does not create one. No tracked hand, no hand-near, no haptics. On Meta, Building Blocks’ Hand Tracking block is not enough — add Interactions Rig. See Set up the scene |
| The object has the parts its component needs | SpecialHaptics needs both Pressure Controllers assigned (Auto Find Hand Physics). HexRInteractableHaptics needs your SDK’s interactable on the object. The object itself needs no Rigidbody for touch: every touch point already carries one |
| The Collider is set to Is Trigger | A solid collider collides; it does not raise the trigger events HEXR listens for |
| Something tells HEXR the hand is near | Most calls only fire while a grab interactor, a poke interactor or a ProximityCheck says a hand is near. On OpenXR, HEXR reads XR Direct, XR Poke and, from 0.9.4, Near-Far Interactors — a Near-Far one only for near grabs. Before 0.9.4 a rig that grabs with a Near-Far Interactor needed a ProximityCheck on the object. See the hand-near check |
| Run Validate Scene Setup | HexR → Troubleshoot → Validate Scene Setup reports anything still unwired, and catches most of the above in one pass |
Auto Setup says it couldn’t find a tracked hand. What is missing?
The hands. Auto Setup attaches HEXR to a hand model that is already in the Hierarchy, and there isn’t one yet.
On Meta, the usual cause is Building Blocks’ Hand Tracking block. It switches hand tracking on, but its hand model is only built once the app is running, so in the Editor there is nothing to attach to. Delete its two [BuildingBlock] Hand Tracking objects and add the Interactions Rig block instead. On OpenXR or PICO, add the XR Origin Hands (XR Rig) prefab from the XR Interaction Toolkit’s Hands Interaction Demo sample.
Then run HexR → Troubleshoot → Re-run Auto Setup. Full steps in Set up the scene.
Is hand-tracking required?
Yes. HEXR doesn't track your hand itself — it relies on hand-tracking from your headset or an external device like Leap Motion, and adds the touch-feedback layer on top. See Working with hand-tracking.
Can I pip install the Python library?
Not yet — HaptGlovePython runs from a clone (git clone, then pip install -r requirements.txt). Publishing it to PyPI would enable pip install.
What is the latency?
It depends on your setup, and the end-to-end figure has not been measured for the current glove. Three things add up: on Quest and PICO builds the package sends commands at most every 100 ms by default; Bluetooth adds whatever connection interval your headset or PC picks; and the glove starts its pump within 20 ms of a command, then ramps to the target over roughly 90–300 ms at full speed. The breakdown is in Latency.
Can I use HEXR with custom or research hardware?
Yes — we partner on custom and research integrations. Reach out via the contact page.
Where do I report bugs or request features?
Open an issue on GitHub, or contact us directly.