SDKs
SDKs
SDKs
SDKs
Camera SDK


Integrate OptiTrack cameras with tracking and vision applications.
Full camera control and sample application source code included.
Integrate OptiTrack cameras with tracking and vision applications.
Full camera control and sample application source code included.
Full camera control and sample application source code included.
The Camera SDK is a free development package that enables users to control and capture from NaturalPoint cameras in order to create custom tracking and vision applications. The SDK includes full camera control, access to 2D object data, camera synchronization, and comprehensive vector tracking—a complete assortment of tools to create cost-effective, powerful applications from scratch or integrate with existing software.
All current OptiTrack, TrackIR and SmartNav camera models are supported in addition to many discontinued models. The OptiHub and Hardware Key are also supported for synchronization and licensing development.
Support for the Camera SDK is provided only when used with OptiTrack hardware.
Simple C++ Integration
A C++ interface for development replaces the previous OptiTrack SDK’s COM interface for greater ease of integration with a variety of software languages and frameworks.
Object Data
2D object data for up to 512 objects in the camera’s view can be extracted for tracking and filtering purposes. Available information includes:
Location (weighted X,Y coordinates)
Area
Width/Height
Roundness
Ability to remove lens distortion effects
Area
Width/Height
Roundness
Ability to remove lens distortion effects
Multi-Camera Synchronization
Multiple cameras can be synchronized to fire their shutters and expose frames at the same time. Instead of fetching frames from individual cameras, groups can be created to both fetch synchronized frames and confirm that cameras within the group are properly synchronized.
Camera Control
Extensive access to camera functions, methods, callbacks and properties for complete control of your vision system, including:
Video mode (object, segment, precision, raw grayscale, MJPEG)
Frame rate w/ frame decimation control
Exposure w/ automatic exposure control
Automatic gain control
Hardware masking
Image size windowing
Threshold
Illumination
Filter Switcher
High Power Mode (Flex 13 and V100:R2/Flex 3 only)
Status LED control
Frame rate w/ frame decimation control
Exposure w/ automatic exposure control
Automatic gain control
Hardware masking
Image size windowing
Threshold
Illumination
Filter Switcher
High Power Mode (Flex 13 and V100:R2/Flex 3 only)
Status LED control
6DoF Vector Tracking
The Camera SDK includes basic vector tracking for both the TrackClip and TrackClip PRO, providing 6DoF output. Vector is a proprietary technology developed by NaturalPoint for 6DoF tracking using three markers and a single camera.
Sample Applications with Source Code
applications are included to demonstrate best practices and provide starting points for using the SDK. Sample apps include:
Camera List
Frame Synchronization
Image Processing
MJPEG Viewer
Segment Mode
Vector Tracking
Frame Synchronization
Image Processing
MJPEG Viewer
Segment Mode
Vector Tracking
NatNet SDK

A client/server networking SDK
for streaming motion tracking data across networks.
A client/server networking SDK
for streaming motion tracking data across networks.
for streaming motion tracking data across networks.
NatNet's client/server architecture allows client applications to run on the same system as the tracking software (Motive), on separate system(s), or both. The SDK integrates seamlessly with standard APIs (C/C++/.NET), tools (Microsoft Visual Studio) and protocols (UDP/Unicast/Multicast). Using the NatNet SDK, developers can quickly integrate OptiTrack motion tracking data into new and existing applications, including custom plugins to third-party applications and engines for real-time streaming.
SDK Contents
NatNet Library
Native C++ networking library [headers, static library (.lib) and dynamic import library (.lib/.dll)]
Native C++ networking library [headers, static library (.lib) and dynamic import library (.lib/.dll)]
NatNet Assembly
Managed .NET assembly (NatNetML.dll) for use in .NET compatible clients.
Managed .NET assembly (NatNetML.dll) for use in .NET compatible clients.
NatNet Samples
Sample projects and executables designed to be quickly integrated into your own code.
Sample projects and executables designed to be quickly integrated into your own code.
MatNet interface to MATLAB
.NET interface and sample program (MatNet.m) for live streaming markers, rigid bodies, or skeletons. The MatNet sample program works directly with MATLAB core, requiring no additional MATLAB modules.
.NET interface and sample program (MatNet.m) for live streaming markers, rigid bodies, or skeletons. The MatNet sample program works directly with MATLAB core, requiring no additional MATLAB modules.
API Structure
NatNetClient
A class for communicating with a NatNet Server (Motive).
A class for communicating with a NatNet Server (Motive).
NatNet Data Types
Structures encapsulating data encoded in NatNet packets.
Structures encapsulating data encoded in NatNet packets.
NatNet Assembly
A managed (.NET) class library that can be called by .NET components. The NatNet assembly wraps the underlying native NatNet library, exposing the NatNetClient and NatNet Data Types for use in .NET compatible environments (e.g. VB.NET, C#, MatLab).
A managed (.NET) class library that can be called by .NET components. The NatNet assembly wraps the underlying native NatNet library, exposing the NatNetClient and NatNet Data Types for use in .NET compatible environments (e.g. VB.NET, C#, MatLab).
Data Types
Marker Set Data
A named collection of identified markers and their positions (X,Y,Z).
A named collection of identified markers and their positions (X,Y,Z).
Rigid Body Data
A named segment with a unique ID, position, and orientation data, and the collection of identified markers used to define it.
A named segment with a unique ID, position, and orientation data, and the collection of identified markers used to define it.
Skeleton Data
A named, hierarchical collection of rigid bodies.
A named, hierarchical collection of rigid bodies.
Force Plate Data
Rebroadcast force and moment data.
Rebroadcast force and moment data.
Device Data
Rebroadcast data from analog devices such as DAQ devices.
Rebroadcast data from analog devices such as DAQ devices.