Free SimHub plugin

Stop mounting a controller on your motion rig.

OXRMC Bridge feeds your motion rig's real pose straight into OpenXR-MotionCompensation — so your VR view stays locked while the rig moves. No controller to strap on. No controller falling asleep mid-stint.

OXRMC Bridge plugin running in SimHub

The problem it solves

The usual way is annoying

VR motion compensation needs an independent reference for how the rig is moving. The documented trick is to strap a VR controller to the rig — but the controller goes to sleep when idle and drops tracking, and there's no setting to keep it awake.

This plugin's way

OXRMC Bridge generates the rig's pose itself and writes it to the shared memory OpenXR-MotionCompensation reads. Nothing to mount, nothing to charge, nothing that sleeps. Set it once and forget it.

How it works

Two modes, automatic switching. Plug in a sensor for true physical accuracy, or run it with zero extra hardware off your game's telemetry.

ModeSourceAccuracyRequires
Sensor WitMotion sensor on the rig High — measures actual physical tilt WitMotion WT901C-RS232 + USB adapter
Telemetry Game g-forces via SimHub Approximate — estimated from accelerations Nothing extra

When a sensor is connected, the plugin reads the rig's real pitch and roll. If there's no sensor (or it disconnects), it automatically falls back to estimating rig motion from the game. Either way it writes to the motionRigPose shared memory that OXRMC reads with type = flypt.

Works with your sim

Anything SimHub supports, including:

iRacingLe Mans UltimateAssetto Corsa ACCAutomobilista 2rFactor 2 Project CarsDirt Rally…and many more

Requirements

  • SimHub 9.x — the free version is fine, no motion-addon license needed
  • OpenXR-MotionCompensation, set to type = flypt
  • Windows with .NET Framework 4.8
  • Optional: WitMotion WT901C-RS232 + RS232-to-USB (CH340) adapter

Works with any motion rig

Every rig has its own post spacing, so measure yours and enter length, width, actuator stroke and 3- or 4-post layout in the plugin panel — it calculates your max angles automatically. No rebuilding, no code. (It ships pre-filled with the author's Sigma Integrale DK2 values as an example — just replace them with your own.)

Setup guide

Two parts: first install OpenXR-MotionCompensation (the tool that actually stabilises your view — this plugin feeds it), then install the plugin and calibrate. Takes about ten minutes the first time.

Part 1 — Install OpenXR-MotionCompensation
1

Download OpenXR-MotionCompensation

Grab the latest installer from the official OXRMC releases page — the file named Install_OpenXR-MotionCompensation_<version>.exe.

Open OXRMC releases ↗

OXRMC GitHub releases page showing the Install .exe asset
2

Run the installer

Run it with your normal gaming Windows account so its settings land in the right place. Accept the default install location (a subfolder of Program Files works for all headsets, including WMR).

3

Run OXRMC once

Launch OpenXR-MotionCompensation (or start any VR game with it) once, so it creates its config file. That's all you need here — the next part sets it to flypt for you automatically.

  • Prefer to do it by hand? Open %LOCALAPPDATA%\OpenXR-MotionCompensation\OpenXR-MotionCompensation.ini and set type = flypt in the [tracker] section.
OXRMC config .ini showing tracker type = flypt and auto_activate = 1
Part 2 — Install the OXRMC Bridge plugin
4

Download & copy the plugin

Close SimHub. Download User.OXRMCBridge.dll and copy it into your SimHub folder (default C:\Program Files (x86)\SimHub\).

⬇ Download plugin

Windows Explorer showing User.OXRMCBridge.dll in the SimHub install folder
5

Enable it in SimHub

Start SimHub → click Add/remove features in the left menu → find OXRMC Bridge and turn it on (also enable Show in left main menu) → restart SimHub when asked.

SimHub's Add/remove features dialog with OXRMC Bridge enabled
6

Open the panel & auto-configure OXRMC

After restart, OXRMC Bridge appears in the left sidebar. Under OXRMC Setup, click Auto-configure OXRMC (flypt) — it sets the tracker type for you and backs up your config. (Skip this if you already edited the .ini by hand.)

With no sensor the plugin runs in Telemetry mode; plug in a WitMotion sensor and it switches to Sensor. Live roll/pitch values move once a game is running.

The plugin's OXRMC Setup section with the Auto-configure button and config path
7

Enter your rig's measurements

Under Rig Dimensions, pick your post layout (3- or 4-post) and enter your rig's length, width and actuator stroke in mm. The plugin uses these to work out your max pitch/roll — wrong numbers mean wrong compensation limits.

  • The fields come pre-filled with the author's Sigma DK2 values — replace them with your own measurements.
  • If your rig software reports different max angles, type them into the optional Override fields.
The Rig Dimensions panel with the post diagram and length, width and stroke inputs
Part 3 — Calibrate in VR
8

Zero it and switch it on

Launch your sim in VR (OpenXR). With the rig at its neutral resting position:

  • CTRL+DEL — calibrate (sets the reference pose)
  • CTRL+INS — activate / deactivate compensation
  • CTRL+D — toggle the centre-of-rotation overlay while you align it to your seat

Drive a lap — the rig moves, your horizon stays put. If an axis fights you, use the plugin's Invert Roll / Invert Pitch buttons.

🛡️

About the Windows warning

The plugin is an unsigned .dll, so Windows SmartScreen may warn you on download — this is normal for free open-source tools and doesn't mean anything's wrong. The full source is on GitHub if you'd rather build it yourself. Click More info → Run anyway, or right-click the file → Properties → Unblock.

⬇ Download plugin OpenXR-MotionCompensation ↗ Plugin source ↗

Fine-tuning & smoothing

It works as soon as it's installed, but a couple of OpenXR-MotionCompensation settings are worth knowing — especially if the view looks shaky. Use the plugin's Open OXRMC Config button to edit them, then reload OXRMC with CTRL+SHIFT+L.

🩹 View shaky? Turn on the input stabilizer

This is the #1 fix for a jittery horizon. In the config under [input_stabilizer] set enabled = 1 and strength = 0.5. Higher = smoother but more latency. (OXRMC samples the tracker at ~600 Hz and low-pass filters it.)

🎯 Telemetry vs Sensor smoothness

Telemetry mode estimates tilt from in-game g-forces, so it's naturally a bit rougher. A mounted WitMotion sensor (Sensor mode) reads your rig's actual tilt and is far smoother. The stabilizer above helps both.

🎚️ Extra smoothing (optional)

For more damping, raise [rotation_filter] and [translation_filter] strength from 0 toward ~0.1–0.3. Same trade-off as always: smoother motion, a little more latency. Leave at 0 if it already feels good.

▶️ Auto-start

Auto-configure also sets auto_activate = 1, so compensation kicks in by itself after a 10-second countdown — no need to press CTRL+INS every session. You can still toggle it manually with CTRL+INS any time.