Back to the Main page → Back to the NatNet SDK page
This page lists out the NatNet sample applications provided with the SDK and provides instructions for some of the samples. The code samples are the quickest path towards getting NatNet data into your application. We typically recommend you:
The Visual Studio solution file \Samples\NatNetSamples.sln will open and build all of the NatNet sample projects. If you are creating an application from scratch, please refer to the following sections for application specific requirements.
\Samples\NatNetSamples.sln
The following projects are located in the NatNet SDK\Samples folder.
NatNet SDK\Samples
NatNet SDK Samples
Direct Depacketization Samples
XML trigger broadcast
1. [Motive] Start the Optitrack Server (e.g. Motive) and begin streaming data via the Streaming Panel.
2. [Command Prompt] Start the client from the windows command prompt: SampleClient.exe [ClientIPAddress] [ServerIPAddress] [OutputFilename.txt]
SampleClient.exe [ClientIPAddress] [ServerIPAddress] [OutputFilename.txt]
3. [Command Prompt] You should begin to see data streaming in the client window or to text file.
The Rigid Body sample (SampleClient3D) illustrates how to decode NatNet 6DOF Rigid Body and Skeleton Segment data from OptiTrack quaternion format to euler angles and display them in a simple OpenGL 3D viewer. This sample also illustrates how to associate RigidBody/Skeleton Segment names and IDs from the data descriptions with the IDs streamed in the FrameOfMocapData packet.
With Client/Server on same machine:
1. [Motive] Load a dataset with rigid body or skeleton definitions
2. [Motive] Enable network streaming ( Data Streaming Pane -> Check Broadcast Frame Data )
3. [Motive] Enable streaming rigid body data (check Stream Options -> Stream Rigid Bodies = True)
4. [Sample3D] File -> Connect
With Client/Server on separate machines:
2. [Motive] Set IP address to stream from (Network Interface Selection -> Local Interface)
3. [Motive] Enable network streaming ( Data Streaming Pane -> Check Broadcast Frame Data )
4. [Motive] Enable streaming rigid body data (check Stream Options -> Stream Rigid Bodies = True)
5. [Sample3D] Set Client and Server IP addresses
6. [Sample3D] File -> Connect
1. [Motive] Start a NatNet server application (e.g. Motive).
2. [Motive] Enable NatNet streaming from the Server application.
3. [WinFormTestApp] Start the WinForms sample application from the NatNet Samples folder.
4. [WinFormTestApp] Update the “Local” and “Server” IP Addresses as necessary.
5. [WinFormTestApp] Press the “Connect” button to connect to the server.
6. [WinFormTestApp] Press the “GetDataDesc” button to request and display a detailed description of the Server’s currently streamed objects.
7. [WinFormTestApp] Select a Row in the DataGrid to display that value in the graph.
3. [Matlab] Start Matlab
4. [Matlab] Open the NatNetMatlabSample.m file.
5. [Matlab] From the editor window, press Run
(Note: For a more user friendly, high performance solution for streaming into Unity3D, we recommend the new OptiTrack Unity Plugin.)
1. [Motive] Start Motive.
2. [Motive] Have skeleton tracking data available in Motive. You can either open a previously captured Take or stream directly from live tracking.
3. [Motive] Open the Data Streaming pane, and set the Local Rigid Body and Stream Skeletons setting to True.
4. [Motive] Specify the streaming network address under the Network Interface → Local Interface.
5. [Motive] Enable the network streaming from the server application (Motive: Data Streaming Pane Check Broadcast Frame Data )
6. [UnitySample] Run UnitySample.exe from the \NatNet SDK\Samples\bin folder. This program connects to the NatNet server, receives tracking data from Motive, and outputs the data into Unity. If this application fails to find the host, go back to Motive and try streaming onto another network interface.
\NatNet SDK\Samples\bin
7. [Unity] Start Unity.
8. [Unity] Create a new project.
9. [Unity] Import the C# scripts, or assets, in the \NatNet SDK\Sample\Unity3D folder into Unity.
\NatNet SDK\Sample\Unity3D
10. [Unity] Create an empty gameobject (GameObject → Create Empty) in the scene and name it SlipStream.
11. [Unity] Add the SlipStream.cs script component into the SlipStream object.
12. [Unity] Under the SlipStream.cs component, type in the streaming Unity3D IP address defined from the server application.
13. [Unity] Import a sample character in Unity. ( Asset → Import Package → Characters)
14. [Unity] From the imported assets folder in the Project panel, load the sample character, Ethan, into the scene. (Assets → Standard Assets → Characters → ThirdPersonCharacters → Models → Ethan)
15. [Unity] Select the character, and under the inspector panel, disable the Animator class.
16. [Unity] Click Add Component, and add the LivePoseAnimator.cs script onto the character.
17. [Unity] Enter properties for the LivePoseAnimator component:
18. [Unity] Double check the settings under the objects (SlipStream and Ethan) and run the project. If all settings are properly configured, Ethan will be animated using tracking data from Motive.