Difference between revisions of "Data Streaming"

Line 1: Line 1:
 
[[Category:Motive]]
 
[[Category:Motive]]
  [[OptiTrack Documentation Wiki|Back to the Main Page]] → [[Motive Documentation|Back to Motive Documentation]]
+
  [[OptiTrack Documentation Wiki|Main Page]] → [[Motive Documentation|Motive Documentation]] → [[Data Streaming|Data Streaming]]
 
----
 
----
  
Line 15: Line 15:
 
=Streaming in Motive=
 
=Streaming in Motive=
 
----
 
----
 +
 
{{Indent|
 
{{Indent|
 
 
* Open the [[Data Streaming Pane]] in Motive
 
* Open the [[Data Streaming Pane]] in Motive
 
* Select the network interface address for streaming data.
 
* Select the network interface address for streaming data.
Line 29: Line 29:
 
=Streaming IP Address=
 
=Streaming IP Address=
 
----
 
----
 +
 
{{Indent|
 
{{Indent|
 
 
It is important to select the network adapter (interface, IP Address) for streaming data.  Most Motive Host PCs will have multiple network adapters - one for the camera network and one (or more) for the local area network (LAN).  Motive will only stream over the selected adapter (interface). Select the desired interface using the [[Data Streaming Pane]] in Motive. The interface can be either over a local area network (LAN) or on the same machine (localhost, local loopback). If both server (Motive) and client application are running on the same machine, set the network interface to the local loopback address (127.0.0.1). When streaming over a LAN, select the IP address of the network adapter connected to the LAN.  This will be the same address the Client application will use to connect to Motive. Note that firewall or anti-virus software can block network traffic, so it is important to make sure these applications are disabled or configured to allow access for both server (Motive) and Client applications.
 
It is important to select the network adapter (interface, IP Address) for streaming data.  Most Motive Host PCs will have multiple network adapters - one for the camera network and one (or more) for the local area network (LAN).  Motive will only stream over the selected adapter (interface). Select the desired interface using the [[Data Streaming Pane]] in Motive. The interface can be either over a local area network (LAN) or on the same machine (localhost, local loopback). If both server (Motive) and client application are running on the same machine, set the network interface to the local loopback address (127.0.0.1). When streaming over a LAN, select the IP address of the network adapter connected to the LAN.  This will be the same address the Client application will use to connect to Motive. Note that firewall or anti-virus software can block network traffic, so it is important to make sure these applications are disabled or configured to allow access for both server (Motive) and Client applications.
 
}}
 
}}
Line 43: Line 43:
 
=Streaming Options=
 
=Streaming Options=
 
----
 
----
 +
 
{{Indent|
 
{{Indent|
 
 
Before starting to broadcast data onto the selected network interface, define which data types to stream. Under streaming options, there are settings where you can include or exclude specific data types and syntax. Set only the necessary criteria to true.  For most applications, the default settings will be appropriate.
 
Before starting to broadcast data onto the selected network interface, define which data types to stream. Under streaming options, there are settings where you can include or exclude specific data types and syntax. Set only the necessary criteria to true.  For most applications, the default settings will be appropriate.
  
Line 53: Line 53:
 
=Bone Naming Convention=
 
=Bone Naming Convention=
 
----
 
----
 +
 
{{Indent|
 
{{Indent|
 
 
When streaming skeleton data, bone naming convention formats annotations for each segment when data is streamed out. Appropriate convention should be configured to allow client application to properly recognize segments. For example, when streaming to Autodesk pipelines, the naming convention should be set to FBX.
 
When streaming skeleton data, bone naming convention formats annotations for each segment when data is streamed out. Appropriate convention should be configured to allow client application to properly recognize segments. For example, when streaming to Autodesk pipelines, the naming convention should be set to FBX.
 
}}
 
}}
Line 61: Line 61:
 
=Coordinate System Convention=
 
=Coordinate System Convention=
 
----
 
----
 +
 
{{Indent|
 
{{Indent|
 
 
Motive (1.7+) uses a right-handed Y-up coordinate system. However, coordinate systems used in client applications may not always agree with the convention used in Motive. In this case, the coordinate system in streamed data needs to be modified to a compatible convention. For client applications with a different ground plane definition, Up Axis can be changed under Advanced Network Settings. For compatibility with left-handed coordinate systems, the simplest method is to rotate the capture volume 180 degrees on the Y axis when defining the ground plane during [[Calibration#Ground Plane and Origin|Calibration]].
 
Motive (1.7+) uses a right-handed Y-up coordinate system. However, coordinate systems used in client applications may not always agree with the convention used in Motive. In this case, the coordinate system in streamed data needs to be modified to a compatible convention. For client applications with a different ground plane definition, Up Axis can be changed under Advanced Network Settings. For compatibility with left-handed coordinate systems, the simplest method is to rotate the capture volume 180 degrees on the Y axis when defining the ground plane during [[Calibration#Ground Plane and Origin|Calibration]].
 
}}
 
}}
  
<div style="padding-left:2em;"><center><ul>
+
<div style="padding-left:1%;"><center><ul>
 
<li style="display:inline-block; vertical-align:text-top;">[[File:Motive1.7Coordinate-LFrameImplications.png|400px]]</li>
 
<li style="display:inline-block; vertical-align:text-top;">[[File:Motive1.7Coordinate-LFrameImplications.png|400px]]</li>
 
<li style="display:inline-block; vertical-align:text-top;">[[Image:Calib_Square.jpg|290 px]]</li>
 
<li style="display:inline-block; vertical-align:text-top;">[[Image:Calib_Square.jpg|290 px]]</li>
Line 74: Line 74:
 
=NatNet Streaming=
 
=NatNet Streaming=
 
----
 
----
 +
 
{{Indent|
 
{{Indent|
 
 
NatNet is a client/server networking protocol which allows sending and receiving data across a network in real-time. It utilizes UDP along with either Unicast or Multicast communication for integrating and streaming reconstructed 3D data, rigid body data, and skeleton data from OptiTrack systems to client applications. Within the API, a class for communicating with OptiTrack server applications is included for building client protocols.  Using the tools provided in the NatNet API, capture data can be used in various application platforms. Please refer to the '''NatNet User Guide''' For more information on using NatNet and its API references.
 
NatNet is a client/server networking protocol which allows sending and receiving data across a network in real-time. It utilizes UDP along with either Unicast or Multicast communication for integrating and streaming reconstructed 3D data, rigid body data, and skeleton data from OptiTrack systems to client applications. Within the API, a class for communicating with OptiTrack server applications is included for building client protocols.  Using the tools provided in the NatNet API, capture data can be used in various application platforms. Please refer to the '''NatNet User Guide''' For more information on using NatNet and its API references.
  
Line 93: Line 93:
  
  
<div style="padding-left: 3em;">
+
<div class="padded">
 
If desired, Motive can be controlled remotely by both sending or receiving either [http://optitrack.com/products/natnet-sdk/ NatNet] commands or XML broadcast messages to or from a client application through the UDP communication protocol, which enables client applications to trigger Motive commands. Using [[#NatNet Streaming|NatNet]] commands is recommended because they are not only more robust but they also offer additional control features.
 
If desired, Motive can be controlled remotely by both sending or receiving either [http://optitrack.com/products/natnet-sdk/ NatNet] commands or XML broadcast messages to or from a client application through the UDP communication protocol, which enables client applications to trigger Motive commands. Using [[#NatNet Streaming|NatNet]] commands is recommended because they are not only more robust but they also offer additional control features.
  
Line 104: Line 104:
  
  
<div style="padding-left:4em;"><u>XML syntax for the start / stop trigger packet</u>
+
<div class="padded"><u>XML syntax for the start / stop trigger packet</u>
  
 
  <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 
  <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Line 136: Line 136:
 
!Streaming Protocol
 
!Streaming Protocol
 
!Markers
 
!Markers
!style = "padding:10px"|Rigid Bodies
+
!style = "padding:1%"|Rigid Bodies
!style = "padding:10px"|Skeletons
+
!style = "padding:1%"|Skeletons
!style = "padding:10px"|Description
+
!style = "padding:1%"|Description
!style = "padding:10px"|Download
+
!style = "padding:1%"|Download
 
|-
 
|-
|style = "padding:10px"|NatNet SDK
+
|style = "padding:1%"|NatNet SDK
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
|style = "padding:10px"|Runs local or over network. The NatNet SDK includes multiple sample applications for C/C++, OpenGL, Winforms/.NET/C#, MATLAB, and Unity.  It also includes a C/C++ sample showing how to decode Motive UDP packets directly without the use of client libraries (for cross platform clients such as Linux).
+
|style = "padding:1%"|Runs local or over network. The NatNet SDK includes multiple sample applications for C/C++, OpenGL, Winforms/.NET/C#, MATLAB, and Unity.  It also includes a C/C++ sample showing how to decode Motive UDP packets directly without the use of client libraries (for cross platform clients such as Linux).
  
  
 
C/C++ or VB/C#/.NET or Matlab
 
C/C++ or VB/C#/.NET or Matlab
|style = "padding:10px"|[http://optitrack.com/products/natnet-sdk/ Download]
+
|style = "padding:1%"|[http://optitrack.com/products/natnet-sdk/ Download]
 
|-
 
|-
|style = "padding:10px"|Autodesk MotionBuilder Plugin
+
|style = "padding:1%"|Autodesk MotionBuilder Plugin
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
|style = "padding:10px"|Runs local or over network. Allows streaming both recorded data and real-time capture data for markers, rigid bodies, and skeletons.
+
|style = "padding:1%"|Runs local or over network. Allows streaming both recorded data and real-time capture data for markers, rigid bodies, and skeletons.
  
 
Comes with Motion Builder Resources:
 
Comes with Motion Builder Resources:
Line 161: Line 161:
 
OptiTrack Skeleton Device
 
OptiTrack Skeleton Device
 
OptiTrack Insight VCS
 
OptiTrack Insight VCS
|style = "padding:10px"|[http://optitrack.com/downloads/#mobu-plugin Download]
+
|style = "padding:1%"|[http://optitrack.com/downloads/#mobu-plugin Download]
 
|-
 
|-
|style = "padding:10px"|Visual3D
+
|style = "padding:1%"|Visual3D
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|With a Visual3D license, you can download Visual3D server application which is used to connect OptiTrack server to Visual3D application. Using the plugin, Visual 3D receives streamed marker data to solve precise skeleton models for biomechanics applications.
+
|style = "padding:1%"|With a Visual3D license, you can download Visual3D server application which is used to connect OptiTrack server to Visual3D application. Using the plugin, Visual 3D receives streamed marker data to solve precise skeleton models for biomechanics applications.
  
  
 
C-Motion wiki: [http://www.c-motion.com/v3dwiki/index.php/Visual3DServer_Overview Visual3DServer Plugin]
 
C-Motion wiki: [http://www.c-motion.com/v3dwiki/index.php/Visual3DServer_Overview Visual3DServer Plugin]
|style = "padding:10px"|[http://www.c-motion.com/ C-Motion Website]
+
|style = "padding:1%"|[http://www.c-motion.com/ C-Motion Website]
 
|-
 
|-
|style = "padding:10px"|Unreal Engine 4 Plugin
+
|style = "padding:1%"|Unreal Engine 4 Plugin
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|Runs local or over network. Supports Unreal Engine 4.10. This plugin allows streaming of rigid bodies and integration of HMD tracking within Unreal Engine projects. For more details, read through the [[OptiTrack Unreal Engine 4 Plugin]] documentation page.
+
|style = "padding:1%"|Runs local or over network. Supports Unreal Engine 4.10. This plugin allows streaming of rigid bodies and integration of HMD tracking within Unreal Engine projects. For more details, read through the [[OptiTrack Unreal Engine 4 Plugin]] documentation page.
|style = "padding:10px"|[http://optitrack.com/downloads/ Download]
+
|style = "padding:1%"|[http://optitrack.com/downloads/ Download]
 
|-
 
|-
|style = "padding:10px"|3ds Max Plugin
+
|style = "padding:1%"|3ds Max Plugin
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|<div style="color:#ff0000">(Unmaintained)</div> Runs local or over network. Supports 3ds Max 2009-2012. This plugin allows Autodesk 3ds Max to receive skeletons and rigid bodies from the OptiTrack server application such as Motive.  
+
|style = "padding:1%"|<div style="color:#ff0000">(Unmaintained)</div> Runs local or over network. Supports 3ds Max 2009-2012. This plugin allows Autodesk 3ds Max to receive skeletons and rigid bodies from the OptiTrack server application such as Motive.  
|style = "padding:10px"|[http://optitrack.com/downloads/#3ds-max-plugin Download]
+
|style = "padding:1%"|[http://optitrack.com/downloads/#3ds-max-plugin Download]
 
|-
 
|-
|style = "padding:10px"|VRPN
+
|style = "padding:1%"|VRPN
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|Runs local or over network.  
+
|style = "padding:1%"|Runs local or over network.  
  
 
Includes source code (C++) of a sample implementation for VRPN streaming. The Virtual-Reality Peripheral Network (VRPN) is an open source project containing a library and a set of servers that are designed for implementing a network interface between application programs and tracking devices used in a virtual-reality system.  
 
Includes source code (C++) of a sample implementation for VRPN streaming. The Virtual-Reality Peripheral Network (VRPN) is an open source project containing a library and a set of servers that are designed for implementing a network interface between application programs and tracking devices used in a virtual-reality system.  
  
 
For more information: [https://github.com/vrpn/vrpn/wiki VRPN Github]
 
For more information: [https://github.com/vrpn/vrpn/wiki VRPN Github]
|style = "padding:10px"|[http://optitrack.com/downloads/#trackd Download]
+
|style = "padding:1%"|[http://optitrack.com/downloads/#trackd Download]
 
|-
 
|-
|style = "padding:10px"|trackd
+
|style = "padding:1%"|trackd
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|Runs local or over network. Provides streaming implementation with the trackd module.  
+
|style = "padding:1%"|Runs local or over network. Provides streaming implementation with the trackd module.  
  
 
Trackd is a network streaming infrastructure that takes in data from tracking applications (e.g. Motive) and makes it available for other applications to use. The provided DLL library and the CONF file can be imported into the Trackd software for delivering the mocap data to other applications.
 
Trackd is a network streaming infrastructure that takes in data from tracking applications (e.g. Motive) and makes it available for other applications to use. The provided DLL library and the CONF file can be imported into the Trackd software for delivering the mocap data to other applications.
  
 
For more information or specific directions on how to use the trackd software, contact: [http://www.mechdyne.com/software.aspx?name=trackd Mechdyne (trackd)]
 
For more information or specific directions on how to use the trackd software, contact: [http://www.mechdyne.com/software.aspx?name=trackd Mechdyne (trackd)]
|style = "padding:10px"|[http://optitrack.com/downloads/#trackd Download]
+
|style = "padding:1%"|[http://optitrack.com/downloads/#trackd Download]
 
|-
 
|-
|style = "padding:10px"|Motive API
+
|style = "padding:1%"|Motive API
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|Runs Motive heedlessly. Best Motive command/control. Also provides access to camera imagery and other data elements not available in the other streams.
+
|style = "padding:1%"|Runs Motive heedlessly. Best Motive command/control. Also provides access to camera imagery and other data elements not available in the other streams.
  
  
 
C/C++
 
C/C++
|style = "padding:10px"|Within Motive
+
|style = "padding:1%"|Within Motive
 
|-
 
|-
|style = "padding:10px"|VCS:Maya
+
|style = "padding:1%"|VCS:Maya
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|Y
 
|style = "text-align:center;"|N
 
|style = "text-align:center;"|N
|style = "padding:10px"|'''Separate license is required.''' Streams capture data into Autodesk Maya for using the Virtual Camera System.
+
|style = "padding:1%"|'''Separate license is required.''' Streams capture data into Autodesk Maya for using the Virtual Camera System.
|style = "padding:10px"|[http://optitrack.com/downloads/insight-vcs.html Download]
+
|style = "padding:1%"|[http://optitrack.com/downloads/insight-vcs.html Download]
 
|}
 
|}
  
 
----
 
----
 
{{BackNext|[[Data Export|'''Back:''' Data Export]]|[[Motive Documentation|Back to the Overview page]]}}
 
{{BackNext|[[Data Export|'''Back:''' Data Export]]|[[Motive Documentation|Back to the Overview page]]}}

Revision as of 18:20, 22 December 2016

Main PageMotive DocumentationData Streaming


Data Streaming pane

Motive offers multiple options to stream tracking data onto external applications in real-time. Streaming plugins are available for Autodesk Motion Builder, Visual3D, Unreal Engine 4, 3ds Max, Maya (VCS), VRPN, and trackd, and they can be downloaded from the OptiTrack website. For other streaming options, the NatNet SDK enables users to build custom clients to receive capture data. All of the listed streaming options do not require separate licenses to use. Common motion capture applications rely on real-time tracking, and the OptiTrack system is designed to deliver data at an extremely low latency even when streaming to third-party pipelines. This page covers configuring Motive to broadcast frame data over a selected server network. Detailed instructions on specific streaming protocols are included in the PDF documentation that ships with the respective plugins or SDK's.


Read through the Data Streaming Pane page for explanations on each setting.

NaturalPoint Data Streaming Forum: OptiTrack Data Streaming


Streaming in Motive


  • Open the Data Streaming Pane in Motive
  • Select the network interface address for streaming data.
  • Select desired data types to stream under streaming options.
  • When streaming skeletons, set the appropriate bone naming convention for client application.
  • Check Broadcast Frame Data at the top.
  • Configure streaming settings and designate the corresponding IP address from client applications
  • Stream live or playback captures


Streaming IP Address


It is important to select the network adapter (interface, IP Address) for streaming data. Most Motive Host PCs will have multiple network adapters - one for the camera network and one (or more) for the local area network (LAN). Motive will only stream over the selected adapter (interface). Select the desired interface using the Data Streaming Pane in Motive. The interface can be either over a local area network (LAN) or on the same machine (localhost, local loopback). If both server (Motive) and client application are running on the same machine, set the network interface to the local loopback address (127.0.0.1). When streaming over a LAN, select the IP address of the network adapter connected to the LAN. This will be the same address the Client application will use to connect to Motive. Note that firewall or anti-virus software can block network traffic, so it is important to make sure these applications are disabled or configured to allow access for both server (Motive) and Client applications.

  • Skeleton device pane in MotionBuilder.
  • Sample client application created using NatNet SDK.
  • Sample .NET sample created using NatNet SDK.


Streaming Options


Before starting to broadcast data onto the selected network interface, define which data types to stream. Under streaming options, there are settings where you can include or exclude specific data types and syntax. Set only the necessary criteria to true. For most applications, the default settings will be appropriate.

See: Data Streaming pane


Bone Naming Convention


When streaming skeleton data, bone naming convention formats annotations for each segment when data is streamed out. Appropriate convention should be configured to allow client application to properly recognize segments. For example, when streaming to Autodesk pipelines, the naming convention should be set to FBX.


Coordinate System Convention


Motive (1.7+) uses a right-handed Y-up coordinate system. However, coordinate systems used in client applications may not always agree with the convention used in Motive. In this case, the coordinate system in streamed data needs to be modified to a compatible convention. For client applications with a different ground plane definition, Up Axis can be changed under Advanced Network Settings. For compatibility with left-handed coordinate systems, the simplest method is to rotate the capture volume 180 degrees on the Y axis when defining the ground plane during Calibration.

  • Motive1.7Coordinate-LFrameImplications.png
  • Calib Square.jpg


NatNet Streaming


NatNet is a client/server networking protocol which allows sending and receiving data across a network in real-time. It utilizes UDP along with either Unicast or Multicast communication for integrating and streaming reconstructed 3D data, rigid body data, and skeleton data from OptiTrack systems to client applications. Within the API, a class for communicating with OptiTrack server applications is included for building client protocols. Using the tools provided in the NatNet API, capture data can be used in various application platforms. Please refer to the NatNet User Guide For more information on using NatNet and its API references.


Stream Nat.png


Info2.png

Rotation conventions

NatNet streams rotational data in quaternions. If you wish to present the rotational data in the Euler convention (pitch-yaw-roll), the quaternions data need to be converted into Euler angles. In the provided NatNet SDK samples, the SampleClient3D application converts quaternion rotations into Euler rotations to display in the application interface. The sample algorithms for the conversion are scripted in the NATUtils.cpp file. Refer to the NATUtils.cpp file and the SampleClient3D.cpp file to find out how to convert quaternions into Euler conventions.


Remote Triggering



If desired, Motive can be controlled remotely by both sending or receiving either NatNet commands or XML broadcast messages to or from a client application through the UDP communication protocol, which enables client applications to trigger Motive commands. Using NatNet commands is recommended because they are not only more robust but they also offer additional control features.

Recording start and stop commands can also be transmitted via XML packets. When triggering via XML messages, the Remote Trigger setting under Advanced Network Settings must be set to true. In order for Motive, or clients, to receive the packets, the XML messages must be sent via the triggering UDP port. The triggering port is designated as two increments (2+) of the defined Command Port (default: 1510), under the advanced network settings, which defaults to 1512. Lastly, the XML messages must exactly follow the appropriate syntax:

XML Triggering Port: Command Port (Advanced Network Settings) + 2. This defaults to 1512 (1510 + 2).
Tip: Within the NatNet SDK sample package, there is a simple C++ application (BroadcastSample.cpp) that demonstrates a sample use of XML remote trigger in Motive.


XML syntax for the start / stop trigger packet
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<CaptureStart>
    <TimeCode VALUE="12 13 14 14 0 0 1 1"/>
    <Name VALUE="RemoteTriggerTest_take01"/>
    <Notes VALUE=""/><Description VALUE=""/>
    <DatabasePath VALUE="S:/shared/testfolder/"/>
    <PacketID VALUE="0"/>
    <HostName VALUE="optional host name" />
    <ProcessID VALUE="optional process id" />
</CaptureStart>

<?xml version="1.0" encoding="utf-8"?>
<CaptureStop>
    <Name VALUE="TakeName" />
    <Notes VALUE="cTake notes go here if any." />
    <Assets VALUE="skel1, skel2, sword" />
    <TimeCode VALUE="00:00:00:00" />
    <HostName VALUE="optional host name" />
    <ProcessID VALUE="optional process id" />
</CaptureStop>

Streaming Protocols/Plugins



Streaming Protocol Markers Rigid Bodies Skeletons Description Download
NatNet SDK Y Y Y Runs local or over network. The NatNet SDK includes multiple sample applications for C/C++, OpenGL, Winforms/.NET/C#, MATLAB, and Unity. It also includes a C/C++ sample showing how to decode Motive UDP packets directly without the use of client libraries (for cross platform clients such as Linux).


C/C++ or VB/C#/.NET or Matlab

Download
Autodesk MotionBuilder Plugin Y Y Y Runs local or over network. Allows streaming both recorded data and real-time capture data for markers, rigid bodies, and skeletons.

Comes with Motion Builder Resources: OptiTrack Optical Device OptiTrack Skeleton Device OptiTrack Insight VCS

Download
Visual3D Y N N With a Visual3D license, you can download Visual3D server application which is used to connect OptiTrack server to Visual3D application. Using the plugin, Visual 3D receives streamed marker data to solve precise skeleton models for biomechanics applications.


C-Motion wiki: Visual3DServer Plugin

C-Motion Website
Unreal Engine 4 Plugin N Y N Runs local or over network. Supports Unreal Engine 4.10. This plugin allows streaming of rigid bodies and integration of HMD tracking within Unreal Engine projects. For more details, read through the OptiTrack Unreal Engine 4 Plugin documentation page. Download
3ds Max Plugin N Y N
(Unmaintained)
Runs local or over network. Supports 3ds Max 2009-2012. This plugin allows Autodesk 3ds Max to receive skeletons and rigid bodies from the OptiTrack server application such as Motive.
Download
VRPN N Y N Runs local or over network.

Includes source code (C++) of a sample implementation for VRPN streaming. The Virtual-Reality Peripheral Network (VRPN) is an open source project containing a library and a set of servers that are designed for implementing a network interface between application programs and tracking devices used in a virtual-reality system.

For more information: VRPN Github

Download
trackd N Y N Runs local or over network. Provides streaming implementation with the trackd module.

Trackd is a network streaming infrastructure that takes in data from tracking applications (e.g. Motive) and makes it available for other applications to use. The provided DLL library and the CONF file can be imported into the Trackd software for delivering the mocap data to other applications.

For more information or specific directions on how to use the trackd software, contact: Mechdyne (trackd)

Download
Motive API Y Y N Runs Motive heedlessly. Best Motive command/control. Also provides access to camera imagery and other data elements not available in the other streams.


C/C++

Within Motive
VCS:Maya N Y N Separate license is required. Streams capture data into Autodesk Maya for using the Virtual Camera System. Download

Back: Data Export

Back to the Overview page