Changelog
What changed in each release of the HEXR Unity package, the Python library and the glove.
Unity package — com.microtube.hexr
The current release is 0.9.4, released 11 October 2026. Every release is a tag on the package repository, so you can pin one with #v0.9.4 on the end of the git URL. To see which one a project has, read the "version" field in the package’s package.json, or the entry in Packages/packages-lock.json.
| Release | Date | What changed |
|---|---|---|
| 0.9.4 — current | 11 Oct 2026 | Fixes the Unity issues listed for 0.9.3, except the Mac one — see What 0.9.4 fixes. New: HexRManager.Connect, Disconnect, IsConnected and IsConnecting; HaptGloveHandler.ReleaseAllChannels, ReleaseChannels and releaseWhenPaused; PressureTrackerMain.StrengthToIntensity. The glove is released when the app quits, pauses or disconnects. The package carries edit-mode regression tests. Things feel different: see Upgrading. |
| 0.9.3 | 23 Sep 2026 | The HexR menu shows each finger’s haptics live. HexRGrabbable stays as the alternative grab rather than being deprecated. HexRInteractableHaptics gains Auto Find Pressure Controllers. |
| 0.9.2 | 23 Sep 2026 | PICO: grab haptics now find the XR Interaction Toolkit’s interactors. Show Colliders is visible on hands drawn on culled layers. |
| 0.9.1 | 23 Sep 2026 | The HexR menu ships where the Meta tutorial placed it: to the user’s left, facing them, 0.26 m wide. |
| 0.9.0 | 23 Sep 2026 | Breaking. No ghost hand on either backend: the fingertip and palm triggers sit on your SDK’s tracked hand. PhysicsHandTracking is now HexRTrackedHand. See Upgrading. |
| 0.8.0–0.8.5 | 21 Sep 2026 | The rig prefab has one root again. Menu rework: connection status on the button, passthrough on by default, a scene switcher. Android asks only for the Bluetooth permissions the device actually has. Bluetooth connect diagnostics in the log. |
| 0.7.0–0.7.9 | 21 Sep 2026 | One menu: the HexR menu (HexR → Add HexR Menu) replaces the HexR Panel and becomes the whole control surface, with buttons pressed by a real fingertip. A slimmer HexRManager, and dead code removed. |
| 0.6.0 | 21 Sep 2026 | One HexRInteractableHaptics component for both OpenXR and Meta. The HaptGlove runtime ships as source in the HaptGlove.Runtime assembly instead of a precompiled HaptGlove.dll. Bluetooth drops are detected and retried with backoff. |
| 0.5.0, 0.5.1 | 15–16 Sep 2026 | PICO support, through the OpenXR path. |
| 0.4.0 | 23 Aug 2026 | Unity 2022.3 through 6.x from one codebase. |
| 0.3.0, 0.3.1 | 13–21 Aug 2026 | First release as a standalone package. Neither XR backend is a hard dependency. Create Demo Scene and setup tooling. |
How 0.9.4 was tested. It compiles against Unity 6000.6 with XR Interaction Toolkit 3.6.0 and with Meta XR SDK 205, and its 34 edit-mode regression tests pass. With six of the fixed bugs put back, the tests that cover them fail. It has not yet been run on a headset with a glove, and the tutorial projects still pin 0.9.3.
What 0.9.4 fixes
| In 0.9.3 | In 0.9.4 |
|---|---|
HexRInteractableHaptics.strength was passed as 10–60 into a call that takes 0.1–1, so every value pressed at full strength. SpecialHaptics’ Custom Haptics pressure and HexRPhysicalButton.pressPressure did the same | All three are converted, so 10 is the glove’s lightest pressure (about 15 kPa) and 60 its firmest (about 50 kPa) |
followGrip had no effect: it looked for FingerUseTracking on the Pressure Controller | It finds it on the hand, where the rigs keep it, and scales the pressure with the grip |
HexRGrabbable threw on start without a parent object — the Create Demo Scene cube among them — and its haptics threw on grab. At its default strength of 10 the glove ignored it anyway | It starts at the scene root, sends to the right glove, uses the 10–60 scale, and releases if disabled mid-grab |
ConnectLeftBT() / ConnectRightBT() threw without the HexR menu, and that hand could not connect again until the scene reloaded | They work without the menu, and Connect(hand) is a connect that never disconnects |
The OpenXR hand-near check did not read XRI 3’s Near-Far Interactor, and Validate Scene Setup asked for a ProximityCheck regardless | A Near-Far Interactor’s near grabs count. The validator accepts wired interactors or a ProximityCheck |
| On Meta, Auto Setup looked for the grab and poke interactors only under the hand | It also looks beside the hand, where the Interactions Rig keeps them, and takes only that hand’s |
HexRUsable could not tell the hands apart on Meta, and threw after every use | It reads the hand from the touch point, on both backends |
Nothing released the glove when the app quit or paused. SpecialHaptics did not release when disabled | Quitting, pausing and disconnecting release the glove; so does disabling a SpecialHaptics zone |
Known issues in 0.9.4
| Issue | Workaround |
|---|---|
| If the app crashes or the Bluetooth link drops, the glove keeps its last pressure: nothing can reach it, and its firmware does not release on link loss | Switch the arm module off. In code, release on reconnect — see Release on reconnect |
| On a Near-Far Interactor, hover counts as hand-near only with far casting switched off | Fire on Select, or put a ProximityCheck on the object |
| A macOS Bluetooth library ships in the package, but nothing calls it, so Unity cannot connect to the glove on a Mac | Develop on Windows, or use the Python library on macOS |
The Python library pins bleak 0.22.3, which does not install on Python 3.14 or newer | Use Python 3.8 to 3.13 |
Upgrading
| From | What to do |
|---|---|
| 0.9.3 | Nothing to change in your scenes, but things feel different. Every strength now applies where before they all pressed at full strength, so a strength of 30 is about 30 kPa, not 50, and the HexR menu’s buttons press more lightly; raise a value that now feels too light. Follow grip now follows the grip. HexRGrabbable at its default strength of 10 is now felt. The glove lets go when the app quits or pauses — turn off releaseWhenPaused if you need it held through a pause. HexRUsable fires WhenStopUsingTriggerEvents once after a use, rather than every frame the hand is open |
| Before 0.9 | Code that referenced PhysicsHandTracking, HexrRoot or the rotation offsets needs updating; scenes keep working, because HexRTrackedHand kept the same script GUID. A project with its own copy of the rig under Assets/, or an unpacked rig in a scene, can strip the ghost hand with HexR → Migration → Remove Ghost Hand. Then run HexR → Troubleshoot → Re-run Auto Setup in each scene |
| Before 0.7 | The HexR Panel is gone. Add the HexR menu with HexR → Add HexR Menu |
| Before 0.6 | Delete any HaptGlove.dll or ArduinoBluetoothAPI* binaries of your own under Assets/Plugins/. They now collide with the package’s HaptGlove.Runtime and stop the project compiling |
| 0.2.x | The package no longer pulls in the Meta SDK. A Meta project that relied on it must now declare the Meta XR SDK itself |
Python library — HaptGlovePython
The Python library has no numbered releases. Use the latest commit on its main branch, last updated 5 May 2025.
Glove hardware
HEXR Glove 2.0 is the current generation: an untethered pneumatic glove with the electronics in an arm module at the wrist. This is the hardware version, not a software version. See The kit & hardware.