Close

2019.33020

Highlights include support for Kinect Azure, RealSense T265, Ouster Lidar, Pangolin Beyond Laser, NotchLC codec playback, NDI 4.0 with 16-bit, and lossless H264/H265 Nvidia GPU hardware encoding.
Release Notes 

Oct 18, 2019

New Features

  • Kinect Azure TOP / Kinect Azure Select TOP / Kinect Azure CHOP - The new Microsoft Kinect Azure is now supported in TouchDesigner via these 3 new operators. Please note that Microsoft is updating this new SDK at a fast pace. We will support future changes and additions as the SDK matures and improves. (Windows 10 only, see requirements)

    • Kinect Azure TOP - This is the main operator used to configure all the settings for the Kinect Azure, as well as get data from one of its cameras (Depth, Color, IR, Player Index, or Point Cloud). Only one Kinect Azure TOP can be connected to each Kinect Azure device.

    • Kinect Azure Select TOP - This TOP references a Kinect Azure device through the Kinect Azure TOP (above) and retrieves additional images from the other camera streams.

    • Kinect Azure CHOP - This CHOP references a Kinect Azure device through the Kinect Azure TOP (above) and retrieves body tracking information, including bone positions and rotations, and IMU sensor data.

  • RealSense TOP - Updated to SDK 2.29.0 and the following additions

    • Added support for T265 cameras. NOTE: The driver is not stable yet when changing parameters, work in progress.

    • Added support for setting arbitrary options for the devices via a CHOP.

      • Complete list of RealSense Options

      • Names will be all lowercase, and omit the RS2_OPTION_ from the start. E.g RS2_OPTION_ENABLE_AUTO_EXPOSURE can be set with a channel named 'enable_auto_exposure'.

  • Pangolin CHOP - New CHOP interfaces with Pangolin's Beyond laser show control software.

    • When Beyond is running, the Pangolin CHOP will send laser image frames to it.

    • Image frames are created from either a SOP input or CHOP input.

    • TouchDesigner Non-commercial will only work with the demo version of Beyond. TouchDesigner Commercial or Pro is required to interface with licensed versions of Beyond.

  • Ouster TOP - New operator for real-time point cloud capture from Ouster lidar sensors.

    • Direct support for the OS1 Ouster product line.

    • Additional sensor data like IMU, packet counts, matrices via Info CHOP and Info DAT.

    • Visual Panoramic and Scan Order capture formats selectable in 'Image Layout' parameter.

    • Flexible X, Y, Z, Range, Intensity and Noise plane mapping to RGBA GPU Image Channels

    • Time Sync Mode for supporting multiple devices in the same area (Internal OSC, Sync Pulse In, PTP 1588)

    • Auto startup features

    • Window Rejection mode

    • Positions and transforms are now given in TouchDesigner space (Y is up) rather than sensor space (Z is up).

  • Ouster Select TOP - New TOP to select additional fields from the Ouster scanner.

  • Point File In TOP - Added support for converting shapes into point clouds when loading .obj files.

  • Point File Select TOP - New TOP to select additional channels from a Point File In TOP

  • Movie File In TOP - Added support for NotchLC codec.

  • Movie File In TOP / Point File In TOP - Added support to store and display header data in an attached Info DAT (currently supported in FITS and PLY files).

  • Movie File Out TOP - Major improvements for hardware encoding, audio channel support, and custom header data.

    • Added support for Lossless H264 and H265 hardware encoding on Nvidia GPUs.

    • Can now record more than 8 audio channels on supported codecs.

    • Custom header data can now be written to files by attaching a Table DAT (currently only supports EXR sequences).

  • Video Device In TOP - Added support for GPU Demosaicing for Ximea cameras.

  • Video Device Out TOP - AJA devices can now sync to SDI inputs for their reference inputs.

  • NDI In TOP / NDI Out TOP - Upgrade to NDI 4.0 and added support for transmitting 16-bit data.

  • Custom Operators - Added support for 16-bit fixed and 16-bit float data to and from TOPs.

  • TOPs - Now support saving .tiff files with 16-bit image depth using RMB "Save Image" and python TOP.save() method if the 'Pixel Format' is set to 16-bit float.

  • GLSL MAT - Added TD AttenuateLight(int index, float lightDist); function.

  • Timer CHOP - Added optional third input for 'Input Index' to drive current position of the timer.

  • LTC In CHOP - Added total_seconds channel and toggle parameters for frames, seconds, min channels.

  • Particle SOP - Added 'Birth' pulse parameter to birth particles accurately. Works in conjunction with a new 'Birth Count' parameter which determines how many particles are created each time 'Spawn' is pulsed.

  • Geometry COMP - Now can calculate bounds when instancing from TOPs.

  • Geometry COMP / GLSL MAT - Added support for custom instancing attributes. For Geometry COMP this is found on the Instance 3 page.

  • SocketIO DAT - Fixed issues with connecting to non-secure servers (ie. http).

  • Web Server DAT - Additions and improvements.

    • Added support for HTTPS

    • Added onWebSocketClose callback.

