ArticleslgStudy

computer science

VRPN

VRPN is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand VRPN rather than just read about it. In short: VRPN (Virtual-Reality Peripheral Network) is a device-independent, network-based interface for accessing virtual reality peripherals in VR applications. It was originally designed and implemented by Russell M.

Key takeaways

  • VRPN belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect VRPN to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of VRPN from memory before moving on to harder problems.

Reference excerpt

VRPN (Virtual-Reality Peripheral Network) is a device-independent, network-based interface 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 was maintained and supported by Sensics while it was business. It is currently maintained by ReliaSolve and developed in collaboration with a productive community of contributors. It is described more fully at vrpn.net and in VRPN-VRST. The purpose of VRPN is to provide a unified interface to input devices, like motion trackers or joystick controllers. It also provides the following:

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 have been wrapped in C#, Python and Java. A typical application of VRPN is to encode and send 6DoF motion capture data through the network in real time.

Networking A VRPN client can establish a connection with a VRPN server (the device providing the data) in two ways: either over TCP (reliable, but less efficient), or over UDP (unreliable, but lower-latency and more efficient). The "unreliable" mode is generally preferred when the latency is critical. The "unreliable" connection initialization sequence makes use of both the TCP and UDP protocols. It works as follows:

the client opens a TCP socket for listening on an arbitrary port; the client sends the port number of this socket, along with its own machine name, in a UDP datagram directed to a well known port of the VRPN server (the default is 3883); the server opens a TCP connection with the client, to the port number communicated at step 2; if the TCP connection is established, each device tells to the other the supported VRPN version; if the versions are not compatible, the connection is dropped; otherwise, each device begins to listen on a new UDP port (different from those used before) and sends the port number to the other device, by using the previously created TCP connection; from now on, all the data is sent over the two UDP ports opened at step 6. The advantages of this approach are: fast connection time and fast failure detection during connection. However, the "unreliable" connection initialization protocol does not honor the strict layering protocol design principle, as the application-level VRPN payload leaks information about lower levels in the network stack, namely the machine names and TCP/UDP port numbers. Because of this design choice, it is impossible to establish a VRPN connection between two devices connected through a NAT: the router would need to translate not only the layer-3 information in the packet headers, but also the references to IP addresses and port numbers inside the VRPN payload. To deal with this problem, VRPN offers a second "reliable", TCP-only connection initialization mode, which is a standard TCP server-client interaction: the VRPN server listens on a well-known TCP port and the client initiates a connection. In this mode, all the data is sent on the same TCP connection, and no UDP communication is required.

Supported devices

Trackers (listed alphabetically) 3rdTech HiBall-3000 Wide Area Tracker (formerly the UNC Ceiling tracker). Antilatency positional tracking system. ART optical tracking systems, including Flystick2 and Flystick3. The receiving code is part of the standard source distribution. Analog devices used as a tracker (Magellan, CerealBox with joysticks attached, Radamec SPI, Mouse, ...). ARToolkit VRPN tracker available from Universidad de los Andes. 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. Use of this driver on a Nest of Birds will burn out the transmitter drive circuitry. Button devices used as teleporters or trackers (Global Haptics GeoOrb, ...). Crossbow RGA300 accelerometer using a serial interface. GameTrak devices. Immersion Microscribe. Inertialmouse and Event Mouse from Bauhaus University Weimar. InterSense IS-600 and IS-900 (using augmented Fastrak interface on any architecture). Logitech 3D mouse. Microsoft Kinect (two different VRPN servers available.) Motion Analysis Corporation (VRPN server is built into the vender's server) MotionNode inertial tracking device. NDI Polaris optical tracking system. Novint force-feedback device. OptiTrack Motive (was NaturalPoint OptiTrack Tracking Tools) (VRPN server is built into vendor server). Origin Systems DynaSight tracker (with passive reflector). This driver also supports the older tracker in the SeeReal D4D stereo Display. OSVR Hacker Developer Kit 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. PS-Tech optical tracking system. PhaseSpace tracking system. PNI SpacePoint. Polhemus Fastrak tracker and 3Space trackers on several architectures, Liberty and LibertyHS tracker under at least Linux. The Patriot tracker is supported using the Liberty driver. G4 Powertrack. Razer Hydra game controller. Sensable Technologies PHANToM force-feedback device. Sensics dSight tracker. Sensics zSight tracker. Serial-port GPS device. Vicon (VRPN server is built into the vendor's server). Viewpoint Eye tracker. Wintracker III magnetic tracking system from Virtual Realities Ltd. WorldViz Precision Position Tracker PPT 1.2. Yost Labs 3Space Sensor (and wireless 3Space sensors). zSpace hardware and software platform (VRPN server built into vendor server).

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with VRPN

Start with the simplest possible case. Write down what VRPN claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to VRPN before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about VRPN ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of VRPN

In research
VRPN appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses VRPN in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
VRPN is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computer networks, so understanding it makes those chapters shorter.
In everyday life
Look for VRPN outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study VRPN in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what VRPN means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain VRPN out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is VRPN in simple terms?

VRPN (Virtual-Reality Peripheral Network) is a device-independent, network-based interface for accessing virtual reality peripherals in VR applications. It was originally designed and implemented by Russell M.

Why does VRPN matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study VRPN?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on VRPN.

Tags

  • Computer networks

Keep exploring