VRPN (Virtual-Reality Peripheral Network) is a device-independent and network-transparent system for accessing virtual reality peripherals in VR applications. It was originally designed and implemented by Russell M. Taylor II at the Department of Computer Science of the University of North Carolina at Chapel Hill. VRPN is now maintained and supported by Sensics and developed in collaboration with a productive community of contributors. It is described more fully at vrpn.org.
The purpose of VRPN is to provide a unified interface to input devices, like motion trackers or joystick controllers. It also provides for
Time-stamping of data
Multiple simultaneous access to peripheral devices
Automatic re-connection of failed servers
Storage and playback of sessions
The VRPN system consists of programming interfaces for both the client application and the hardware drivers and a server application that communicates with the hardware devices. The client interfaces are written in C++ but has been wrapped in Python and Java.
Ascension Flock-of-birds (either running through one serial port, or with each sensor connected to its own serial port). This driver (and the other tracker drivers) resets the tracker in case of power cycle, serial disconnect or other flukes. _Do not use this driver on a Nest of Birds_ because it will burn out the transmitter drive circuitry (see email from Kyle Smith).
Button devices used as teleporters or trackers (Global Haptics GeoOrb, ...).
Crossbow RGA300 accelerometer using a serial interface.
Other InterSense trackers (using InterSense native library, even USB-based ones); there is currently a discussion on the VRPN email list about whether the position and orientation information are returned consistently when using this interface.
Joystick controllers: Contour ShuttleXpress, Futaba InterLink Elite, Griffin PowerMate, Logitech Extreme 3D Pro, Saitek ST290 Pro, Microsoft SideWinder Precision 2, Microsoft SideWinder, Microsoft Xbox S (raw controller on all O/S), Microsoft Xbox 360 (raw controller on all O/S), Afterglow Ax1 For Xbox 360 (raw controller on all O/S).
Keyboard on Windows.
Logitech Magellan and Spaceball 6DOF motion controllers with buttons (including the Spaceball 5000).
LUDL XY stages through LibUSB.
Mouse devices on Linux (when logged in at the console) and Windows.