Virtual Reality

Virtual Reality (VR) is a broad term. In this documentation we are mainly interested in the head mounted displays (HMD) such as Valve Index and Oculus Rift S.

VR and racing games are a great combination. They greatly increase your ability to keep track of your surroundings. Need to make sure no cars is to your left? Simply turn you head and look out the window! With the added depth perception it becomes easier to gauge distances and speeds. But it is not without problems.

When combined with a motion system the largest problem is tracking. Since the motion system applies motion to your head this motion is tracked by the VR headset. It becomes very apparent during braking when your face is moved closer to the steering wheel by the motion system’s pitch. However, SIMRIG Control Center is equipped with motion cancellation to combat this issue.

Motion cancellation

Motion cancellation can counteract the motion system’s impact on the VR-headset. Essentially subtracting the rig’s motion from your own. Allowing the motion system to move your body without affecting the tracked position.

This works by computing the difference between where your head is due to motion caused by the motion system and where it should have been if you were stationary. This difference is applied to the VR-headset’s tracked position (negating the motion system’s impact on the VR-headset’s tracking.)

Installation

This section describes how to install SIMRIG Motion Cancellation – an optional software package for SIMRIG Control Center that adds motion cancellation support for SteamVR and OpenXR.

You will need to following:

  1. A compatible VR-headset (HMD) such as Valve Index, HP Reverb G2, or any other from our list of verified headsets

  2. SteamVR or a compatible OpenXR runtime

  3. SIMRIG Control Center version 1.20.0 or higher

  4. SIMRIG SR1 with firmware version 17 or SIMRIG SR2

If these prerequisites are met you can access the VR-page in SIMRIG Control Center:

../_images/mc-not-installed.png

The VR-page in SIMRIG Control Center when opened the first time.

The status for both SteamVR and OpenXR is marked as Disabled. It means that motion cancellation is either disabled (the Enable motion cancellation check box is unchecked) or the SIMRIG Motion Cancellation package is missing for this runtime. Motion cancellation is an optional package. It is not installed by default.

You are prompted to install motion cancellation support for both SteamVR and OpenXR when you open the VR-page for the first time. Click either link to install the SIMRIG Motion Cancellation package. Run the installer and follow the instructions on screen.

There are differences between SteamVR and OpenXR that matter for motion cancellation. In the following sections we will attempt to describe those differences.

SteamVR

Warning

Uninstall all other motion cancellation solutions for SteamVR such as OpenVR-InputEmulator prior to installing SIMRIG Motion Cancellation for SteamVR.

SteamVR is widely adopted by both games and VR-headsets. In many cases, SteamVR is the only supported VR-runtime. Assetto Corsa for example, only supports SteamVR out of the box. Your VR-headset likely includes support for SteamVR for this reason. Most VR-headsets with support for SteamVR can leverage our motion cancellation.

SteamVR offers some advantages over OpenXR for motion cancellation:

  1. It supports a universal Reset HMD hotkey that works across all games

  2. It supports reference trackers such as the Vive Tracker for high accuracy motion cancellation

  3. Using the in-game functionality to reset the HMD’s forward direction notifies our motion cancellation system without user intervention

For newer games and VR-headsets is sometimes preferable, or necessary, to use OpenXR instead.

OpenXR

Warning

You must bind the Reset HMD hotkey in SIMRIG Control Center and in-game to the same key.

OpenXR is widely adopted by VR-headsets but has seen slow game adoption. Most VR-headset manufacturers supply a vendor specific OpenXR runtime already. We expect all new games to use OpenXR exclusively. While older games may get updates, they can also continue to rely on solutions such as OpenComposite.

OpenXR is problematic for motion cancellation. There is no way to support reference trackers. There is no way to add a universal Reset HMD hotkey. There is no way for OpenXR to notify the motion cancellation system when the HMD’s forwards direction is reset in-game. Complicating matters further, there are multiple ways to implement OpenXR resulting in stark differences between games.

Motion cancellation only works if the system and game agrees on a forward direction. For this reason, you must bind the game’s reset HMD hotkey to the same key used by SIMRIG Control Center’s Reset HMD hotkey. You must press this key at the start of a race to synchronize the game and system.

Verified VR-headsets

These VR-headsets are tested and verified to work with SIMRIG Control Center:

Other VR-headsets with support for SteamVR or OpenXR will likely work.

Cancellation mode

The software offers three different modes, or, strategies for dealing with motion cancellation. Each is progressively more accurate but also more demanding to setup and configure.

