Release Notes/Experimental

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.45520 - Jan 06, 2021[edit]

New Features[edit]

New Python[edit]

  • Matrix Class - Added getInverse() and getTranspose() methods.
  • Par Class.lastScriptChange - Returns information on how this parameter was last modified by a script.
  • TDFunctions and TDJSON now work with normal Python import statements.

New Palette[edit]

Bugs Fixes and Improvements[edit]

  • Camera COMP - Fixed multiple issues with changing the camera position by navigating inside the node viewer or geometry pane with the regular mouse and space mouse.
  • List COMP - Improved highlight color of selected text.
  • Parameter COMP - 'Separators' now works with/without Page Names.
  • Replicator COMP - Fixed handling of name conflicts between Replicator COMPs; name conflicts will cause an error instead of the COMPs stepping one each other.
  • Depth TOP - Now gives correct results when outputting camera space depth for orthographic cameras.
  • Point File In TOP - Added support for loading XYZ files with semi-colon or pipe delimiters.
  • Movie File In TOP - Fixed last frame not playing correctly when using hardware decode.
  • Screen Grab TOP - BACKWARDS COMPATIBILTY WARNING Capture area is now scaled to fit the output resolution rather than cropped when using GPU to GPU capture. Allows capture of windows that are larger than 1280x1280 with a Non-Commercial license.
  • SSAO TOP - Now works correctly with orthographic cameras.
  • DMX Out CHOP - Fixed usage of netaddress column in mapping table with sACN.
  • Kinect Azure CHOP - Fixed a bug outputting absolute bone rotations.
  • OSC In CHOP - Allow manual deletion of channels (fixes TDAbleton value swapping issue) and fixed crash when removing channel from uncooked OSC In CHOP.
  • RealSense CHOP - BACKWARDS COMPATIBILTY WARNING Changed 'Image Positions' to 'World Positions' and have it return x, y, z channels converted from image coordinates to world using the camera intrinsics'.
  • Slope CHOP - Fixed calculating per-sample slope when there is only one sample.
  • JSON DAT - Fixed unicode bug with format output.
  • Parameter DAT - Now shows empty pages if 'Parameter Scope' set to '*'.
  • Parameter Execute DAT - Fixed crash when evaluating a bad expression.
  • Parameter Execute DAT - Added onParTuplesChanged() callback.
  • SocketIO DAT - Fixed crash when deleting operator.
  • SocketIO DAT - Fixed failed TLS handshake when connecting to certain secure servers (updated to socketio v2.0 on MISCSDK).
  • Web Server DAT - Fixed crash when receiving WebSocket frames larger than 1024 bytes.
  • Line MAT - Fixed 'Draw Points' when used with deform attributes.
  • Unicode - Unicode labels for Custom Parameters and Parameter Pages now work correctly. Names (parameter tokens) still need to be english-alphanumeric.
  • Unity home option for single sample CHOPs in RMB menu (shortcut key 'f') will set the channel heights to minimum height for readable text used in names and values.
  • Parameter popup info now includes information about when it was last set by a script.
  • Tweaked ctrl-arrow behavior when moving around text to be more Python aware.
  • Fixed issue where TD would only show a black screen when Antialiasing was forced on in the Nvidia Control Panel.
  • Fixed crash when PYTHONPATH set to alternative python installation in some cases, and any existing PYTHONPATH now moved to end of sys.paths to avoid 3rd party startup issues.
  • New OP Snippets for Script TOP, Spectrum TOP, Engine COMP
  • C++ SDK - Don't restrict menu names, as they are unrestricted in python custom parameters.
  • Added missing parameter types to C++ SDK: appendOP, appendCOMP, appendMAT, appendPanelCOMP, appendHeader, appendMomentary, appendWH.
  • Page.appendObject(...) to replace Page.appendOBJ(...) - See BACKWARDS COMPATIBILTY WARNING below
  • Fixed some odd behavior with drag drop.
  • Fixed bug that prevented dragging geometry in orthographic views (top, right, front, etc)
  • Fixed problems using the 's' and 'SPACE' shortcuts to temporarily switch between view and transform modes in the geometry viewer pane.
  • Reimplemented quirky legacy drag inherit behavior. (Allows children to be draggable when parent is set to legacy mode, even if child is set to block dragging.) This change had introduced issues for older project as of build 2020.44350.

Backward Compatibility[edit]

  • BACKWARD COMPATIBILITY WARNING- Par.style now returns 'Object' instead of 'OBJ' in such cases, though Page.appendOBJ is still functional.
  • BACKWARD COMPATIBILITY WARNING - RealSense CHOP - Changed 'Image Positions' to 'World Positions' and have it return x, y, z channels converted from image coordinates to world using the camera intrinsics.
  • BACKWARD COMPATIBILTY WARNING - Screen Grab TOP - Capture area is now scaled to fit the output resolution rather than cropped when using GPU to GPU capture. Allows capture of windows that are larger than 1280x1280 with a Non-Commercial license.


Build 2020.44350 - Dec 03, 2020[edit]

New Features[edit]

  • 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.
    • Point Transform TOP
  • 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[edit]

  • 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 Class.help - 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: [p.name 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[edit]

  • 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[edit]

  • 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[edit]

  • 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[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.


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.

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

Creates a new component for every line in a table. Unlike Clone, it automatically creates copies of a master component.

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.

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.

A parameter in most CHOPs that restricts which channels of that CHOP will be affected. Normally all channels of a CHOP are affected by the operator.

Unicode is fully supported in TouchDesigner. Unicode can be typed into parameters, DATs, Python scripts etc. Unicode encoded text files can be loaded into DATs. File paths can include any unicode character that is legal for a file path.

A custom interactive control panel built within TouchDesigner. Panels are created using Panel Components whose look is created entirely with TOPs.

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.

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 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.

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.

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

The OpenGL code that creates a rendered image from polygons and textures. Shaders can be made of up to three parts: Vertex Shader, Geometry Shader and/or Pixel Shader, which are either embedded inside Materials, or placed in Text DATs and referenced to a GLSL Material.

A sequence of vertices form a Polygon in a SOP. Each vertex is an integer index into the Point List, and each Point holds an XYZ position and attributes like Normals and Texture Coordinates.

A CHOP outputs one or more channels, where a channel is simply a sequence of numbers, representing motion, audio, etc. Channels are passed between CHOPs in TouchDesigner networks. See also Export.

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 contains its own Network inside. There are twelve 3D Object Component and eight 2D Panel Component types. See also Network Path.

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

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

Any floating window that is not a Pane or Viewer.

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.

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.

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.