Using a Motion Platform with VR Sync using SimTools

VR Sync supports generic motion platform control by linking to a third party application called SimTools. Please follow the sections "SimTools Setup" and "VR Sync Setup" in order to get started controlling your motion platform.


SimTools Setup

  1. VR Sync SimTools integration requires SimTools v3, which you can download and install from here: https://simtools.us/downloads-links/
  2. Your SimTools installation must have an active license in order to use the required VR Sync plugin. You can purchase a SimTools license here: https://simtools.us/licenses/.
  3. After installing SimTools, you must install the VR Sync Game Plugin. This will allow VR Sync to connect to SimTools. You can download the plugin from https://simtools.us/wp-content/uploads/2024/05/VRSync_GamePlugin.zip, and drag it onto the center of the main SimTools window until you see an orange installation icon.
  4. On the download page https://simtools.us/downloads-links, you can find a quickstart to set up SimTools V3 to control your specific motion platform. 

When your reach Step 5 (Game Plugin Setup), you can perform the steps with the VR Sync Plugin instead of Live for Speed.

If you have enabled “Auto Detect Launched Games” in the SimTools options, the VR Sync Plugin will automatically start if SimTools is running, and you start VR Sync for Windows. You may need to restart SimTools once after installing the plugin for this option to work correctly.

Alternatively, you can manually start the plugin by hovering over it in the SimTools home screen, and double-clicking play. If you want this play button to also start VR Sync, you can drag the “VR Sync.exe” file onto the plugin button while the plugin is not running. SimTools will remember the file, so you only have to to this once as long as VR Sync does not move.

Creating a motion configuration for your video

Note: Before creating motion data, we recommend quickly reading through the "Video name mapping" section first, in order to have an idea of what to name your files.

In order to create a motion configuration for your video, please use the Video Ride Creator. At time of writing, a Video Ride Creator is only available in the V2 section but its configuration files work correctly with SimTools V3: https://simtools.us/downloads-links/

For information about using the ride creator, please refer to the tool page and the corresponding forum threads:

https://www.xsimulator.net/community/marketplace/simtools-v2-video-ride-creator.180/

https://www.xsimulator.net/community/threads/simtools-v2-video-ride-creator.9897/


VR Sync Setup

In order to connect with SimTools, you need at least version 3.5.0 of the VR Sync Windows Client found here: https://dashboard.vr-sync.com/downloads

VR Sync Configuration File

In order to enable the connection with SimTools, VR Sync requires a configuration file. A basic version can be downloaded here.

It is a text file called vrsync_simtools_configuration.json, and it should be placed in the VRSync folder next to VR Sync.exe. When VR Sync first starts up, it will create the folder for you, but you can also create it yourself beforehand. Windows hides file extensions by default, so you may not see the ".json" part of the file. If you then manually add another .json, the file will not work. In order to confirm that the file name is correct, you can show extensions in Windows.

Once the configuration file is there, it needs to contain the following text to enable SimTools:

{
    "SimToolsActive": true
}


The configuration file can also contain several optional parameters to customize the SimTools connection. If they are not included in the file, VR Sync will use its default settings.

SimToolsActive: Enabling or disabling the SimTools connection. Can be either true to enable, or false to disable.

IP: The IP address of the device that is running SimTools. Default is 127.0.0.1, which is the same device that is running VR Sync.

UdpPort: The port used to connect to Simtools via the UDP protocol. The SimTools plugin currently does not support changing the port, so you should not have to change this. Default 4123.

UpdateRateMs: The time between motion platform updates in milliseconds. Only consider modifying this if you notice issues such as stutter with the motion system. Note that VR Sync does not run infinitely fast, so it is not guaranteed that it manages to update at the requested rate. Default 5.

VRSyncVideoNameToSimToolsName: A mapping between video names in VR Sync, and configuration files in SimTools. See section "Video name mapping" for more details.


As an example, let’s say that you want to change the IP address. Then your file should look like this:

{
	"SimToolsActive": true,
	"IP": "123.4.567.8"
}

There is a completely filled-in configuration file below for reference on how to fill in each parameter. Please note that some parameters require double quotes for their value and some do not. Also take note of the comma at the end of each line, which is important if there is another parameter below it.

{
	"SimToolsActive": true,
	"IP": "123.4.567.8",
	"Port": 12345,
	"UpdateRateMs": 12345,
	"VRSyncVideoNameToSimToolsName":
	{
		"vrsyncname1": "simtoolsname1",
		"vrsyncname2": "simtoolsname2"
	}
}

SimTools Motion Configuration Files

When you have created your motion file using the Video Ride Creator, you must place it in the correct folder. When you are in the folder that contains “VR Sync.exe”, please ensure that you have a VRSync folder, and in it, a SimTools folder as shown below. Here you can place all your motion data. Please consult "Video name mapping" for details on how to name your files.


Video name mapping

By default, VR Sync uses the video name that you see in the remote, strips the extension if it exists, and uses that as the name to send to SimTools.

Consider the cloud video “Boiler.mp4” and local video “RideFilm_TB.mp4” in the image above. VR Sync will play the SimTools configuration file corresponding to the names “Boiler” and “RideFilm_TB” respectively. 

Take note that this SimTools configuration filename is excluding the extension and the information about its settings. So for instance, for a video “RideFilm_TB.mp4” you might have created a SimTools configuration file called “RideFilm_TB(60,Space).cfg”. SimTools will play this configuration when VR Sync sends “RideFilm_TB”.

You can optionally supply a custom mapping for some or all of your videos in the configuration file

As an example, let’s say we want to let SimTools play the configuration file for 

- “TrainingVideo1” when we play “Boiler.mp4” in VR Sync

- “RideFilm” when we play “RideFilm_TB.mp4” in VR sync

In your configuration file it should look like this:

{
	"SimToolsActive": true,
	"VRSyncVideoNameToSimToolsName":
	{
		"Boiler.mp4": "TrainingVideo1",
		"RideFilm_TB.mp4": "RideFilm"
	}
}

You can choose to only supply a custom mapping for a few videos, and let VR Sync handle it using its default method for the rest. Supplying video names that VR Sync does not recognize will simply be ignored.To avoid confusion however, we do recommend removing old unused video names from the list.


Known Issues

The motion platform moves during videos without a motion configuration file

At the time of writing, the SimTools plugin does not unload the previous motion file when starting a video without a configuration. It will therefore still synchronize the previous motion file with the new video. 

As a workaround, you can include an empty or idle motion file for videos without motions.

Alternatively, you can combine the motionless video and motion video into a single video, and adjust the associated motion file accordingly.