Getting Started
Set up the HEXR SDK, connect your HEXR glove, trigger your first haptic event, and learn the core concepts for building with HEXR in Unity or Python.
How HEXR Works
HEXR is a haptic glove: it makes the user feel what they touch in VR and mixed reality. It doesn’t track the hand, and it doesn’t add haptics to existing apps by itself. A HEXR app has four parts:
Your app
Built in Unity or Python, with the HEXR SDK added to it.
A Bluetooth link to the glove
Your app connects to the glove itself: press Connect on the HEXR rig’s menu, or call
HexRManager.Instance.Connect(...). Python connects withbleak. Don’t pair the glove in your computer’s or headset’s Bluetooth settings.Hand tracking
Comes from your headset, such as Meta Quest or PICO (supported devices). Tracking knows where the hand is; HEXR decides what it feels.
HEXR components on your objects
Add one to each object the user should feel, starting with
HexRInteractableHaptics. Which component do I need?
Next, try the glove in HEXR Tester. How fast a touch is felt also depends on your headset — see Latency.
Prerequisites
Before you start, make sure you have the following:
- HEXR Glove 2.0 with the arm module
- A compatible headset
- Meta Quest 2, Quest 3, or Quest 3S
- PICO 4 or PICO 4 Ultra
- HoloLens and Leap Motion work through separate integrations — see Platform & headset support
- For Unity development
- Unity 2022.3 or newer
- Git installed and available on your system
PATH— Unity uses it to download the HEXR package - A 64-bit Windows PC to connect to the glove from the Unity Editor. On a Mac you can build, but the Editor cannot connect to the glove
- For Python development
- Python 3.8 to 3.13 on Windows, macOS or Linux
Installation
Choose your development platform below.
HEXR is a Unity package, com.microtube.hexr, installed from a Git URL. Add package by name won’t find it.
Open Package Manager
In Unity, go to Window → Package Manager.
Add the package
Click + in the top-left corner, choose Add package from git URL…, paste this URL and click Add:
texthttps://github.com/MicrotubeTechnologies/com.microtube.hexr.gitTo stay on one release, add
#v0.9.4to the end of the URL.
Set up your XR backend (OpenXR, Meta OVR or PICO) and your scene in the Unity guide. It also covers updating the package and fixing install conflicts.
You need Python 3.8 to 3.13: the library pins bleak 0.22.3, which does not install on Python 3.14. Clone the Python repo and install its dependencies:
git clone https://github.com/MicrotubeTechnologies/HaptGlovePython.git
cd HaptGlovePython
pip install -r requirements.txtThe first script in the Python guide finds your glove by name. The repo’s own ExampleHaptics.py needs its Bluetooth address instead: run AddressDiscovery.py and set the address it prints there.
The Python control library talks to the glove over Bluetooth (BLE) using bleak. It's run from a clone, not yet published as a pip package — adding a pyproject.toml to the repo would enable pip install.
Start with a Tutorial Project
If you prefer to start with a working example instead of setting up a project from scratch, use one of the HEXR tutorial projects below.
Each one fetches the HEXR package by git URL, pinned to #v0.9.3 — one release behind this package; change the pin to #v0.9.4 to get its fixes, and has ready-to-run demo scenes.
- OpenXR / PICO Tutorial — Unity + OpenXR. Walkthrough
- Meta OVR Tutorial — Unity + Meta OVR. Walkthrough
- MRTK Tutorial — Unity + Mixed Reality Toolkit, for HoloLens. Older: it carries its own copy of the earlier HaptGlove plugin rather than this package
HEXR Tester
Before you write any code, try the glove with HEXR Tester, a free app. It connects to the glove over Bluetooth and lets you trigger any finger by hand. It takes about five minutes, and if your own app stays silent later, you already know the glove works.
On a Mac? Get it from the HEXR Tester page.
Install the app
On Android, install it from Google Play. On Windows, run the installer you downloaded. It isn’t code-signed yet, so Windows shows a blue warning screen: check the download first, as described in Check it works, then choose More info → Run anyway.
Put on the glove and switch it on
Attach the glove to the arm module — left to left, right to right — and put it on, pushing each finger all the way into its pocket. Press and hold the power button until the light comes on.
Connect over Bluetooth
Press Scan for gloves. Your glove appears as HaptGloveAR Left or HaptGloveAR Right; press Connect on its row. Connect from the app only — don’t pair the glove in your phone’s or computer’s Bluetooth settings.
Trigger your first haptic
On the test screen, pick that hand, select Index only, choose Pressure, set the intensity to about 0.5 and press Trigger. You feel a steady squeeze on your index fingertip.
Release it
Press Release and the squeeze stops. A finger stays pressed until you release it, close the app or switch off the arm module. All off stops every finger at once.
Play around
Try other fingers, or several at once. Switch from a steady squeeze to vibration, and change the strength and frequency to feel a slow pulse turn into a fast buzz. The app also shows live readings — pressure in each finger, battery and air supply. With two gloves, connect both and drive them together or separately.
Nothing felt? Push the finger all the way into its pocket and try again — most weak or missing feedback comes down to fit. Then run Quick test, which checks all six channels and reports pass or fail for each. Both are in the user manual.
Ready to build? Start with Unity project setup, or the Python guide for a script.
Core concepts
Haptics triggers
There are two ways to fire haptics. You can raise an event in your own code, on a touch, a grasp or a release. Or you can let physics do it, by putting a collider on the object so that contact fires the feedback on its own. Use events when you want precise control over the moment, and colliders when you want touch to just work.
Collider-based touch
HEXR puts a trigger collider on each fingertip and on the palm. When one of them enters a haptic zone — a trigger collider with SpecialHaptics — the zone’s effect plays on that finger. This is the hands-off route: you feel objects in the scene without writing any event wiring at all.
Actuators & fingers
Each glove has six soft pneumatic channels: the five fingers and the palm. You address feedback per channel, with a target intensity, a speed to reach it, and a frequency for vibration. Out-of-range values are clamped, not rejected.
| Parameter | Type | Description |
|---|---|---|
| finger | Haptics.Finger | Which channel to actuate: Thumb, Index, Middle, Ring, Pinky or Palm |
| intensity | float 0.1–1 | Target pressure, about 15–50 kPa. A release sends 0 |
| speed | float 0.1–1 | How fast it ramps to the target intensity — 1 reaches it as fast as possible, 0.1 ten times slower |
| frequency | 0.1–40 Hz | Vibration only: how fast the pressure pulses. Pressure on its own has no frequency, and 0 does not mean off — it is clamped to 0.1 Hz. The Python library goes up to 2 Hz |
Hand-tracking
HEXR does not track your hand on its own — it relies on your headset’s hand-tracking, such as Meta Quest 2/3/3S or PICO 4 / 4 Ultra. HEXR adds the touch-feedback layer on top of that tracking. Other devices are listed in Platform & headset support.
For the full Unity setup, read Unity integration, then SDK architecture & API for every component and method. For Python, start with Python integration.