Getting Started
Install the HEXR SDK, trigger your first haptic event, and learn the core concepts — for Unity and Python.
Overview
HEXR is a wearable haptic glove that brings the sense of touch into VR, mixed reality and other interactive apps. At a high level, four steps take you from the glove to working haptic feedback in your project:
Connect
The glove pairs wirelessly over Bluetooth (BLE) to your game or app — no cables to your machine.
Build
Develop in Unity (via OpenXR, Meta OVR or MRTK) or drive the glove directly from Python.
Trigger
Fire haptics from events in your code or from physics-based colliders in your scene — to simulate touch (pressure) or vibration.
Customize
Address each finger independently, and tune every actuation across three parameters — intensity (target pressure), speed (how fast it ramps) and frequency (vibration).
HEXR relies on your headset or Leap Motion for hand-tracking and layers realistic feedback on top, with sub-20 ms response. This guide takes you from an empty project to your first haptic pulse — if you prefer to read code, jump straight to the Quickstart.
Prerequisites
- A HEXR glove and forearm driver (Glove 2.0)
- A headset with hand-tracking — Meta Quest 2 / 3 / 3S, Pico 4, or HoloLens — or an external tracker like Leap Motion (HEXR relies on this for tracking)
- Unity 2022.3 LTS or newer, or Python 3.9 or newer
- The HEXR SDK (from GitHub)
New to HEXR hardware? Pair and power on the glove first, then confirm it appears in the HEXR companion app before wiring up the SDK.
Installation
Pick your platform. In Unity, choose your runtime tutorial (OpenXR, Meta OVR or MRTK); for Python, install the library.
Each Unity integration ships as a complete tutorial project — the HEXR package plus a working demo scene. Clone the one for your runtime:
- OpenXR tutorial — Unity + OpenXR plugin
- Meta OVR tutorial — Unity + Meta OVR plugin
- MRTK tutorial — Unity + Mixed Reality Toolkit
# Example: the OpenXR tutorial
git clone https://github.com/MicrotubeTechnologies/HexR-developer-tutorial-XR.gitClone the Python repo and install its dependencies:
git clone https://github.com/MicrotubeTechnologies/HaptGlovePython.git
cd HaptGlovePython
pip install -r requirements.txtThen run AddressDiscovery.py to find your glove's Bluetooth address and set it in ExampleHaptics.py.
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.
Quickstart
Connect to a glove and fire a short pulse when the user touches an object.
In Unity, the integration is handled by the tutorial project for your runtime — clone it, open the demo scene, and you have a working HEXR setup to build on. Start with the OpenXR, Meta OVR or MRTK tutorial.
A full C# API reference for Unity is on the way — for now, the tutorial projects show the current integration end to end.
import asyncio
from bleak import BleakClient
from Haptics import Haptics
DEVICE_ADDRESS = "EC:C9:FF:45:92:86" # your glove (see AddressDiscovery.py)
CHAR_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"
async def main():
haptics = Haptics("right")
async with BleakClient(DEVICE_ADDRESS) as client:
# Pressure on all fingers — intensity 0.1–1.0
data = haptics.hexr_pressure_multiple(
["Thumb","Index","Middle","Ring","Pinky"],
[True]*5, [0.8]*5, [1.0]*5)
await client.write_gatt_char(CHAR_UUID, data)
await asyncio.sleep(5)
asyncio.run(main())Always check that a glove is connected before sending events — calls to a disconnected glove are ignored, but polling in a tight loop can flood the driver. Gate feedback behind your interaction callbacks.
Core concepts
Haptics triggers
Haptics are triggered in one of two ways: by events you raise in code — a touch, a grasp, a release — or by physics-based colliders in your scene, where contacting or entering a collider fires the feedback automatically. Choose whichever suits the interaction: explicit events for full control, or colliders for hands-off, physics-driven touch.
Collider-based touch
For physics-driven feedback, HEXR places colliders on the fingertips and palm. These use Unity trigger-based colliders — when a fingertip or the palm overlaps a virtual object's collider, the trigger fires the haptic feedback, mimicking the sensation of touch. It's a hands-off way to feel objects in a scene without wiring up explicit events.
Actuators & fingers
Each glove exposes soft pneumatic actuators mapped to the fingers. You address feedback per finger, with a target intensity, a speed to reach it, and a frequency for vibration.
| Parameter | Type | Description |
|---|---|---|
| finger | Finger | Which finger to actuate (Thumb…Pinky) |
| intensity | float 0–1 | Target pressure of the actuation |
| speed | float 0–1 | How fast it ramps to the target intensity — 1 reaches it as fast as possible, 0.1 ramps up slowly |
| frequency | 0–40 | Adds vibration to the actuation — 0 is steady pressure, higher values vibrate faster |
Hand-tracking
HEXR does not track your hand on its own — it relies on external hand-tracking, either from your headset (Meta Quest 2/3/3S, Pico 4, HoloLens) or a device like Leap Motion. HEXR adds the touch-feedback layer on top of that tracking.
Ready to go deeper? Grab the HaptGlovePython library or a runtime tutorial — deeper integration guides and the full API reference are coming soon.