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 +image + +3. Move the GameObjects to match your avatar proportions +image +image + +4. (Optional) Disable Haptic points you won't use, this frees your PC from loading unnecesary parameters, even though the performance impact is minimal +image + +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 + +image + +**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 + +image + +image + +### GUIZMO + +image + +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 + +image + +image + +### In-App setup + +image + +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)*** +image +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)*** +image +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*** +image +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 image 3. Move the GameObjects to match your avatar proportions + image + image 4. (Optional) Disable Haptic points you won't use, this frees your PC from loading unnecesary parameters, even though the performance impact is minimal + image 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)*** + image 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)*** + image 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*** + image 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)*** image + 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)*** image + 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*** image + To avoid typing the address manually, you may add them via the **Discovered OSC Addresses** section. ## Quickstart