VRIL - Virtual Interaction Library

Library for interaction techniques

The main goal of this library is to provide an easy to use framework with a few interaction techniques as a base for developers to implement new interaction techniques. Techniques that are created using this library do not have to rely on a specific hardware solution. This is achieved by using a component that manages all interaction techniques and registered controllers while providing a method to notify interaction techniques that can be invoked from any script. Upon invocation, the library notifies all interaction techniques that are registered for a controller with the necessary information on which button was pressed or in which state a button currently is. This allows for integration into any existing solution by simply rerouting the inputs to the managing component.


The library features example scenes with example integrations of keyboard + mouse and SteamVR.

Keyboard and Mouse

The VRIL_Keyboard script allows the user to move, rotate, select and activate a technique. This script simply remaps any input from the keyboard or mouse and notifies the VRIL_Manger.


The SteamVR example script utilizes the default actions that are generated on start. Actions were introduced with SteamVR 2.0 and allow developers to subscribe to an action instead of checking input from the controller manually. To use said actions or create new ones, the SteamVR input window in Unity offers a variety of options (package has to be installed first, as well as the SteamVR software). If these actions have been generated, they can be bound to a specific controller input action like a button or a touchpad. After actions are bound and generated, developers can subscribe or attach a new listener to an action. The example script utilizes 4 of the default actions, that are auto-generated when opening the SteamVR Input for the first time, and registers listeners to each one. After any input from the controller was detected, the VRIL_Manager will be notified.

Integrated Techniques

  • Raycast
  • iSith
  • DepthRay
  • Spindle + Wheel
Currently working on implementing another interaction technique.

Andreas Roither
Student - Programmer