RealSense Cubemos skeleton tracking, OpenCV4.5, OpenVR CHOP updated, New Spectrum TOP, Lens Distort TOP and Script TOP extended, .E57 point cloud file support, Web Render TOP media stream support, new ParTuple class for working with parameters, bug fixes and improvements.
Release Notes 
Note that experimental builds include new features still in development. For the stability and reliability required for performances and project deliveries, we recommend using the production ready Official Builds.
NOTE: Numerous changes in this build are not backward compatible, refer to BACKWARD COMPATIBLE section below.
Dec 03, 2020
New Features
  • RealSense - Added Cubemos skeleton tracking support.
  • RealSense - BACKWARDS COMPATIBILITY WARNING - Removed support for the old Windows SDK and its tracking features. RealSense CHOP/RealSense TOP will now only support the cross platform librealsense API.
  • OpenCV - Updated to OpenCV 4.5
    • Python bindings are updated and it includes the full OpenCV toolkit, including CUDA and the opencv_contrib modules (except for things that can't be included due to licensing).
    • libs and headers used for OpenCV are now available in the Samples/CPlusPlus/3rdParty folder for easy use of OpenCV with C++ and Custom Operators.
  • Geometry COMP - Can now use 2D Texture Arrays and 3D Textures for TOP instancing data.
  • Standardization of Look At - All OPs that do 3D transforms now have the same capability to make a chosen axis (+ or -X, Y or Z) point to the origin of another object, with control of an up-direction.
    • Geometry COMP - 'Rotate To/Look At' now has a control for Forward Direction. This controls what axis will be rotated to point towards the desired target.
    • Transform CHOP - Added 'Look At' parameters to create a rotation that aligns a given axis towards another object.
    • Transform XYZ CHOP - Added 'Look At' parameters to rotate the input points to face another point.
    • Transform SOP - Added 'Forward' parameter to determine which axis is pointed towards the Look At object.
  • Convolve TOP - Added 'Scale' parameter.
  • Corner Pin TOP - Added parameter to switch between Bilinear and Perspective Mapping.
  • Lens Distort TOP - Added new parameters to scale and position the distorted image within the frame.
  • Lookup TOP - Added parameters to define the range of the input indices.
  • Point File In TOP - Added support for loading E57 point cloud files (Windows only).
  • Script TOP - Added loadByteArray() to load compressed data stored in bytearrays.
  • Script TOP - Allow source to be 3 channels for copyNumpyArray().
  • Script TOP - Added copyCUDAMemory, allowing data to be loaded from CUDA.
  • Spectrum TOP - New TOP that performs OpenCV's Discrete Fourier Transform (DFT) operation via CUDA (Windows - Nvidia Only).
  • Web Render TOP - Added options to 'Enable Media Stream' which enables the mic and camera to be used by web pages. Also included an option to specify a 'User Cache Directory'.
  • Video Device In TOP - Updated Flir camera support via Spinnaker SDK (previously called Point Grey cameras).
    • Added support for controlling camera options and manual capture triggering for Flir cameras.
    • Added ability to load presets for Flir cameras.
  • Kinect Azure CHOP - Added parameters to mirror image positions vertically and to output aspect correct UVs. Older files will default to mirrored UVs for backwards compatibility.
  • OpenVR CHOP - Overhauled to bring more inline with Steam configurations and brings support for Valve Index.
    • Added default bindings for Valve Index controllers.
    • Custom action manifests can now be selected to create CHOP channels filled in with values from arbitrary StreamVR controller bindings.
    • Added support for outputting Hand Skeleton Channels.
    • Added support for Finger Curl channels in skeleton mode.
  • TOP to CHOP - Added parameters to exclude pixels with NaN values, or to exclude pixels with a zero in a selected mask channel. TOPs that can be used for point clouds (Point File In TOP, Math TOP, Point Transform TOP) and Geometry COMP instancing with TOPs use NaN (not a number) or 0 in an alpha channel to indicate that the pixel is to be ignored.
  • OP Find DAT - Added options for Parent and Global OP Shortcuts.
  • Parameter Execute DAT - New callback 'On Values Changed' that includes all values that changed during the frame in a single list.
New Python
  • COMP Class.extensionsReady now dependably recooks in expressions.
  • CUDAMemory Class - Has new 'shape' member that better describes the width/height, number of components and dataType of the CUDA memory. Held in a CUDAMemoryShape Class.
  • tdu.Dependency - These objects can now be used in bind expressions.
  • Par - Get or set a custom parameter's help text. To see any parameter's help, rollover the parameter while holding the Alt key.
  • ParTuple Class - The new ParTuple class treats groups of parameters as one unit, such as XYZ positions, RGBA colors, UV coordinates. They can be set in one expression and retrieved as a group. For example, n.parTuple.t = [2, 3, 1] is equivalent to setting n.par.tx, ty, tz.
    • They are iterable. For example: [ for p in n.parTuple.t]
    • Added support for drag-n-drop callbacks (both as source, and received).
    • ParTupleCollection Class - ie. op('geo1').parTuple.t
  • SOP Class.numVertices - The total number of vertices contained in all primitives within this SOP.
  • TOP Class - numpyArray() has new 'neverNone' boolean keyword argument. Will always return an image when this is True, even if delayed. In the case it wouldn't have in the past, it stalls until the image is downloaded.
  • WebclientDAT Class.request - Added 'pars' keyword.
  • WebclientDAT_Class.request - BACKWARD COMPATIBILITY Data keyword will no longer implicitly add to query parameter list for non-postfield HTTP operations (eg. GET). For adding query parameters instead use the new 'pars' keyword.
New Palette
  • Palette:camera improvements
    • Fixed home/frame commands when Render TOP geometry parameter is set to '*'
    • Added FrameLookAt function to camera palette component and shortcut keys for viewing top, left, right, etc
Bugs Fixes and Improvements
  • Geometry COMP - 'Don't Use Up Vector' mode for Look-at Up renamed to 'Use Roll'.
  • Parameter COMP - Display custom parameter pages with no parameters.
  • Parameter COMP - Added 'Separators' option when using Pages.
  • CHOP to TOP - Changed the extra pixel default color from 0,0,0,1 to 0,0,0,0
  • CHOP to TOP - BACKWARDS COMPATIBILITY WARNING Reworked Fit to Square layout. Auto-calculated image dimensions may no longer be the same as in previous versions.
  • Movie File In TOP - A few fixes for 'Filename based indexing' playback mode for image sequences.
  • Video Stream In TOP - Better buffering behavior when first connecting.
  • Video Stream Out TOP - Info CHOP channels are now filled in properly when using RTMP and SRT.
  • Line MAT - Force face culling to be off to avoid missing parts of lines in scenes where face culling is globally on.
  • Phong MAT / PBR MAT - Output Shader no longer includes unused uniforms in the Vertex shader.
  • Audio Stream Out CHOP - Now works correctly on macOS.
  • DMX In CHOP - Fixed rate output when using 'Packet per Channel'.
  • Select CHOP - Allow unlimited inputs to be connected.
  • TOP to CHOP - The default color is now used to fill in shorter channels when pixels have been excluded because of the active or NaN parameters.
  • OP Find DAT - Fixed bug where DAT would not respond to parameter changes or text content changes.
  • TOP to CHOP - Empty channels are no longer created when all pixels fail the active and NaN checks.
  • WebSocket DAT - Fixed onConnect()/onDisconnect() callbacks being triggered when there is no WebSocket connection
  • Custom Operators - Fixed crash that can occur if getInfoDATEntries() doesn't fill in some entries.
  • Custom Operators - Calls to the plugins are now wrapped in try/catch clauses to avoid crashing if there are bugs in the plugin code. Will emit a node error instead.
  • Matrix Class - BACKWARD COMPATIBILITY WARNING When building a Matrix from a Table DAT, fix the matrix being incorrectly transposed.
  • Privacy - Fixed Text TOP / Field COMPs not working in protected components.
  • Palette - Fixed issue with dragging components from user folders with unicode characters.
  • Widgets - Fixed vertical slider UI and various other widgets breaking when updating to the latest version.
  • Some improvement to camera controls in 3D viewers.
  • Fixed broken outline shader in 3D viewers on macOS which resulted in red and blue checkerboard when geometry selected.
  • Fixed a number of crashes.
    • Loading crash when Time Component inside clone.
    • Crash when attaching input to Sequencer CHOP.
    • MacOS Movie File In and Movie File Out crashes that could occur.
    • Fixed a crash when trying to render some unicode newline characters.
    • Fixed crash on self deleting 'Help DAT' in panel.
    • Fixed crash that could occur on loading an empty file into a Table DAT.
    • Fixed crash with odd copy case in COMP.copy() method.
    • Fixed crash that could occur when entering/exiting Perform Mode.
Backward Compatibility
  • BACKWARD COMPATIBILITY WARNING RealSense - Removed support for the old Windows SDK and its tracking features. RealSense CHOP/RealSense TOP will now only support the cross platform librealsense API.
  • BACKWARD COMPATIBILITY WARNING OpenVR CHOP - Left and Right Controller toggles have been removed, both controllers will always be output in that mode now.
  • BACKWARD COMPATIBILITY WARNING CHOP to TOP - Reworked Fit to Square layout. Auto-calculated image dimensions may no longer be the same as in previous versions.
  • BACKWARD COMPATIBILITY - WebclientDAT_Class.request data keyword will no longer implicitly add to query parameter list for non-postfield HTTP operations (eg. GET). For adding query parameters instead use the new 'pars' keyword.
  • BACKWARD COMPATIBILITY WARNING WebSocket DAT - Removed onConnectionReady callback.
  • BACKWARD COMPATIBILITY WARNING Matrix Class - When building a Matrix from a Table DAT, fix the matrix being incorrectly transposed.
Known Issues
  • Font Size on Windows and Font Type on macOS are not the standard defaults in DAT viewers, Textport, parameter dialogs and other parts of the UI. Using stand-ins for now while waiting for a 3rd party library fix.