Lock head to seat

This mode locks the HMD to its seated zero position. No head movement is allowed. Neither from the motion system or user. This results in perfect motion cancellation but does not allow the user to move inside the virtual cockpit. No setup required. This is the default mode. Use in-game seat adjustments to adjust the head position.

Rig geometry

This mode relies on rig measurements and software prediction to guess the motion system’s influence on the HMD. Movement caused by the motion system is subtracted while user head movement is retained. The user can move inside the virtual cockpit. Setup required.

Hardware tracker

This mode works only on SteamVR. It uses an external hardware tracker, such as a Vive Tracker, as a reference. This can lead to very good results that retain user head movement. The user can move inside the virtual cockpit. Setup required.

Rig geometry

The rig geometry is required to predict the motion system’s position in VR coordinates. We recommend verifying these values using a tape ruler. Then adjust the Ear to floor value until motion cancellation works as expected.

../_images/mc-rig-geometry.png
Ear to floor

While sitting in your rig, measure the vertical distance from your ears to the ground.

Ear to rear

While sitting in your rig, measure the horizontal distance from your ears to the center of the rear actuators. Enter a positive number if your ears are in-front of the rear actuator (in-between the rear and the front actuators.) Enter zero if you ears are directly above the rear actuators.

Width

Enter the center-to-center distance between the rear actuators.

Length

Enter the center-to-center distance between the left actuators.

Reset HMD

Note

OpenXR users must bind the game’s reset hotkey and SIMRIG Control Center’s Reset HMD hotkey to the same physical button.

The Reset HMD hotkey resets the HMD’s seated zero position. It re-centers the in-game camera and configures the rig’s forward direction for motion cancellation.

Bind the Reset HMD to a button on your wheel or yoke that is easy to reach and remember. Press the button once when starting a new race or session. Make sure to look forward (in your rig’s forward direction.) If your head is facing sideways, it will look good in-game, but motion cancellation will fail to function properly.

Most games offer a similar functionality. It is known by many different names such as: Reset HMD, Reset seated position, Center headset, etc. OpenXR users must bind the in-game hotkey and the Reset HMD hotkey to the same physical button. SteamVR users can disregard the in-game hotkey entirely.

Reference tracker

Using a hardware tracker as reference is optional. It only works on SteamVR.

The system falls back to Rig geometry mode if your reference tracker is unavailable.

../_images/mc-reference.png

There are multiple reference modes to choose from:

Vive Tracker

This mode requires a Vive Tracker to be mounted on your rig. Mount the tracker close to your head for best performance.

Controller

This mode requires that a hand controller is mounted on your rig. Mount the controller close to your head for best performance.

Status messages

The VR-page contains a status messages that describes the status of SIMRIG Motion Cancellation. This message can be useful when trying to determine if the system is working as intended or not.

../_images/mc-status.png

An example status message. This is shown when SteamVR isn’t running.

Common status messages:

  • Not loaded – the motion cancellation component is installed on your system but not yet loaded; enable motion cancellation to continue

  • Connected to SteamVR – everything is nominal; motion cancellation is working as expected

  • SteamVR not running – SteamVR is not running on your PC; this message should go away when you start SteamVR (it can take up to 30 seconds to detect SteamVR)

  • SteamVR not initialized – SteamVR is not yet initialized; please wait

Other status messages:

  • Ready – the motion cancellation component is loaded and ready to proceed; please wait

  • No HMD detected – your head mounted display has not yet been detected; please make sure the display is powered on and recognized by SteamVR

  • SteamVR not installed – SteamVR is not installed on your PC; please install SteamVR

  • Driver not installed – the SIMRIG Motion Cancellation driver is not detected; please reinstall SIMRIG Motion Cancellation

  • Incorrect SteamVR version – either SteamVR is not installed on your PC or your SteamVR installation is outdated; however, if your are reading this in the future, it could also be that SteamVR has released a new version that is no longer backwards compatible with SIMRIG Motion Cancellation

  • SteamVR error – SteamVR encountered an unforeseen error; see the log for details and please contact support if the problem persists

  • Unknown hardware position – either the motion system is disabled, or there is no telemetry from the game, or the SIMRIG SR1 is not reporting its current position (please upgrade your firmware to version 17 or above)

  • Failed to load pluginSIMRIG Motion Cancellation is out of date or corrupt; please reinstall SIMRIG Motion Cancellation