Button VRPN Server


  • Plugin name : Button VRPN Server
  • Version : 1.0
  • Author : Yann Renard
  • Company : INRIA
  • Short description : Creates VRPN button servers (one per input).
  • Documentation template generation date : Oct 26 2021


Creates VRPN button servers to make data from the plugin's inputs available to VRPN client applications.

This plugin exposes several boolean states to an external application thanks to the VRPN protocol. VRPN stands for Virtual Reality Peripheral Network (http://www.cs.unc.edu/Research/vrpn/). It consists in a library that abstracts most used VR peripherals as an aggregation of basic components such as analogic data, buttons or trackers (localisation and orientation in space).

The way §OpenViBE§ exposes these boolean states to external applications consists in emulating a multi-button device. The states are controled by stimulation streams and each button can be pressed and released by given stimulation identifiers. The number of buttons of the emulated device depends on the number of input of the box. Each time an input is added, the corresponding on/off stimulations are added to the settings of the box. Given this behavior, any VRPN ready application is able to get parameters from §OpenViBE§ and to provide feedback to the user as visual information or whatever way the feedback should be done.


This box accepts unlimited number of inputs. Initial box only has a single input but you can add as many Doc_Streams_Stimulation inputs as you want to the box.

Note that in case you add inputs, the total number of button of the emulated device will be the exact number of inputs, and that the corresponding settings will be added automatically.

1. Input 1

This input will receive a stimulation stream and change the corresponding button state according to two stimulations.

  • Type identifier : Stimulations (0x6f752dd0, 0x082a321e)


Each input have a corresponding pair of stimulation codes that are used to press or release a button. When the first stimulation is found, the button switches to sate pressed. When the second one is found, the button switches to state released. In case the first stimulation appears while the button is already pressed, nothing happens. Similarly, when the second stimulation appears while the button is already released, nothing happens.

If the on and off stimulation codes for a given button are the same, then when this stimulation happens, the button state switches to pressed and immediately comes back to released. Client application will receive the two state changes.

1. Peripheral name

This setting contains the name of the emulated peripheral. This will be used by the external application in order to connect to this peripheral. If this setting is openvibe-vrpn and the machine running §OpenViBE§ is openvibe-machine, then the complete VRPN peripheral name is openvibe-vrpn@openvibe-machine.

  • Type identifier : String (0x79a9edeb, 0x245d83fc)
  • Default value : [ openvibe-vrpn ]

2. Button 1 ON

This setting gives the stimulation code to track to switch button state to pressed.

  • Type identifier : Stimulation (0x2c132d6e, 0x44ab0d97)
  • Default value : [ OVTK_GDF_Feedback_Continuous ]

3. Button 1 OFF

This setting gives the stimulation code to track to switch button state to released.

  • Type identifier : Stimulation (0x2c132d6e, 0x44ab0d97)
  • Default value : [ OVTK_GDF_End_Of_Trial ]



This box lacks an additional setting to specify the connection port. Default VRPN connection port is 3883. But it may be possible that you want to expose §OpenViBE§ on another port. This is not currently possible.

For analogs emulation, you way want to look at the Analog VRPN Server documentation that does almost the same as this box but transcoding streamed matrices to analog states.