VL.IO.OpenVR 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package VL.IO.OpenVR --version 1.0.0
NuGet\Install-Package VL.IO.OpenVR -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VL.IO.OpenVR" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add VL.IO.OpenVR --version 1.0.0
#r "nuget: VL.IO.OpenVR, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install VL.IO.OpenVR as a Cake Addin
#addin nuget:?package=VL.IO.OpenVR&version=1.0.0

// Install VL.IO.OpenVR as a Cake Tool
#tool nuget:?package=VL.IO.OpenVR&version=1.0.0


A VL wrapper for Valve's OpenVR that enables the use of Vive trackers inside vvvv without a HMD. It heavily leans on VVVV.OpenVR by Tebjan Halm.

Using the library

In order to use this library with VL you have to install the nuget that is available via nuget.org. For information on how to use nugets with VL, see Managing Nugets in the VL documentation. As described there you go to the commandline and then type:

nuget install VL.IO.OpenVR

Try it with vvvv, the visual live-programming environment for .NET
Download: http://visualprogramming.net

How to setup SteamVR to be able to use trackers without HMD.

  1. Close SteamVR if it's currently running.

  2. Open this file in a text/code editor: C:\Program Files (x86)\Steam\config\steamvr.vrsettings

  3. Add this to the steamvr section:

   "forcedDriver": "null",
   "activateMultipleDrivers": "true"
  1. Then open: C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\null\resources\settings\default.vrsettings

  2. Change the value for enable from false to true.

  3. Warning: Having the borderless mirror window open can cause Windows to crash [during Play Mode in Unity, idk if this also applies to vvvv]. To avoid this, remove the following lines of code from default.vrsettings:

    "windowX": 0,
    "windowY": 0,
    "windowWidth": 2160,
    "windowHeight": 1200,

    You can always select Display VR View from the SteamVR menu if you ever need to see the null HMD view separately. That one won't crash. (Neat feature for when you're trying to figure out if SteamVR can see your trackers but vvvv can't - you'll be able to see them floating in there)

  4. Launch SteamVR. You should now have a “Standing by” status message instead of the annoying “Headset not detected”. (If you're still getting HMD complaints at this point, either you're too far in the future and things have slightly changed, or your SteamVR needs an update.)

  5. Right-click the SteamVR status window, select Developer > Developer Settings, then scroll down to the Room and Tracking section and click “Quick Calibrate”. This will get rid of the “Please perform room setup” popup.

  6. You can dismiss the headset notice about "Direct Display Mode".

  7. (Recommended) In Settings under the Video tab, enable Show Advanced Settings, then set “Pause VR when headset is idle” to Off.

  8. (Recommended by a few forums due to a memory leak?) In Settings under the General tab, disable SteamVR Home.

The base stations don't to talk to SteamVR the way that trackers do - their SteamVR indicators only start lighting up once a tracker is recognized and "sees" the base station. They're basically just (distinguishable, thanks to being on different channels) beacons of light that the trackers look at in order to orient themselves. So if your base stations aren't being found after you followed their setup, just troubleshoot the trackers.

For the trackers, you do need a Bluetooth dongle - typically 1 for each tracker. Vive sends one dongle with each tracker, but it looks like Tundra ships you a bundle of trackers with one super dongle that can talk to all 3 or 4 of them.

Make sure you have the dongle(s) plugged into your PC, then go to SteamVR > Devices > Pair Controller and select Tracker (or "I want to pair a different type of controller" if that's still there) from the options. It'll walk you through the rest on-screen - pretty much just pressing and holding the power button for each tracker until it goes into pairing mode.


Troubleshooting the trackers

If VIVE Tracker (3.0) turns off by itself, it could be due to one of the following reasons:

  • The battery is drained.
  • Pairing has timed out after being idle for more than 30 seconds.
  • No movement has occurred for more than 5 minutes.

Note: You can set how long VIVE Tracker (3.0) waits idle before turning off. In SteamVR > Settings > Startup / Shutdown set the time in "Turn off controllers after".

Find additional info in the Tracker 3.0 FAQ.

Pogo Pins

If you need input from pogo pins, the tracker needs to be configured as handheld. It then no longer is listed as tracker but as controller unfortunately.

For more info please refer to:



<sub>Depends on Valve's OpenVR SDK please see their license for further details.</sub>

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 42 5/23/2024
1.0.0 161 10/9/2023