Microtube Docs
Developers / Tutorials / PICO walkthrough

PICO tutorial project

Build the demo for a PICO headset, connect the gloves, try the four demos, then add haptics to an object of your own.

1. Before you start

You needWhy
A PICO 4, 4 Ultra or Neo3Hand tracking; there is no controller fallback
Unity 6000.6.0f1The version the project is saved with
Git on your PATHUnity fetches the HEXR package through git. Without it every HEXR script opens missing
HEXR glovesOnly to feel it. Everything builds and runs without them

2. Build and install

shell
git clone https://github.com/MicrotubeTechnologies/HexR-Developer-Tutorial-Pico.git
  1. Open it in Unity 6000.6.0f1

    The first open takes a long time: Unity is fetching com.microtube.hexr and importing thousands of assets. Let it finish. The PICO OpenXR plugin is already in Packages/.

  2. Put the headset in developer mode

    Settings → General → About, tap the software version until developer options appear, then Settings → Developer → USB Debugging. Plug it in and accept the prompt inside the headset.

  3. Build And Run

    File → Build Profiles → Android → Switch Platform, then Build And Run. Every build setting is already in the project.

Package Manager cannot resolve com.microtube.hexr

Git is missing from your PATH. Run git --version; if it fails, install git and restart Unity.

3. Connect the gloves

First, allow the app to see Bluetooth devices. In the headset: Settings → Apps → HexR developer tutorial XR → Permissions, allow Nearby devices and Location, then relaunch.

The app runs but the glove never connects

It is almost always these two permissions.

The app opens in passthrough with the HexR panel floating to your left. Press its buttons with your index fingertip; grab the header to move it.

The HexR floating panel on PICO, showing the GLOVES, VIEW and DEMOS sections
The panel. GLOVES connects, VIEW shows the touch points, DEMOS switches demo groups.
  1. Power on the arm module

  2. Press Connect Left Glove

    The button shows the status: searching, connected, then ready with the battery level.

  3. Then Connect Right Glove

    Each hand is its own connection with its own battery.

Show Colliders draws the six touch points on each hand: five fingertips and the palm. A haptic fires when one of them enters an object.

4. Try the demos

Everything is in one scene. The panel’s DEMOS buttons switch between four groups. Every haptic is a component on an object; the table under each group says which.

Grab Demo

The Grab Demo group: apple, key, torch and human heart on a table with their info cards
Apple, key, torch, heart. Grabbing is XRI’s; HEXR adds the feel.
ObjectDo thisYou feelHow
ApplePick it upPressure on thumb, index and middleHexRInteractableHaptics next to the XR Grab Interactable
KeyPinch itA pinch on thumb, index and middleSame component
TorchGrab it, then put a finger in the flameThe whole hand squeezes; a finger in the flame buzzesSame component on all channels; a SpecialHaptics zone (Custom Vibrations) around the fire
HeartPick it up and hold itA slow, steady heartbeatA SpecialHaptics zone (Heart Beat)

Rain Demo

The Rain Demo group: a fountain on a table and a storm cloud raining
Reach into the fountain; hold a flat hand under the cloud.
ObjectDo thisYou feelHow
FountainPut your hand in the waterA fine spray on every finger and the palmSpecialHaptics zone, Fountain
RainHold your palm under the cloudRandom taps, like drops landing. Only the palm triggers itSpecialHaptics zone, Rain Drop

Puzzle Demo

Can you light every bulb by pressing the buttons? Each button feels different.

The Puzzle Demo group: three push buttons and a row of light bulbs
Three poke buttons, five bulbs.
ObjectDo thisYou feelHow
Button 1Poke itA slow pulse on the whole handThe XR Simple Interactable’s Select events call TriggerAllVibrations(0.6) and RemoveAllVibrations()
Button 2Poke itA steady pressSame events, TriggerAllHapticsIncrease(0.4)
Button 3Poke itA 10 Hz buzzSame events, TriggerAllVibrations(10)

Medical Demo

The Medical Demo group: a patient mannequin on a bed
Pulse at the wrists and neck; breathing at the mouth.
ObjectDo thisYou feelHow
Wrist and neckRest two fingertips thereA pulse, about 60 a minuteSpecialHaptics zones, Heart Beat
MouthHold your hand near itA faint, slow breathSame effect, light and slow

How it works

You build the app the ordinary XR Interaction Toolkit way. HEXR reads what XRI already knows — grabbed, hovered, poked — and adds the feel. Three ways to fire haptics, all in the demos:

WayPut this on the objectUsed by
ComponentHexRInteractableHaptics beside the XR Grab Interactable. Pick fingers and strength. Nothing to wireApple, key, torch
ZoneA trigger collider + SpecialHaptics. Press Auto Find Hand Physics, pick an effectFlame, fountain, rain, heart, pulse
EventAn interactable’s Select Entered / Exited calling a Pressure Controller methodThe buttons

The numbered scenes in Assets/Scenes/ each isolate one of these: 1.Basic Tutorial (component), 2.Special Haptics (zones), 3.Button (events). Open one, select an object, read its Inspector.

5. Add haptics to your own object

  1. Give it an XR Grab Interactable

    As you would without HEXR.

  2. Add HexRInteractableHaptics beside it

    Tick the fingers, set a strength. Leave Backend on Auto.

  3. Press Play, grab it

    With a glove connected, you feel it. No events to wire.

For a surface instead of a grab, use a zone: trigger collider + SpecialHaptics. For a button, call a Pressure Controller from its Select events and give it a ProximityCheck child.

HexR menuUse it to
Create HexR Rig → Open XRSet up a new scene: rig, Pressure Controllers, wiring
Troubleshoot → Validate Scene SetupCheck hands, Pressure Controllers and touch points
Troubleshoot → Re-run Auto SetupRe-wire after you change the scene
HexR ToolsHaptics Tester (fire any channel in Play mode) and Project Setup
Nothing happening?

Gloves connected on the panel? Permissions allowed? For an event-driven object, is there a ProximityCheck? Then run Validate Scene Setup.

Where to go next

If you want to…Read
Add HEXR to a project of your ownUnity integration
See every component and methodSDK architecture & API
Build the same demo for Meta QuestMeta Quest walkthrough

Stuck? Talk to us, or open an issue on the tutorial repository ↗.