Release Notes/2020.40000

From TouchDesigner Documentation
Jump to: navigation, search

Note that experimental builds include new features still in development and ideas being tested, features are subject to change. For the stability and reliability required for performances and project deliveries, we recommend using the production ready Official Builds.

Check Known Issues and Backward Compatibility warnings below.

Download Here


Build 2020.42700 - Oct 21, 2020[edit]

New Features[edit]

  • Lens Distort TOP - Implemented inverse lens distortion shader (uses an approximation formula that doesn't include k3). Includes a menu to choose whether camera matrix values are normalized or in pixels allowing for easier workflow with openCV.
  • NDI In TOP - Added support for 'Hardware Decode' for stream codecs that support it (NDI|hx).
  • RealSense TOP - Added support for D455 and SR305 sensors.
  • Point Transform TOP - New TOP that treats the RGB channels as XYZ positions or vectors and performs a 3D transformations on those positions. Analogous to the Transform XYZ CHOP.
  • Video Stream Out TOP - Added support for SRT output and support for sending as H265 over SRT.
  • Video Stream Out TOP / Video Stream In TOP - Added support to Video Stream Out TOP for sending CHOP and DAT data along SRT connections as per-frame metadata. This data can be recevied from the Video Stream In TOP using an Info CHOP and Info DAT.
  • Phaser CHOP - New CHOP for phase-staggered animations. Thank you David Braun. Watch David's 2019 Montreal TouchDesigner Summit talk presenting some techniques possible with the Phaser CHOP.
  • TOP to CHOP - Added 'Output as Single Channel Set' parameter to output a single channel set rather than outputting separate channels for each row when using 'Crop' modes Rows and Column or Full Image. This is much faster than before.
  • Sprinkle SOP - New SOP that sprinkles points on a SOP surface.
  • Render Pick DAT - New pick() method to perform a pick using python.
  • Web Server DAT - Added 'Certificate Password' parameter to fix usage of password-protected certificates in secure servers.
  • Web Server DAT - Added Info DAT reporting to fetch any start-up errors.
  • ZED - Added support for ZED 2 Cameras, upgrade to SDK 3.2.2.

New Python[edit]

  • COMP Class - New methods saveByteArray() and loadByteArray() for saving and loading .tox files directly to and from memory.
  • COMP Class.loadByteArray() also accepts 'bytes' type objects.
  • OP Class.builtinPars - A list of all built-in parameters.
  • Par Class - Momentary parameters now use their default state to operate either as normally On or normally Off. Component Editor adjusted accordingly.
  • SysInfo Class - New members MIDIInputs and MIDIOutputs which return a list of all MIDI input/output device names.
  • Debug logging features, see Palette:debugControl.

New Palette[edit]

Bugs Fixes and Improvements[edit]

  • Analyze TOP - Fixed a bug that prevented the inspected pixel values in the viewer from updating properly.
  • CPlusPlus TOP - Fix bug that caused aspect ratio being forced to 1:1 in some cases.
  • RealSense TOP - Fixed bug where only using the Depth image would result in the sensor failing to start up.
  • Text TOP / DATs - Fixed wordwrap not working with scalable font rendering.
  • Text TOP / Text SOP - fontSupportsChar() is now deprecated and always returns 'True.
  • Text TOP - Better wordwrap behavior for R->L reading direction text on macOS.
  • Video Stream In TOP - Fixed some crashes that can occur when connecting.
  • Bind CHOP - Fixed bug where setting values from script were sometimes ignored.
  • Bind CHOP - Fixed evaluation of channels when source of change is a parameter.
  • DMX In CHOP - Maximum rate increased from 40 to 44Hz.
  • DMX In CHOP - Split 'packet_rate' Info CHOP channel into 'packet_rate' (matching packets) and 'packet_rate_all' (any packet).
  • DMX Out CHOP - More accurate rate reporting.
  • Math CHOP - Added 'Interp Pars Per Sample' which removes blocky artifacting while adjusting math parameters on higher frequency input (example audio).
  • OSC Out CHOP - Added 'Send Rate' to include sending of rate information.
  • Stype CHOP - Changed default values for 'Aspect' and 'FOV' channels.
  • Examine DAT - Fixed recursion when examining certain types of objects (eg DependDict).
  • WebSocket DAT - Added callback function onConnectionReady() called after onConnection, after connection has been upgraded.
  • Parameter COMP - Fixed issue where pressing + expansion button caused bad overlapping layout.
  • USD COMP - USD working again on Windows after updating the SDK.
  • Window COMP - Fixed Perform Mode using wrong resolution for TOPs.
  • Par.section used in expressions now refreshes properly.
  • Par.enableExpr now propagated correctly through clones.
  • ZED - Now re-enabled.
  • TOP point viewer now properly retains its camera position when adaptive homing is disabled.
  • Improvments for restoring geometry viewer camera positions in some cases that use adaptive homing.
  • Adding/removing Tags using Parameter Dialog now undoable.
  • When copying or cloning protected nodes, include contents as well. (Though they are still protected)
  • Fixed User Shortcuts override files that were not working.
  • New Operator Snippets examples for Wrnch AI CHOP, Phaser CHOP, Sprinkle SOP, JSON DAT, and more.

Backward Compatibility[edit]

  • BACKWARD COMPATIBILITY WARNING - opinfo(), opinfop() Tscript expresions and opinfo command is no longer supported.
  • BACKWARD COMPATIBILITY WARNING - Empty menu parmeters now eval as ' ' instead of '0' and return a menuIndex of None instead of 0.

Known Issues[edit]

  • 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.
  • USD COMP not working on macOS.


Build 2020.41040 - Aug 21, 2020[edit]

New Features[edit]

New Python[edit]

Bug Fixes and Improvements[edit]

  • AJA - Upgrade to AJA SDK 15.5.4.1.
  • RealSense TOP - On macOS D-series and other new cameras are now enabled. Stability varies on different systems, please give feedback in the forum.
  • RealSense TOP - Fixes and improvements
    • Fixed Point Cloud UV map being upside down.
    • Multi-thread frame processing for better performance.
    • Add last_processing_time for Info CHOP.
    • Filters are now more controllable per-image type.
    • Better behavior when using the filters.
  • Screen Grab TOP - Application windows can now be selected from the Sources menu (Windows OS only). Windows are cropped from the full desktop capture, so they must be unobstructed and not minimized.
  • Text TOP - Fixed 0 alpha when using Scalable rendering.
  • Video Stream In TOP - Fixed memory leak that was occuring.
  • Web Render TOP - Updated to cef 84.0.4147.105, fixes Youtube streams not updating if cursor is not over them and moving.
  • wrnchAI CHOP - Fixed crash when deleting this node with non-Pro licenses.
  • CPlusPlus SOP - Added volume/intersect functions.
  • Group SOP - 'Bounding Object' calculation time halved in typical cases, possibly more when using meshes.
  • Bullet Solver COMP - Added impact flag to collisions structure of onCollision callback.
  • Optimized Python Expressions - Added support for Par.evalNorm()
  • JSON DAT - Added 'Hold Last Non-Empty Results' parameter.
  • Parameter DAT - Don't recook when source parameter changes but just interested in path.
  • Text DAT - Fixed pause that occurs when you first put down a Text DAT.
  • Export Movie Dialog now has options for 'Audio Codec' and 'Audio Bitrate'.
  • Fixed the long-cooking after you open OP Snippets once.
  • Fixed enableExpr not refreshing on certain dependencies.

Known Issues[edit]

  • 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.
  • USD COMP not working.
  • ZED camera operators disabled, awaiting updates to CUDA.


Build 2020.40290 - Jul 29, 2020[edit]

New Features[edit]

Major Feature Additions

  • 3D Viewer Camera Controls overhauled for pane Geometry Viewers and Object COMP and SOP node viewers.
    • 4 Camera Navigation Modes selectable from the right-click menu in the viewer.
    • For the first 3 modes the camera dolly now moves towards the cursor position rather then the center of the screen. Each of these modes differ in the the way they set a pivot to tumble around.
    • The last mode, Camera Mode, moves and pivots from the perspective of the camera and is more similar to the movement possible using a real-world camera (ie pan, tilt, dolly, track, crane).
    • Scroll wheel now also works for dolly in addition to the previous MMB-drag.
    • New outline shader for selected geometry, no longer colors the entire object solid green or yellow.
    • 3D Spacemouse supported in all 3D viewers https://www.3dconnexion.com/ (Windows only, macOS work in progress)
  • Drag-and-Drop overhaul - To create custom drag/drop systems for your controlpanels and UIs.
    • Use Python Drag/Drop Callbacks with all Panel Components for 'When Dragging This' or 'On Dropping Into' events.
    • When Dragging This callbacks include onDragStartGetItems(comp)list of item dicts and onDragEnd(comp, accepted, dropResults)
    • On Dropping Into callbacks include onHoverStartGetAccept(comp, dragItems)True if drag items are acceptable, onHoverEnd(comp, dragItems), and onDropGetResults(comp, dragItems)Dict of results
    • For usage details and examples see this new documentation Experimental:Drag-and-Drop

New Operators

  • wrnchAI CHOP - New CHOP which supports wrnchAI skeleton tracking for any camera or video stream. (Windows only and required Nvidia GPU)
  • FreeD CHOP - New CHOP that creates channels from a stream of FreeD camera tracking data.
  • JSON DAT - New DAT for parsing JSON and filtering outputs, which eliminates having to code scripts to parse and manipulate JSON, and keeps the data flow procedural.

Other Noteworthy New Features

New Python[edit]

New Palette[edit]

  • Tools > camera is a new component like Palette:arcBallCamera but using the new camera control scheme introduced in TouchDesigner's built-in 3D geometry viewers.

Bug Fixes and Improvements[edit]

  • Text TOP, Text SOP - Fonts are now enumerated properly and return more fonts, giving access to the multiple font weights/styles embedded into one font file.
  • Circle SOP - Normals for the ZX orientation now point along the positive Y axis for consistency with other orientations and SOPs. See BACKWARD COMPATIBILITY notes below.
  • List COMP - Fixed crash ending a drag action with the List COMP.
  • Execute DAT - Fixed crashes when Execute DATs cause self deletion.
  • Line MAT - Fixed some viewport picking not working well with Line MAT rendered geometry.
  • Each textport now uses its own local variables, which are also separate from parameter expression space.
  • Added 'Node Language' column in List mode to more easily weed out Tscript nodes.
  • Fixed dragging and dropping of CHOP channels onto parameters that were already exported onto.
  • Fixed erratic layout dealing with uninitialized scroll bar areas.
  • Updated Operator Snippets examples (Version 900 Join CHOP and JSON DAT)

Backward Compatibility[edit]

  • BACKWARD COMPATIBILITY WARNING Circle SOP - Normals for the ZX orientation now point along the positive Y axis for consistency with other orientations and SOPs.

Known Issues[edit]

  • 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.
  • A short pause may occur when adding the first DAT to your project, this is font rendering initialization and we are working on a solution.
  • USD COMP not working.
  • ZED camera operators disabled, awaiting updates to CUDA.

An Operator Family that creates, composites and modifies images, and reads/writes images and movies to/from files and the network. TOPs run on the graphics card's GPU.

An Operator Family which operate on Channels (a series of numbers) which are used for animation, audio, mathematics, simulation, logic, UI construction, and many other applications.

An Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a command Script, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.

TouchDesigner Component file, the file type used to save a Component from TouchDesigner.

An Operator Family that contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Network Path.

A built-in panel in TouchDesigner that contains a library of components and media that can be dragged-dropped into a TouchDesigner network.

Any floating window that is not a Pane or Viewer.

OP Snippets is a set of numerous examples of TouchDesigner operators, which you access via the Help menu. These can be copied/pasted into your projects.

A dialog box in which commands and scripts can entered manually. Script errors and python print() messages are also output to the textport.

Unlike a Wire that connects nodes in the same Operator Family, a Link is the dashed lines between nodes that represent other data flowing between nodes, like CHOP Exports, node paths in parameters, and expressions in parameters referencing CHOP channels, DAT tables and other nodes.

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

The component types that are used to render 3D scenes: Geometry Component contain the 3D shapes to render, plus Camera, Light, Ambient Light, Null, Bone, Handle and other component types.

An Operator Family that contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Network Path.

The Graphics Processing Unit. This is the high-speed, many-core processor of the graphics card/chip that takes geometry, images and data from the CPU and creates images and processed data.

Operators that normally have 0 inputs, like a Noise CHOP, are called generators. See Filter.

An Operator Family that associates a shader with a SOP or Geometry Object for rendering textured and lit objects.

TouchDesigner's original built-in Command scripting language prior to Python.