From VRwiki
Jump to: navigation, search


This page presents the software tools and the techniques that are possible for interfacing the VICON Motion Capture system with the XVR software. The aim of this page is to present software and case studies.

Brief description of VICON

The VICON Motion Capture system by OMG allows to track bodies by means of markers applied over the body. VICON exposes recorded data in the form of C3D files and in real-time by a protocol called Tarsus.

Since Nexus 1.4 there is also the newer Stream protocol on port 801, that is anyway not supported

These are the file types used by the VICON:

  • c3d is the exchange format containing raw markers, labeled markers and body segments
  • vsk is the XML based skeleton structure


Type: PUREXVR (no DLLs)

Last Update: 3rd November 2009

Download: (1.5MB with example data)

This package provides the following features:

  • Real-time connection to the VICON Nexus software providing Markers and/or Bodies
  • Loading of Recorded Sessions stored as Comma Separated Values converted from C3D files


For starting include '#include "viconrt.h.s3d"'

The two modes have the same interface.

  • start() initializes the connection (OnInit)
  • update() updates internal data (OnInit and OnFrame)


  • bodies is the list of bodies
  • markers is the list of markers

Each marker has a pos property while bodies have also axis property as (angle,x,y,z).

Configuration: by default all properties, both markers and bodies are analyzed by the stream. For reducing load use the following parameters:

  • paramStoreBodies
  • paramStoreMarkers

Real-time Mode

The ViconRt class

vicon = ViconRt(IPADDRESS);

File Mode

vicon = ViconFile(infile);

Additional properties:

  • framestep

Use the "" for converting c3d files into CSV files readable by ViconFile.


The bonus class ViconHeadTrack allows to compute camera matrix from four markers considered as reference.


Emanuele Ruffaldi at SSSUP dot IT


  • Reconnection on disconnect

Technical Note

Tarsus Protocol

Connection: TCP
Protocol Used: Tarsus July 2008
Mode: Frame-by-Frame

New Stream Protocol (not supported)

Allows for unlabeled markers and future additional elements. The implementation anyway will not be PureXVR because the protocol is unknown.