New Palette

  • Added 'PointClouds' folder and pointGenerator, pointRender, pointTransform, and pointWeight components.

  • Widgets updated to tdui.0.30.10.twwk.1.0.2

    • Added new font auto-scaling based on a ratio parameter instead of a locked font size.

    • Font controls now have a 'Font Side Mode' and 'Font Ratio' parameter. To see it work activate it and scale up the size of the widget.

New Python

  • TDJSON - All functions now work with built-in parameters.

  • TOP Class - New cudaMemory() method which allows the TOP's memory to be copied to CUDA memory on the GPU, for use with CUDA libraries in Python.

  • OP.pars(pattern) now supports legacy parameter names.

  • Point Class.normP returns the normalized point within SOP bounding box. This is equivalent to $BBX $BBY $BBZ in tscript. Previously this was limited to a few specific SOP parameters.

  • SOP Class maximized .min .max .size members

  • Custom Operators - OP_NodeInfo class now has a 'pluginPath' member.

  • Par.enableExpr to get or set an expression that controls the enable state for this parameter.

Bug Fixes and Improvements

  • NDI - Upgrade to NDI 4.0.

  • Notch TOP - Upgrade to SDK v0.9.22

  • RealSense - Upgrade to RealSense SDK 2.29.0

  • ZED - Upgrade to SDK 2.8.3

  • CUDA - Moved back to CUDA 10.0 to match support with Kinect Azure and ZED requirements.

  • Point File In TOP - Improvements

    • Added column headers to the Info DAT and unavailable channels no longer appear in the assignment column.

    • Moved the channel selection parameters to the first page and the playback parameters to the second page.

    • Changed the channel selection parameters to drop-down menus and added options to fill a channel with ones or zeros.

    • Changed references of "fields" to "channels".

    • Resolution parameter boxes are disabled unless 'Custom Resolution' is selected.

  • Movie File In TOP - Now correctly handles orientation metadata for .jpeg and .tiff images and .mov movies.

  • Movie File Out TOP - 'Add Frame' pulse now works for 'Image' output types.

  • Video Device In TOP - Fixed slow performance when trying to connect to a camera.

  • Video Device In TOP - Fixed DirectShow device selection being off by one.

  • ZED TOP - Renabled in this release branch after upgrading to 2.8.3 SDK.

  • Notch TOP - Fixed bug with GPU memory usage in the pop-up info. It was not including the GPU memory usage of the block itself.

  • GLSL MAT - Added more Matrix parameters that take single matrix input.

  • Line MAT - Now has more accurate picking values when render picking.

  • Engine COMP - Now runs TouchEngine from the in-use version of TouchDesigner. This fixes the previous situation in which the last-installed version was always used. Users can still override this behaviour by placing a link to a particular installation named "TouchEngine" next to the .tox they are loading.

  • Window COMP - Will now sync the resolution and view mode (image or points) when connected to a TOP.

  • Fixed issue with TOP viewers opening at 400x300 all the time.

  • Geometry COMP - Fixed crash when assigning a TOP to the Translate OP parameter.

  • Geometry COMP - Relax restriction on different Instance OPs having the same length when using 'Instance Count Mode = Manual'. Now the OPs just need to have at least enough entries for all instances, but they can have more as well.

  • FBX COMP - Added File Version to info pop-up and fbx_file_version Info CHOP channels.

  • Bullet Solver COMP - Rename onFrameStart, onFrameEnd, and onInit callback methods to whileRunningPreSimulate, whileRunningPostSimulate, and onInitialize respectively

  • Geometry Viewer -Improvements

    • Geometry Viewer homes properly when first opened.

    • Re-worked the scroll acceleration so it's based on the distance to pivot rather than the last home values, this fixes issues when the scroll speed would get very slow.

    • Geometry viewer now saves the last home bounds to preserve the view when saving.

  • Text SOP - Fixed a bug with uninitialized vertex positions.

  • Object CHOP / Transform CHOP - Some cleanup for better behavior of new features and loading old files.

  • TOP to CHOP - Fixed case where the CHOP would sometimes be empty on first cook.

  • Timer CHOP - Now include timer_pulse even if segment is at least 1 frame long.

  • CPlusPlus DAT - Fixed input op node string getting the copy of the cplusplus node string.

  • Execute DAT - onCreate callback now called earlier in the load process.

  • OSC In DAT - Blank lines no longer logged when non-scoped bundles are received. See below BACKWARDS COMPATIBILITY

  • Web Client DAT - Improvements

    • Changed 'Asynchronous' parameter token name from async to asyncreq, since async is reserved by Python.

    • Added Info CHOP and Info DAT values for additional information and debugging.

    • Fixed query parameters in a URL breaking OAuth1.

  • Web Server DAT - Improvements

    • Fixed returning binary value in 'data' in the onHTTPResponse callback (eg. for returning images).

    • Fixed webSocketSendBinary so that it properly handles bytes and bytearray input.

  • Error DAT - Improvements

    • Components now show errors from themselves as well as their their children.

    • "source" is now the first column of the table.

    • Removed the "Log" page and moved the parameters to the "Error" page.

  • Geometry Instancing with TOPs - Fixed a crash that could occur when using TOPs for instancing.

  • Better file type support - dragging PTS, XYZ and PLY files into TouchDesigner will automatically create a Point File In TOP and FITS has been added to the dragdrop list of extensions for the Movie File In TOP.

  • Added total number of pixels to TOP popup info dialog.

  • Fixed hanging when using Panel.width or Panel.height in some cases.

  • Panel alignment using 'Max per Line' now works with fill and stretch weights.

  • Fixed inside panel value not activating when overlapped by a sibling.

  • Custom header parameters now display parameter label, not parameter value.

  • Cloned components now preserve custom header parameter settings.

  • Fixed crash when pulsing clone on component with custom parameters.

  • Fixed startup errors and crash on .projects using external .tox references which triggered recompiling of extensions.

  • Binding now using optimized expressions when possible.

  • Removed shortcut for toggling all 'Viewers Always Active'. You can still access the setting in the Network Editors RMB-menu.

  • Reverted Buffer Select TOP back to Render Select TOP. Hey, it's experimental right?

BACKWARD COMPATIBILITY

BACKWARDS COMPATIBILITY - Renamed vram_usage in Notch TOP's Info CHOP to block_gpu_memory_used.

BACKWARD COMPATIBILITY - ParMode, PaneType, and JustifyType are now Python style enums. They will work as usual except when accessing str(enumObject). To get the old result of str(enumObject), use enumObject.name.

BACKWARD COMPATIBILITY - OSC In DAT - Blank lines no longer logged when non-scoped bundles are received.