Integration of SDL with VRPN?

I’m posting this message to the developer list because I did not see
another management email address to use to contact the system
owners. I hope that it is useful information to others on the list as well.

I am the principal maintainer of the Virtual-Reality Peripheral
Network (, which provides cross-platform C++ drivers (also
wrapped for Java and Python) for a number of VR input devices (and
force-feedback output devices), including trackers, analog, and button devices.

One of the external developers on the project pointed me at SDL
because of its set of device drivers for HID devices. Looking at
SDL, I can see two ways that we could benefit from each other.

The first is easy: VRPN is licensed under the Boost license, so all
of its drivers are fair game to be picked up and used by SDL, either
by writing a VRPN/SDL translation layer or by grabbing the code and
pulling it directly into SDL with a more restrictive license. If any
of the developers want to do this, that’s great.

The second is what I’d like to open a discussion about. My main goal
in writing VRPN is to reduce the amount of device-driver writing that
folks have to do. I’d love to be able to pull the device drivers
from SDL into VRPN. My favorite approach for this (of course) would
be to pull the drivers from SDL into VRPN and then consider using
VRPN as the device layer for SDL. This would involve taking at least
some of the SDL code and placing it under the VRPN license (if you
are willing to let us distribute it in the VRPN source).

Another approach would be to write an SDL wrapper layer to enable SDL
devices to be used inside VRPN (with the wrapping layer falling under LGPL).

Russell M. Taylor II, Ph.D. @Russell_M_Taylor_II
CB #3175, Sitterson Hall
University of North Carolina, Voice: (919) 962-1701
Chapel Hill, NC 27599-3175 FAX: (919) 962-1799

Either option is a good one. I prefer the idea of making an SDL wrapper for VRPN because then I can simply build the wrapper and use it in an existing SDL application easily. The only issue with this is that some of your lower-level features may need to go unused to implement SDL’s API.

The second option will simplify your work a reasonable bit, but won’t really help SDL that much. That said, Sam seems like a pretty nice guy and may be more than happy to give you that code.

The best outcome would be to make both happen – you get SDL’s input/force-feedback device code under your license, then SDL switches to VRPN to support hopefully even more devices in SDL. Of course, this is very optimistic – it assumes you won’t have major API changes and that your code is as easy to build and as portable as SDL is.------------------------
EM3 Nathaniel Fries, U.S. Navy