Skip to main content Link Search Menu Expand Document (external link)


Luxonis OAK sensor

dp.oak is a plugin for the Cycling '74 Max development environment to use the Luxonis OAK sensor with a Windows computer.

:running_woman: Get started

Download, trial, license

Get a download, trial, or license from the store.

System requirements

The Luxonis OAK sensor does not have a shared system driver that all applications use. It instead has all the needed files in the same folder as the plugin. I have split the downloads into two groups:

  • dp.oak plugin download with all features except body tracking. ~40 MB download
  • Body tracking neural net files that change less often. ~18 MB download


  1. Install Cycling’74 Max version 6.1.9 or newer (64-bit)
  2. Download dp.oak from
  3. Decompress all the files in this download into an empty folder
  4. Register dp.oak

Optional body tracking

This neural net enables body tracking for six people.

  1. Download the neural net model for body tracking
  2. Place the model in the same folder as the dp.oak plugin


  1. Visit to get a no-cost license for pre-production releases.
  2. Open the help file or patch included within the dp.oak download.
  3. Click the top-left Register tab.
  4. Ignore the trial button.
  5. Type your registration name in the field beside the register button. You received your registration name in an email from the online store. 🧐 Your registration name is usually not your email address.
  6. Click the register button and use the dialog box that appears to select your dp.oak registration key (.dpreg file)
  7. You should see a successful registration. If not, please look at the Max console for any warnings or errors.

Depth technology

Depth technology of most OAK sensors is similar to stereo vision of humans. This is different than infrared-laser technology in sensors like Microsoft Kinect. Only OAK Pro sensors have infrared laser dot projectors.

Power over ethernet

Power-over-Ethernet (PoE) devices are connected with an ethernet cable instead of a short 3-meter USB cable. The ethernet connection can be a great distance, even in a different building.

Luxonis makes several OAK PoE sensor models. Some have infrared laser dot projectors to work in darkness. Others have weatherproof enclosures.

PoE devices need more time to be detected, startup, shut down, and restart. It is not unusual to need 5-8 seconds to find a PoE sensor. It is not unusual to need 20 seconds after stopping a PoE sensor for that same PoE sensor to be ready again.

Known issues

:open_book: Learn

Use search :mag: at the top or all below to find tutorials, features, attributes, methods, and more.


Skeleton Joint Changes Color
Learn how to get the real-world XYZ position of your left hand relative ...
View Sensor Depthmap
Learn how to view depth data (depthmap) as a monochrome image. A depthma...


Acceleration XYZ vector usually pointing towards gravity (where 1 unit =...
Align data to the perspective of the depth or color camera. This affects...
Parent jit.anim.node name adds plugin to jit.anim.node hierarchy.
Color camera exposure in microseconds (µs) and ISO sensitivity.
Color camera focus position; automatic or manual.
Color image output in choice of pixel format on the second outlet.
Resolution of color image that was enabled with @colormap
Color component in 8-bit unsigned integer or 32-bit normalized float. Th...
Decoder for color images (e.g. MJPEG sensor data). Deprecated.
Filter depth pixels by the normalized confidence of their depth value. T...
Depth camera native capture frame rate expressed as frames per second (H...
Depth output on the first outlet. This combined with resolution @depthma...
Resolution of depth image that was enabled with @depthmap.
Depth visibility filter removes double images and edge artifacts in imag...
Distance output in meters 1 or millimeters 0. This affects all distance ...
Flip or negate X-axis values of output (matrix images, joint positions, ...
Calculate the floor plane on each bang, update the @floor attribute, and...
Identify/select sensor hardware model. It is read-only on some plugins. ...
Bind specific sensor to the plugin. If @idsensor is not set when the plu...
Enable streaming/recording indicator (e.g. LED) on the sensor. Not all s...
Infrared (IR) laser dot projector brightness normalized to [0.0..1.0].
Infrared (IR) flood light brightness normalized to [0.0..1.0].
Apply gamma correction to infrared image enabled with @irmap. Use to bri...
Infrared (IR) image output on the third outlet. This, resolution @irmapr...
Infrared (IR) values in 8-bit unsigned integer, long signed integer, or ...
Machine learning compute engine and device. Enable multiple compute devi...
Crop the machine learning input tensor. This overrides the default behav...
Machine learning input by source, FourCC, and shape. The default @mlinpu...
Subtract values from input channels before scaling: (pixel_value - mean)...
Enable machine learning and run inference with the given ONNX model on t...
Scale input values after subtracting mean: (pixel_value - mean) * scale.
Swap 3-channel ml input tensor channels 0 and 2 before inference.
Monochrome camera exposure in microseconds (µs) and ISO sensitivity.
Mount rotation of sensor in clockwise degrees; may optimize ai models li...
Unique plugin instance name. Other Max objects can bind to this name.
OpenCL device for image processing (e.g. flipx, undistort, align, etc.) ...
Skeleton joint orientation as quaternion, 4x4 matrix, hierarchical, or a...
Sensor data transforms and output can be multi-threaded and triggered wi...
Format of pointcloud output as three or four floating point values.
Filter skeleton body, joints, and face by their confidence. This confide...
Offset the origin of sensor data to this XYZ value. That is, translate s...
Reduce video banding and flicker related to regional power frequency.
Rotate data by a quaternion in the form: i j k w. This is always synchro...
Register a license or get the status of registration.
Rotate data by an angle (degrees) around an XYZ vector in the form: angl...
Rotate data to compensate for gravity. This compensation is combined wit...
Rotate data by Euler angles (degrees) around the positive x, y, and z ax...
Scale the sensor data by this XYZ value. That is, multiply sensor data a...
Skeleton tracking compute engine and device. Enable multiple compute dev...
Skeleton, joint, and user tracking output on the fifth outlet. Output fo...
Message format for skeleton joints, users, faces, etc. Native Max messag...
Machine learning model used for skeleton and joint tracking
Smoothing for skeleton joint values with either a simplified one paramet...
Timestamps for skeleton and matrix data as microseconds since the Epoch.
Transcoder for image formats, e.g. transcoding MJPEG sensor data to colo...
Depthmap value in signed integer, 32-bit float, or 64-bit float. This ty...
Undistort the depth, color, infrared, and playermap output. The undistor...
Scale factor for undistortion and cropping of unwanted/invalid pixels wh...
Unique-only matrices and messages; bang may not output when no changes. ...
Verbose warnings and errors output to the Max Window for troubleshooting...
White balance in degrees Kelvin temperature to adjust for lighting condi...


Query the plugin for updated data. Then, output matrices and messages fr...
Close and teardown the currently open connection to a sensor.
Firmware version query and update for supported sensor devices.
Get status of sensor ports; like those for synchronization.
Output supported sensor identifiers on the dumpout outlet. These identif...
Open and initialize the connection to a sensor. When @idsensor has not b...
Unregister and remove a license.