Motive API

Back to the Developer Tools Page

The Motive API allows control of, and access to, the backend software platform of Motive via C/C++ interface. Using the API, you can employ several of the features of Motive in your custom applications, such as accessing 2D camera images, marker centroid data, unlabeled 3D points, labeled markers, and rigid body tracking data. When you install Motive, all of the required components for utilizing the API will be installed within the Motive install directory. The key files for using the Motive API are listed in the below section.

What it can do:

  • Camera control
  • Frame control
  • Point Cloud reconstruction engine control
  • Obtain and use reconstructed 3D Marker data
  • Rigid body tracking
  • Query results
  • Stream results over the network

What it cannot do

  • In depth hardware control (e.g. hardware sync customization). Use the Camera SDK.
  • Building custom streaming server/client protocol for sending/receiving streamed data. Use the NatNet SDK.
  • Record and playback data.
  • Skeleton solve.


  • The API is supported in Windows only
  • Must have valid Motive license and a corresponding Hardware key.

Files List

When you install Motive, all of the required components of the Motive API will be placed within the installation directory, and by default, Motive is installed in C:\Program Files\OptiTrack\Motive. The following table lists all of the key files of the API and where they could be found.

Filename Directory Description
NPTrackingTools.h [Motive Install Directory]\inc\NPTrackingTools.h The header file NPTrackingTools.h contains declaration for functions and classes of the API. Necessary functions and classes are thoroughly commented within this file. This header file must be included in the main script for utilizing the Motive API functions.
RigidBodySettings.h [Motive Install Directory]\inc\RigidBodySettings.h The header file RigidBodySettings.h contains class declaration for the cRigidBodySettings class, which is used to modify and configure the settings for rigid body assets. This header file is included within the NPTrackingTools.h file, so it would not be necessary to separately include this.
lib folder [Motive Install Directory]\lib This folder includes C++ library files (.lib and .dll) for employing the Motive API. Required libraries for 32-bit (NPTrackingTools) and 64-bit (NPTrackingToolsx64) operating systems are both available in this folder. For an additional note, the Motive API is compiled using Visual Studio 2013 with dynamic run-time (\MD) library, so make sure the client application also uses the same settings.
libiomp5md.dll [Motive Install Directory] OpenMP library for 64-bit operating systems. This DLL is required for all applications built against the API. The library file for 32-bit operating systems can be found in the \Program Files\OptiTrack\Motive\lib32 folder.
Sample project [Motive Install Directory]\Samples\markers This folder contains a sample Visual Studio project (marker.sln) that uses the Motive API for accessing camera, marker, and rigid body information. Refer to this folder to find out how the API could be used.

API Guide / Function Reference

Quick Start Guide: Motive API

Follow the instructions in the following guide to get introduced to the basics functions of the Motive API.

Motive API Function Reference

Following pages list out all of the functions and classes that can be utilized by the API.

2016-06-23 10 42 07-Support - OptiTrack.png


Many of the Motive API functions return their results as integer values defined NPRESULT. This value expresses the outcome of the result. Not only it indicates whether the function operated successfully or not, it also provides more detailed information on what type of error has occured. When you get the NPRESULT output from a function, you can use the TT_GetResultString function to get the plain text result that corresponds to the error message.

const char		*TT_GetResultString( NPRESULT result ); // Returns text of detail information on the result.

Also, camera video types, or image processing modes, are expressed as integer values as well. These values are listed below and are commented within the header file as well.


#define 	NPRESULT_SUCCESS     		0
#define 	NPRESULT_FILENOTFOUND           1
#define 	NPRESULT_FAILED			3

Camera Video Type Definitions