From 2abc01fdd4bbc677f6a94a3399013ccae3d3b037 Mon Sep 17 00:00:00 2001
From: MooshPaw <125221816+MooshPaw@users.noreply.github.com>
Date: Thu, 28 May 2026 19:48:06 -0500
Subject: [PATCH 1/3] Included instructions for Haptic Setup
Added haptics setup instructions for VRChat avatars and in-app setup.
Added direct download link to the .UnityPackage template, needs to be included on ***Every release*** (or else it breaks)
---
README.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 77 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 5476bf8..ca8754d 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,8 @@ into full-body trackers for **SlimeVR-Server**. Plug a controller into your PC,
strap it on, and it shows up in SlimeVR as a regular tracker — no extra hardware,
no firmware flashing.
+It also incorporates **Haptics** via the device's rumble, for information on how to set this up on your Avatar, go [HERE](#Haptics)
+
The bridge reads the controller's built-in IMU at its native sample rate, runs a
sensor fusion filter (VQF or Madgwick) in Rust, and forwards the resulting
quaternion to SlimeVR-Server over UDP using the official protocol.
@@ -24,7 +26,6 @@ quaternion to SlimeVR-Server over UDP using the official protocol.
> hardware-validated across the supported controllers. If you hit a snag,
> please file an issue with reproduction steps and the logs from the **Logs**
> tab.
-
## Features
- **9 controller families** supported across USB · BT Classic · BLE · TCP.
@@ -116,6 +117,81 @@ page:
Or build from source — see [Building from source](#building-from-source) below.
+## HAPTICS
+### VRChat Avatar Setup
+You **MUST** have [VRCFury](https://vrcfury.com/download) on your Unity Project.
+You **MUST NOT** Upload the avatar as a *test*, as it prevents the inicialization of OSC protocols, please create a duplicate avatar and test it from there.
+
+1. Import the [IMUHaptics.unitypackage](https://github.com/matiaspalmac/everything-imu/releases/download/latest/IMUHaptics.unitypackage) into your Unity Project
+
+2. Drag and drop the prefab found under `Assets/MooshPaw/IMU Haptics` into your Avatar
+
+
+3. Move the GameObjects to match your avatar proportions
+
+
+
+4. (Optional) Disable Haptic points you won't use, this frees your PC from loading unnecesary parameters, even though the performance impact is minimal
+
+
+5. Upload avatar and test
+
+### How to create more points of tracking?
+Duplicate any of the existing tracking points and position it where you want them. Then, change the Avatar Parameter to `Haptics/{YourDesiredName}` and ***REPLACE*** the parent bone under **Armature Link**
+
+* You may also move the GameObject to the bone you want it parented to in the *Hierarchy*
+* You should **avoid** putting the bone on the **Contact Receiver** Component as the [*Gizmo*](#guizmo) won't Sync
+
+***To create one from scratch***, take in mind the following:
+You **MUST** Change the Parameter address. It's recommended to leave the `Haptic/` nomenclature for organization
+You **Should** leave *Local Only* enabled, as there's no need to Sync this parameter since your Haptics run locally. This allows the avatar to get a better rating and avoid's VRChat's maximum contacts
+
+
+
+**Armature Link** automatically parents your haptic point to a Humanoid bone. You must change this bone to the one you want parented to, or move the GameObject within a bone from the *Hierarchy*.
+
+**Avoid** putting the bone on the **Contact Receiver** Component as the [*Gizmo*](#guizmo) won't Sync
+
+
+
+
+
+### GUIZMO
+
+
+
+The guizmo represents the center of the Contact Receiver, as well as where your IRL Tracker should be.
+If your tracker is going to be at your stomach, your Haptic point should also be there
+
+
+
+
+
+### In-App setup
+
+
+
+1. Go to the Haptics section
+2. Enable the *Bridge*
+3. Ensure the OSC Port is `9001` (VRChat's default output)
+4. Test your devices
+5. Add the mappings you need
+6. Change the Parameter Name to `/avatar/parameters/Haptics/{YourHapticPoint}. It **MUST BE THE SAME NAME** as the one from the VRChat contact receiver component. If you misspell it, you won't get any haptic
+7. Select the device that will rumble when your haptic point is triggered
+8. Adjust settings accordingly
+
+***Proximity (variable)***
+
+Variable float strength from 0 to 1, will rumble more when the VRC contact receiver is touched at the center, and less when is touched at the edges.
+
+***Pulse (fixed)***
+
+Activates the Rumble **Once** for a certain amount of time (*Pulse (ms)*) before turning it off. Useful to pair with a VRC contact receiver set to **On Enter**
+
+***Select available OSC addresses***
+
+To avoid typing the address manually, you may add them via the **Discovered OSC Addresses** section.
+
## Quickstart
1. **Install SlimeVR-Server** and leave it running. The default UDP port is `6969`.
From d6a15304a54fbcddac87ecd0b6f99380dc44a222 Mon Sep 17 00:00:00 2001
From: MooshPaw <125221816+MooshPaw@users.noreply.github.com>
Date: Thu, 28 May 2026 19:50:24 -0500
Subject: [PATCH 2/3] Fixed markdown with images
Fixed markdown with images from the new #Haptics section
---
README.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/README.md b/README.md
index ca8754d..65df15a 100644
--- a/README.md
+++ b/README.md
@@ -120,6 +120,7 @@ Or build from source — see [Building from source](#building-from-source) below
## HAPTICS
### VRChat Avatar Setup
You **MUST** have [VRCFury](https://vrcfury.com/download) on your Unity Project.
+
You **MUST NOT** Upload the avatar as a *test*, as it prevents the inicialization of OSC protocols, please create a duplicate avatar and test it from there.
1. Import the [IMUHaptics.unitypackage](https://github.com/matiaspalmac/everything-imu/releases/download/latest/IMUHaptics.unitypackage) into your Unity Project
@@ -128,10 +129,13 @@ You **MUST NOT** Upload the avatar as a *test*, as it prevents the inicializatio
3. Move the GameObjects to match your avatar proportions
+
+
4. (Optional) Disable Haptic points you won't use, this frees your PC from loading unnecesary parameters, even though the performance impact is minimal
+
5. Upload avatar and test
@@ -181,14 +185,17 @@ If your tracker is going to be at your stomach, your Haptic point should also be
8. Adjust settings accordingly
***Proximity (variable)***
+
Variable float strength from 0 to 1, will rumble more when the VRC contact receiver is touched at the center, and less when is touched at the edges.
***Pulse (fixed)***
+
Activates the Rumble **Once** for a certain amount of time (*Pulse (ms)*) before turning it off. Useful to pair with a VRC contact receiver set to **On Enter**
***Select available OSC addresses***
+
To avoid typing the address manually, you may add them via the **Discovered OSC Addresses** section.
From 47f048cce1fe5c9db1ab1201b6c559f981480256 Mon Sep 17 00:00:00 2001
From: MooshPaw <125221816+MooshPaw@users.noreply.github.com>
Date: Thu, 28 May 2026 19:52:18 -0500
Subject: [PATCH 3/3] Final fixes for images markdown
(Yes it took 3 attempts)
---
README.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/README.md b/README.md
index 65df15a..41e5dd2 100644
--- a/README.md
+++ b/README.md
@@ -187,16 +187,19 @@ If your tracker is going to be at your stomach, your Haptic point should also be
***Proximity (variable)***
+
Variable float strength from 0 to 1, will rumble more when the VRC contact receiver is touched at the center, and less when is touched at the edges.
***Pulse (fixed)***
+
Activates the Rumble **Once** for a certain amount of time (*Pulse (ms)*) before turning it off. Useful to pair with a VRC contact receiver set to **On Enter**
***Select available OSC addresses***
+
To avoid typing the address manually, you may add them via the **Discovered OSC Addresses** section.
## Quickstart