This guide provides information on how to install, setup, and use the Sim Racing Studio IntelliComp Motion Compensation with OpenXR Motion Compensation.
IntelliComp does not require the WitMotion Sensor and works exclusively with OpenXR Motion Compensation. In order for IntelliComp to work, you must have OpenXR Motion Compensation installed and the game must utilize OpenXR when using Virtual Reality (VR).
OpenXR Motion Compensation (OXRMC) is the latest version of motion compensation which removes a motion platform's movements by changing the communicated position of a VR Headset before the VR image is rendered. This will allow the VR image to remain firmly in the seat or cockpit when racing or flying instead of being moved outside of the car or cockpit when the motion platform has a large amount of movement. This will increase the immersion and improve the actual feeling of motion while in VR.
OpenXR is a new open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR)—collectively known as XR—platforms and devices (https://www.khronos.org/openxr/). OpenXR is the latest version of VR motion compensation which can be utilize instead of OpenVR motion compensation.
Not all games currently support OpenXR for VR. Please review if the game supports OpenXR before using OpenXR Motion Compensation. If OpenXR is not supported, OpenVR Motion Compensation is available here: https://simracingstudio.freshdesk.com/support/solutions/articles/35000209208-motion-compensation-setup or you can utilize OpenComposite which allows OpenVR games to use OpenXR instead (details in the guide below).
For OXRMC Troubleshooting, please utilize this article: https://simracingstudio.freshdesk.com/support/solutions/articles/35000219657-openxr-motion-compensation-troubleshooting
- Note: The Sim Racing Studio IntelliComp Motion Compensation will compensate platform movement on the Pitch, Roll, Yaw, Sway, and Surge axis for actuator and non-actuator platforms. Heave is not compensated at this time.
- All actuator based platforms supported by Sim Racing Studio will work with IntelliComp.
- Only the DOF Reality H3 and P3 are supported by IntelliComp at this time.
IMPORTANT: This guide will cover basic setup of OXRMC using the new IntelliComp feature in Sim Racing Studio. For advanced settings and additional details regarding using OXRMC, please refer the the README.html file located on the OpenXR Motion Compensation releases page here: https://github.com/BuzzteeBear/OpenXR-MotionCompensation/releases/
Topics include:
Requirements
OXRMC Installation
Initial Sim Racing Studio Configuration
Configuring OXRMC Settings
Creating an Activate and Recalibrate Center Shortcut
Launching OXRMC
OXRMC Graphic Overlay
Adjusting SRS Motion Compensation Settings
OXRMC Center of Rotation Save Location
Keyboard Shortcuts
Launching OXRMC
OXRMC Graphic Overlay
Adjusting SRS Motion Compensation Settings
OXRMC Keyboard Bindings
Troubleshooting
Requirements
The following items are required to use SRS IntelliComp Motion Compensation:
- SRS Premium Add-On Subscription for the SRS Base License
- OpenXR Motion Compensation (OXRMC)
In addition to the requirements above, OpenComposite will be needed for OpenVR games that do not have native OpenXR support. Note: OpenComposite is not officially supported and may not work for all games.
- OpenComposite (Optional) for OpenVR games
Sim Racing Studio Premium Add-On Subscription
A Sim Racing Stuidio Premium Add-On Subscription is required to enable OpenXR Motion Compensation in Sim Racing Studio. A SRS Premium Add-On Subscription can be purchased here or from within SRS by going to SETUP > License and clicking the Premium purchase button. This add-on subscription enables SRS to continue development on new and experimental projects and provides additional features including:
- Joystick Telemetry Maker
- Premium Shaking Effects
- Mobile Companion to access SRS from Phone or Tablet
- Pro-Tune Profile Downloads
- Cloud Tune Sharing and Importing
- Intellitune WIzard for Motion Platforms
- Cloud Backup and Restore
Note: A SRS Base License is also a requirement as the SRS Premium Add-On Subscription is just an add-on to the Base License. You can find more information about the differences here.
OpenXR Motion Compensation
OpenXR Motion Compensation can be downloaded from here: https://github.com/BuzzteeBear/OpenXR-MotionCompensation/releases/
Two files can be found in the Assets section:
Click on the files to download them to your computer.
IMPORTANT: OpenXR Motion Compensation: OpenXR is primarily developed by Sebastian “BuzzteeBear” Veith with assistance from mbucchia. Please support Buzzteebear for his development of OpenXR Motion Compensation with any type of donation you can provide. You can utilize the support links: Sebastian “BuzzteeBear” Veith PayPal Donation Link: https://www.paypal.com/donate/?hosted_button_id=Q64DT2ADFCBU8 Support BuzzteeBear on GitHub: https://github.com/sponsors/BuzzteeBear Feedback and assistance with OXRMC: oxrmc@mailbox.org
NOTE: Sim Racing Studio does not develop or maintain OpenXR Motion Compensation.
OXRMC Installation
The next step is to install OpenXR Motion Compensation (OXRMC).
Download the latest version of OXRMC from here.
Run the Installer
Notes on OXRMC installation:
- Run the installation with Administrative Privileges (Run as administrator)
- Using a sub-directory of Program Files as installation target is recommended, especially for compatibility with WMR based headsets.
- Run the OXRMC installer using the same Windows account used for your games.
- When installing OXRMC, you might receive a Windows warning like the one below. Please click on the More info link and then the "Run Anyway" option.
Initial Sim Racing Studio Configuration
1. Ensure you have the latest BETA version of Sim Racing Studio. You can download the latest BETA version of Sim Racing Studio from the downloads page here by click LATEST BETA. You must have version 2.34.2.0 or higher (check in SETUP > App).
2. Open Sim Racing Studio and go to SETUP > Motion Compensation
3. Click the Config button next to SRS OpenXR Tracker
4. If OXRMC and the SRS Virtual Tracker (via the Latest Beta) are all installed correctly, you will see Installed next to OpenXR Motion Compensation and Configured next to SRS OpenXR Tracker in the Health Check section. If not, click the Refresh button to enable SRS to check again.
5. SRS is now set at the virtual tracker for OXRMC and should show as Configured.
6. IntelliComp uses the SRS OpenXR Tracker for OpenXR Motion Compensation. To set Sim Racing Studio to utilize IntelliComp instead of a WITMotion Sensor, use the pull-down menu in the SENSOR section and select
7. Scroll down to the SETTINGS section. The SENSOR section as it will be adjusted in the Adjusting Sim Racing Studio Motion Compensation Settings below.
8. In the SETTINGS section, in the Seated Height (mm)field, enter the number 1. OXRMC will handle the calculation of the height automatically; however, you will still need to at least enter the number 1 in the Seated Height (mm) field for Sim Racing Studio.
IMPORTANT: Do not enter any value higher than 1 in the field or OXRMC will not compensate properly.
9. For Actuator Platforms only, insert the distance from the center of your vertical actuators from left to right and from front to back in the respective fields. Also enter the stroke in millimeters for your vertical actuators and your surge actuator if available.
IMPORTANT: When finished making changes, click SAVE at the top right in Sim Racing Studio.
Keyboard Shortcuts to Toggle the OXRMC Overlay, Calibrate the Center (Neutral Pose), and Activate OpenXR Motion Compensation
In order to calibrate and activate OXRMC, you will need to use keyboard shortcuts you can access while in VR. These shortcuts will allow you to activate a OXRMC Graphic Overlay (Virtual Tracker) in VR that you can see when Calibrating the Center (Neutral Pose) in VR. The Overlay will only appear in VR when you activate it via a shortcut key.
The default shortcut keys for OpenXR Motion Compensation are:
Toggle the OXRMC Graphic Overlay (Virtual Tracker) is CTRL+D
Calibrate Center (Neutral Pose) for OXRMC is CTRL+DEL
Activate OXRMC is CTRL+INS
These shortcuts can be rebound to different keys via the OpenXR-MotionCompensation.ini file. This might be necessary if the OXRMC keybinds conflict with keybinds you have in a specific game.
If these shortcuts need to be changed, it can be done so in the OpenXR-MotionCompensation.ini file file's fields below:
; GENERAL
; (re)activate and deactivate motion compensation
activate = CTRL+INS
; (re)set reference pose for tracker
center = CTRL+DEL
; VIRTUAL TRACKER
; toggle overlay display on/off
toggle_overlay = CTRL+D
More information on creating keyboard shortcuts can be found in the Keyboard Shortcuts section below.
Voice Commands
When using OXRMC shortcuts, you will hear an automated voice notifying you of what shortcut was pressed. This should include Overlay Activated, Overlay Calibrated, and Motion Compensation Activated/Deactivated.
Initial Setup and Calibrating the OXRMC Center of Rotation (COR)
In order for OXRMC to correctly compensation the VR image, you have to provide the information on where the Center of Rotation (COR) of your motion rig is positioned and which way is forward. This can be done with the following steps:
- Calculate, measure or estimate the distance between your headset and the Center of Rotation of your motion rig in forward/backward, up/down and left/right direction (This is typically near the bottom of the seat in the platform; however, it may be different based on the platform) in centimeters (cm).
This would be from the center of your head to the center of rotation of your platform.
The motion platform's center of rotation is defined as the point around which the platform is rotated. This is a point in space in which primarily pitch and roll rotate. Take into account all potential motion of your platform and where the center point of rotation would be floating in space. If in doubt, activate the Test Motion function in Sim Racing Studio and move your platform on the Pitch and Roll access to visualize where the Center of Rotation would be. - Enter the offset values in the OpenXR-MotionCompensation.ini file in the [tracker] section as seen below. Note: The values below are an example and the measurement that should be utilized is in centimeters (cm). Measure and utilize the correct values in cm that you obtained from Step 1 above.
Note: The Virtual Tracker can also be moved and re-positioned while in VR. Utilize the following keyboard shortcuts to position the Virtual Tracker manually if required which can be found in the OpenXR-MotionCompensation.ini file: - Save the OpenXR-MotionCompensation.ini file and close it.
- Start the OpenXR game of your choice
- Ensure the motion platform is in a neutral position
- Sit in your your motion platform
- Put your HMD on and face forward (this will be the direction when accelerating/surging forward).
Note: Potential rotation of the HMD on the roll and pitch angle is ignored for the calculation - Issue the Toggle OXRMC Graphic Overlay command (default is CTRL + D). This will activate the Virtual Tracker in VR. The Virtual Tracker might be located in VR that is behind, below, or above you when it is first turned on and might be difficult to see.
- Issue the Calibrate Center (Neutral Pose) command (default is CTRL + DEL).
- If you setup the Center of Rotation offsets correctly, you should see the Virtual Tracker appear in VR at the location specificed by your measurements (Usually down near the bottom of your seat or down slightly in front of your seat) if you are looking straight forward in VR when you issue the command.
Note: You want to be looking straight forward when issuing the Calibrate Center command as it will impact the direction the Virtual Tracker is facing. If you are looking to the side or slightly off center, then Motion Compensation will not work correctly as it is not calibrated correctly. Always ensure you are looking straight forward and utilize the Calibrate Center command often if your VR image becomes uncalibrated or if you turn SRS off and then back on. - Once the Virtual Tracker is pointed and located in the correct position, activate OXRMC by using the Activate Command (default is CTRL + INS).
Launching OXRMC after Initial Setup
- Make sure the game your using OXRMC motion compensation with support OpenXR -or- you are using OpenComposite
- Start the game
- Center the in-app view
- Bring your motion platform to neutral position
- Reset the ingame view if necessary
- Press the
activate
shortcut (CTRL + INSERT by default). This implicitly sets the neutral reference pose for the tracker
- If necessary you can recalibrate the tracker by pressing activating the graphic overlay (CTRL + D) and then the
center
shortcut (CTRL + DEL) while the motion rig is in neutral position. - You can increase or decrease the filter strength of translational and rotational filters in the OpenXR-MotionCompensation.ini of the image is swimming or laggy using the following keyboard shortcuts found in the OpenXR-MotionCompensation.ini file:
Keyboard Shortcuts
Keyboard shortcuts can be edited in the OpenXR-MotionCompensation.ini file, usually located at "...\Users\*<Your_Username>*\AppData\Local\OpenXR-MotionCompensation" to activate/deactivate or re-calibrate motion compensation during game-play.
Note that all keys and values in the configuration file(s) are case sensitive. That means all keyboard shortcuts must only contain capital letters, numbers and/or underscores
- shortcuts: can be used to configure shortcuts for different commands (See the OXRMC Keyboard Bindings at the bottom of this guide valid values):
- activate- turn motion compensation on or off. Note that this implicitly triggers the calibration action (center) if that hasn't been executed before.
- center - recalibrate the neutral reference pose of the tracker
- translation_increase, translation_decrease - modify the strength of the translational filter. Changes made during runtime can be saved by using a save command (see below).
- rotation_increase, rotation_decrease = see above, but for rotational filter
- offset_forward, offset_back, offset_up, offset_down, offset_right, offset_left - move the center of rotation (cor) for a virtual tracker. The directions are aligned with the forward vector set with the center command. Changes made during runtime can be saved by using a save command (see below).
- toggle_overlay - (de)activate graphical overlay displaying the reference tracker position(s) (See Graphical overlay for details).
OXRMC Graphic Overlay
You can enable/disable the overlay using the toggle_overlay
shortcut. It displays a marker in your headset view for:
- The current neutral position of the reference tracker. Note that the position of the marker does not represent the Center of Rotation position prior to calibration
- For the SRS virtual tracker, the neutral position corresponds to the center of rotation currently configured. The marker uses the following color coding:
- blue points upwards
- green points forward
- red points to the right
- if blue and red are pointing in the opposite direction, try setting
upside_down
to 1 in thestartup
section of the config file of the corresponding application (or check if it is set to 1 inadvertently).
- For the SRS virtual tracker, the neutral position corresponds to the center of rotation currently configured. The marker uses the following color coding:
- The SRS virtual tracker position, if motion compensation is currently active. This marker uses:
- cyan instead of blue
- yellow instead of green
- magenta instead of red
Adjusting SRS Motion Compensation Settings
SRS Motion Compensation should now be working. You will now need to finalize your settings and test motion compensation in Sim Racing Studio.
You will be observing how well the motion compensation is working in VR while at the same time adjusting the settings in the SENSOR section of the Motion Compensation page below.
During testing, you will need to turn Off the Roll, Sway, and Surge motion compensation settings. Do this by using the On / Off switches next to each axis:
During testing, you might need to REVERSE an axis in motion compensation due to the orientation of the Witmotion Sensor. Do this by using the Normal / Reversed switches for each axis:
The Factor sliders are utilized to fine tune the amount of motion compensation used on the Sway and Surge axis. For platforms that do not have dedicated sway movement/actuators, sway is converted into roll. For platforms that do not have dedicated surge movement/actuators, surge is converted into pitch.
Sway Factor is the amount of motion compensation that is applied to the Sway axis. The higher the amount, the more compensation is utilized. This slider can be reduced to negate any potential over or under compensation which will result in inaccurate movements in the VR image for Sway. If the sway movement is not matching what is seen in the VR image, try reducing the Sway Factor.
Note: SRS IntelliComp does not compensate for Heave at this time.
Surge is the amount of motion compensation that is applied to the surge axis. The higher the amount, the more compensation is utilized. Similar to sway, if the surge movement is not matching what is seen in the VR image, try reducing the Surge Factor.
Horizontal Factor (For actuator platforms with horizontal surge actuators only) is the amount of motion compensation that is applied to the horizontal surge axis similar to the Sway Factor and Surge Factor as listed above. If the surge actuator is reversed on your platform, utilize the Normal / Reversed button to reverse the surge motion compensation.
IMPORTANT: When finished making changes, click SAVE at the top right in Sim Racing Studio.
SRS Keyboard Shortcuts
You can program Sim Racing Studio shortcuts for most of the SRS Motion Compensation commands. Click on the Keyboard icon on top right of the Motion Compensation page in Sim Racing Studio. It is suggested to set a Keyboard button for the ‘Motion Compensation Switch’. This will make it easy to stop Motion Compensation in Sim Racing Studio so you can compare the difference with and without it working.
OXRMC Keyboard Bindings
To combine multiple keys for a single shortcut, ensure they are separated by '+' with no spaces in between the key descriptors.
List of supported shortcut key names:
Name | Key |
---|---|
SHIFT | shift key |
CTRL | ctrl key |
ALT | alt key |
LSHIFT | left shift key |
RSHIFT | right shift key |
LCTRL | left ctrl key |
RCTRL | right ctrl key |
LALT | left alt key |
RALT | right alt key |
0 - 9 | numerical key |
A - Z | alphbetical key |
BACKQUOTE | `~ key (US) |
TAB | tabulator key |
CAPS | caps lock key |
PLUS | + key (any country) |
MINUS | - key (any country) |
OPENBRACKET | [{ key (US) |
CLOSEBRACKET | ]} key (US) |
SEMICOLON | ;: key (US) |
QUOTE | '" key (US) |
BACKSLASH | \| key (US) |
COMMA | , key (any country) |
PERIOD | . key (any country) |
SLASH | /? key (US) |
BACK | backspace key |
CLR | clr key |
RETURN | return key |
ESC | esc key |
SPACE | space key |
LEFT | cursor left key |
UP | cursor up key |
RIGHT | cursor right key |
DOWN | cursor down key |
INS | ins key |
DEL | del key |
HOME | home key |
END | end key |
PGUP | page up key |
PGDN | page down key |
NUM0 | 0 key on NUM |
NUM1 | 1 key on NUM |
NUM2 | 2 key on NUM |
NUM3 | 3 key on NUM |
NUM4 | 4 key on NUM |
NUM5 | 5 key on NUM |
NUM6 | 6 key on NUM |
NUM7 | 7 key on NUM |
NUM8 | 8 key on NUM |
NUM9 | 9 key on NUM |
NUMLOCK | numlock key |
NUMDIVIDE | / key on NUM |
NUMMULTIPLY | * key on NUM |
NUMSUBTRACT | - key on NUM |
NUMADD | + key on NUM |
NUMDECIMAL | . key on NUM |
NUMSEPARATOR | separator key on NUM |
F1 | F1 key |
F2 | F2 key |
F3 | F3 key |
F4 | F4 key |
F5 | F5 key |
F6 | F6 key |
F7 | F7 key |
F8 | F8 key |
F9 | F9 key |
F10 | F10 key |
F11 | F11 key |
F12 | F12 key |
PRTSC | print screen key |
SCROLL | scroll lock key |
PAUSE | pause key |
SELECT | select key |
PRINT | print key |
HELP | help key |
EXEC | execute key |
GAMEPAD_A | A button on gamepad |
GAMEPAD_B | B button on gamepad |
GAMEPAD_X | X button on gamepad |
GAMEPAD_Y | Y button on gamepad |
GAMEPAD_RIGHT_SHOULDER | right shoulder button on gamepad |
GAMEPAD_LEFT_SHOULDER | left shoulder button on gamepad |
GAMEPAD_LEFT_TRIGGER | left trigger button on gamepad |
GAMEPAD_RIGHT_TRIGGER | right trigger button on gamepad |
GAMEPAD_DPAD_UP | digital pad up on gamepad |
GAMEPAD_DPAD_DOWN | digital pad down on gamepad |
GAMEPAD_DPAD_LEFT | digital pad left on gamepad |
GAMEPAD_DPAD_RIGHT | digital pad right on gamepad |
GAMEPAD_START | start button on gamepad |
GAMEPAD_VIEW | view button on gamepad |
GAMEPAD_LEFT_THUMBSTICK_BUTTON | left thumbstick pressed on gamepad |
GAMEPAD_RIGHT_THUMBSTICK_BUTTON | right thumbstick pressed on gamepad |
GAMEPAD_LEFT_THUMBSTICK_UP | left thumbstick up on gamepad |
GAMEPAD_LEFT_THUMBSTICK_DOWN | left thumbstick down on gamepad |
GAMEPAD_LEFT_THUMBSTICK_RIGHT | left thumbstick left on gamepad |
GAMEPAD_LEFT_THUMBSTICK_LEFT | left thumbstick right on gamepad |
GAMEPAD_RIGHT_THUMBSTICK_UP | right thumbstick up on gamepad |
GAMEPAD_RIGHT_THUMBSTICK_DOWN | right thumbstick down on gamepad |
GAMEPAD_RIGHT_THUMBSTICK_RIGHT | right thumbstick left on gamepad |
GAMEPAD_RIGHT_THUMBSTICK_LEFT | right thumbstick right on gamepad |
OXRMC Troubleshooting
For troubleshooting assitance with OXRMC, please see the article here: https://simracingstudio.freshdesk.com/support/solutions/articles/35000219657-openxr-motion-compensation-troubleshooting