2021 Official Update
Release Notes
Check out our 2021 Official Release Annoucement!
Windows 10 users should update Windows as version 1803 from 2018 and earlier is not supported.
Feb 10, 2021
New Features - Release Highlights
New Operators
-
Lens Distort TOP - New TOP that distorts the input image to match the lens intrinsics provided. Applying this to a Render in TouchDesigner allows renders to align properly with live feeds from cameras.
-
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.
-
Added parameters to scale and position the distorted image within the frame.
-
-
Phaser CHOP - New CHOP for phase-staggered animations. Watch David's 2019 Montreal TouchDesigner Summit talk presenting some techniques possible with the Phaser CHOP.
-
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.
-
Spectrum TOP - New TOP that performs OpenCV's Discrete Fourier Transform (DFT) operation via CUDA (Windows only, requires Nvidia GPU).
-
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.
Streaming & Video
-
AJA 8k support
-
Movie File In TOP - Hardware decoding of AV1 codec videos is now supported on Nvidia Ampere-class GPUs.
-
Audio Stream In CHOP - Added an Audio Sync Offset parameter to tweak audio streaming sync with a Video Stream In TOP.
-
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 received from the Video Stream In TOP using an Info CHOP and Info DAT.
-
Movie File Out TOP - NotchLC encoding now supported. Windows only for now, macOS support coming later this year.
Skeleton Tracking
-
wrnchAI CHOP - New CHOP which supports wrnchAI skeleton tracking for any camera or video stream input. (Windows only and requires Nvidia GPU)
-
RealSense CHOP - The RealSense CHOP has been overhauled to use the Cubemos skeleton tracking SDK. This works with the current librealsense API for RealSense to offer skeleton tracking to all the latest RealSense cameras. A separate Cubemos license is required, you can get a free 30-day trial to try it out here.
Device Support
-
OpenVR CHOP - Overhauled to bring more inline with Steam configurations and add support for Valve Index.
-
Added default bindings for Valve Index controllers.
-
Custom action manifests can now be selected to create CHOP channels with values filled in from arbitrary StreamVR controller bindings.
-
Added support for outputting Hand Skeleton Channels.
-
Added support for Finger Curl channels in skeleton mode.
-
-
-
RealSense TOP - On macOS D-series and other new cameras are now enabled. Stability and connection varies on different systems, please give feedback in the forum.
-
NOTE - The old Windows SDK and its tracking features have been removed. RealSense CHOP/RealSense TOP will now only support the current cross platform librealsense API. See BACKWARDS COMPATIBILITY WARNING section below for details. For access to the old Windows SDK use builds from 2020.20000
-
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.
-
Video Device In TOP Flir Cameras support - Updated Flir Spinnaker SDK (previously called Point Grey cameras).
-
Added support for image bit depth for Flir cameras.
-
Added support for controlling camera options and manual capture triggering for Flir cameras.
-
Added ability to load presets for Flir cameras.
-
OpenCV and Extending TouchDesigner
-
-
Includes CUDA and the opencv_contrib modules (except for a few things that can't be included due to licensing). The extra modules give you access to functionality not packaged with the default OpenCV distribution. Examples of modules include: Aruco Marker Detection, 3D Object Recognition and Pose Estimation, Custom Calibration Patterns, Structured Light as well as various CUDA accelerated libraries. See full list OpenCV Modules.
-
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.
-
Custom Operators - Parameter labels, page names, and string defaults should now properly support UTF-8.
-
Script TOP - Additions for loading data.
-
Added loadByteArray() to load compressed data stored in bytearrays.
-
Allow source to be 3 channels for copyNumpyArray().
-
Added copyCUDAMemory, allowing data to be loaded from CUDA.
-
-
Script OPs custom parameters can now be edited using the same Component Editor Dialog as components by dragging the Script OP onto the dialog’s ‘Path’ or right-clicking on the OP and selecting ‘Customize Operator…’.
Web Connectivity
-
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'.
-
Web Server DAT - Added 'Certificate Password' parameter to fix usage of password-protected certificates in secure servers.
-
WebSocket DAT - Added callback function onConnectionReady() called after onConnection, after connection has been upgraded.
Text Rendering
3D Viewer Camera Controls
-
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 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
-
Drag-and-Drop overhaul - To create custom drag/drop systems for your control panels 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, info) → list of items to drag and onDragEnd(comp, info)
-
On Dropping Into callbacks include onHoverStartGetAccept(comp, info) → True if drag items are acceptable, onHoverEnd(comp, info), and onDropGetResults(comp, info) → Dict of results
-
For usage details and examples see this new documentation Drag-and-Drop
-
BACKWARDS COMPATIBILITY WARNING. This system has backwards compatibility issues with versions of prior to 2020.46450. Migration Guide here.
-
Floating Licenses
-
Floating Cloud Licenses are a new option for licensing. These floating licenses allows any internet connected computer to access a pool of floating licenses on a single account.
-
These licenses are great for:
-
Distributed Teams and Remote Working - Local computers can be licensed from a global pool of licenses available to any of your team, world-wide. A pool of numerous licenses on one account can be shared between global locations such as offices, studios, or installations, delivering the license to the team member on demand.
-
Lab Computers at Schools and Universities - Sometimes lab computers are wiped and/or do not have admin privileges to install a key. Using floating cloud licenses allows the system administrator to install the credentials onto lab computers as part of their disk image. This setup will automatically use licenses when TouchDesigner is in use and return them when TouchDesigner closes.
-
Running TouchDesigner on Cloud Platforms - A great usage case for floating cloud licenses is for running TouchDesigner and TouchPlayer on servers in the cloud. Often these virtual cloud servers do not have consistent system codes, or you may be spinning up instances dynamically and need a method to auto-key them. Dongle-based solutions usually don't work since it's rare that access to the hardware is possible for cloud servers.
-
Other Noteworthy New Additions
COMPs
-
Bullet Solver COMP - Added impact flag to collisions structure of onCollision() callback. The flag is True when the collision is at the point of impact.
-
Engine COMP - New features and additions
-
Added new 'Start' and 'Initialize on Start' parameters, renamed 'Power' parameter to 'Play'.
-
Added 'Match Component Rate' and 'FPS' parameters to Tune page to help control the Engine COMP's playback rate.
-
Added 'Unload' pulse parameter.
-
Added callbacks for onInitialize, onStart, and whileRunning.
-
Faster loading when .tox file changed as TouchEngine no longer needs to restart.
-
New Operator Snippets including an example of Engine COMP running audio at 240fps.
-
-
Parameter COMP - Added 'Separators' option when using Pages. 'Separators' will also work with or without Page Names.
TOPs
-
Analyze TOP - Added Minimum/Maximum in RGB/A operations to return the smallest or largest value in the given channels. The existing Minimum and Maximum operations have been renamed Minimum/Maximum Pixel and still return all channels of the pixel with the smallest or largest value.
-
Constant TOP / Ramp TOP / Text TOP / Circle TOP / Rectangle TOP - Generator TOPs can now composite with an input. Added 'Output' page providing all the composite types of the Composite TOP.
-
Rectangle TOP / Circle TOP - Added Justify parameters to align the rectangle/circle horizontally or vertically.
-
Screen Grab TOP - Added Source parameter to select individual displays or the entire desktop (Windows Only).
-
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.
CHOPs
-
DMX In CHOP - Split 'packet_rate' Info CHOP channel into 'packet_rate' (matching packets) and 'packet_rate_all' (any packet).
-
Filter CHOP - Added One Euro filter type, good for filtering noisy signals while maintaining high precision and responsiveness.
-
Math CHOP - Added 'Interp Pars Per Sample' which removes blocky artifacts while adjusting math parameters on higher frequency input like audio.
-
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.
-
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.
SOPs
DATs
-
Parameter Execute DAT - New 'On Values Changed' callback that includes all values that changed during the frame in a single list.
MATs
-
Phong MAT - (And all other MATs) now have expanded blending functionality. There is a new 'Blend Operation' menu to select from Add, Subtract, Reverse Subtract, Minimum, and Maximum operations. In addition there is a separate operation menu just for alpha. Furthermore new options for Constant Color/Constant Alpha are found in the 'Source Color'/'Destination Color' menus which enable 'Blend Constant Color' parameters when selected.
Color Channel Selection Improvements
-
Lookup TOP - Added option to use the largest of the 4 RGBA color channels (RGBA Maximum) as the index of the input image.
-
Normal Map TOP / Blob Track TOP / Edge TOP / Emboss TOP / Luma Blur TOP / Luma Level TOP / Matte TOP // Monochrome TOP / Threshold TOP / Leuze ROD4 CHOP / Nvidia Flow Emitter COMP - Added new Maximum RGB/RGBA color channel selection options.
Look At Improvements
-
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 SOP - Added 'Forward' parameter to determine which axis is pointed towards the Look At object.
-
New Python
-
TDFunctions and TDJSON now work with normal Python import statements.
-
OP Class.builtinPars - A list of all built-in parameters.
-
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.
-
COMP_Class.internalOPs COMP_Class.internalPars - Dictionary of all internal shortcuts defined in the component (see also OP_Class.iop OP_Class.ipar).
-
COMP Class.extensionsReady now dependably recooks in expressions.
-
TOP Class - Added ability to control 'quality' of JPEG saving.
-
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.
-
ScriptCHOP Class.timeSliceDefault - Default time slice value equivalent to the input CHOP's isTimeSlice.
-
CHOP Class.isTimeSlice - allow to be set in scriptCHOP case.
-
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.
-
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.
-
Par Class - Momentary parameters now use their default state to operate either as normally On or normally Off. Component Editor adjusted accordingly.
-
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.
-
Par Class.lastScriptChange - Returns information on how this parameter was last modified by a script.
-
Par Class.style now returns 'Object' instead of 'OBJ' in such cases - See BACKWARD COMPATIBILTY WARNING below.
-
Page Class.appendObject(...) now replaces Page.appendOBJ(...) - See BACKWARD COMPATIBILTY WARNING below.
-
Optimized Expressions - Par.default and Par.menuIndex are now optimized.
-
Optimized Python Expressions - Added support for Par.evalNorm()
-
tdu.Dependency - These objects can now be used in bind expressions.
-
SysInfo Class - New members MIDIInputs and MIDIOutputs which return a list of all MIDI input/output device names.
New Palette
-
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
-
Palette:camera improvements
-
Added FrameLookAt function to camera palette component and shortcut keys for viewing top, left, right, etc
-
Updated navigation modes to match changes to the built-in geometry viewer. 'Cursor' and 'Viewport' behaviours have been split into separate modes and geometry picking is enabled for all camera actions in 'Cursor' mode. Updated to version 0.13
-
Added basic WASD keyboard controls for the first person camera.
-
Palette:pointRender - Default colors are now set to white when only the position input is used. Updated to use the latest camera component from the Palette.
-
TDAbleton updates
-
Ableton console now scrolls infinitely like textport abletonMIDI component
-
Added "split touching notes" feature to separate incoming MIDI notes abletonSong component
-
Added time signature controls to abletonTrack, abletonChain and abletonClipSlot components
-
Added Color and Clip Color controls, see BACKWARD COMPATIBILITY WARNING - clip data channels now include the clip number in their names.
-
Bug Fixes and Improvements
COMPs
-
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 - Improvements and bug fixes.
-
Improved highlight color of selected text.
-
Fixed crash ending a drag action with the List COMP.
-
Fixed left outside border being cut off / borders shifted left.
-
Selected areas now color in inside area, not border edge.
-
Recook and update List COMP output when scripting new selections.
-
Cook operators that reference rolloverRow, etc outside of callback methods.
-
Fixed crash when List COMP deletes its own script DAT during execution.
-
-
Engine COMP - Improvements
-
Fixed crash which could occur after changing the loaded .tox file.
-
Some issues with CHOP inputs and dropping samples fixed.
-
For Engine COMP and TouchEngine, fixed bad UTF-8 strings through DATs, parameter names and values, channel names, and file paths.
-
Fixed an issue which caused some loads to fail when they should succeed.
-
Fixed a potential crash on unload of a component with TOP Ins or Outs.
-
Fixed a number of reported crashes.
-
-
Replicator COMP - Fixed handling of name conflicts between Replicator COMPs; name conflicts will cause an error instead of the COMPs stepping one each other.
TOPs
-
Analyze TOP - Fixed a bug that prevented the inspected pixel values in the viewer from updating properly.
-
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.
-
Layout TOP - Fixed resolution bug and made Optimizations for single texture input and GPU memory usage optimizations.
-
Nvidia Flex TOP - Changed output pixel format to 32-bit float RGB instead of RGBA since velocity only has 3 components.
-
RealSense TOP - Numerous improvements
-
Fixed issue where only using the Depth image would result in the sensor failing to start up.
-
Fixed Point Cloud UV map being upside down.
-
Multi-thread frame processing for better performance.
-
Filters are now more controllable per-image type and better behavior when using the filters in general.
-
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.
-
Video Stream Out TOP - Added control for sending silent audio when no audio output is provided. Some services such as YouTube require audio data always. Other's do not support MP3 so no audio stream should be sent.
-
Web Render TOP - Updated to cef 84.0.4147.105, which fixes Youtube streams not updating if cursor is not over them and moving.
CHOPs
-
Audio Stream Out CHOP - Now works correctly on macOS.
-
OSC In CHOP - Allow manual deletion of channels (fixes TDAbleton value swapping issue) and fixed crash when removing channel from uncooked OSC In CHOP.
-
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.
SOPs
-
Alembic SOP / Import Select SOP - 'Direct To GPU' bug fix, deactivating/reactivating viewer would sometimes clear the imported SOP data.
-
Group SOP - 'Bounding Object' calculation time halved in typical cases, possibly more when using meshes.
-
Circle SOP - Normals for the ZX orientation now point along the positive Y axis for consistency with other orientations and SOPs. See BACKWARD COMPATIBILITY WARNING notes below.
DATs
-
Examine DAT - Fixed recursion when examining certain types of objects (eg DependDict).
-
Execute DAT - Fixed crashes when Execute DATs cause self deletion.
-
OP Find DAT - Fixed recent crash when matching parameters.
-
Parameter DAT - Don't recook when source parameter changes but only interested in path.
-
Parameter Execute DAT - Fixed crash when evaluating a bad expression.
-
WebSocket DAT - Fixed onConnect()/onDisconnect() callbacks being triggered when there is no WebSocket connection.
MATs
-
Line MAT improvements.
-
Fixed some viewport picking not working well with Line MAT rendered geometry.
-
Fixed 'Draw Points' when used with deform attributes.
-
Force face culling to be off to avoid missing parts of lines in scenes where face culling is globally on.
-
OP Snippets
-
Fixed the long standing performance issue where snippets would keep cooking after you open OP Snippets dialog once, even if you closed the window.
-
Many existing Operator Snippets have been updated, in addition there are new Snippets for the following
Other Improvements
-
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.
-
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.
-
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.
-
When copying or cloning protected nodes, include contents as well. (Though they are still protected)
Other Bug Fixes
-
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.
-
Par.section used in expressions now refreshes properly.
-
Par.enableExpr now propagated correctly through clones.
-
TOP point viewer now properly retains its camera position when adaptive homing is disabled.
-
Geometry viewer improvements for restoring camera positions in some cases that use adaptive homing.
-
Optimized Expressions - Added support for n.par['tx'] (the [] part).
-
Fixed enableExpr not refreshing on certain dependencies.
-
Fixed an issue with Cue and Cue Point not always updating.
-
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.
-
Fixed dragging and dropping of CHOP channels onto parameters that were already exported onto.
-
Basic widgets fixed problems with font enumeration and Border Color fix to 2D slider.
-
Auto scrollbars turning off now layout properly first time.
-
Fixed erratic layout dealing with uninitialized scrollbar areas.
-
Fixed ranges when automatic horizontal and vertical scrollbars used.
-
Fixed auto scrollbars in children.
-
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.
-
Fixed the orientation of the Top and Right cameras in all 3D geometry viewers
-
Fixed a number of crashes.
-
Loading crash when Time Component inside clone.
-
Fixed crash when updating 'inside' panel value which trigger cooks that cause the current UI to be deleted.
-
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.
-
SDK and API Updates
-
CUDA - Updated to CUDA 11.2
-
FFmpeg - Updated to FFmpeg 4.3
-
RealSense TOP - Updated to SDK version 2.36.0
-
Scalable Display TOP - Upgraded to Scalable Display SDK 7.0
-
AJA - Updated to AJA SDK 15.5.4.1
-
Web Render TOP] - Updated to cef 84.0.4147.105
-
Oculus Rift - Updated SDK to v1.55.0
-
OpenCV - Updated to OpenCV 4.5.1
-
ZED - Updated to SDK version 3.2.2
Backward Compatibility
-
BACKWARD COMPATIBILITY 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 - 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 COMPATIBILITY - 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.
-
BACKWARD COMPATIBILITY CHOP to TOP - Reworked Fit to Square layout. Auto-calculated image dimensions may no longer be the same as in previous versions.
-
BACKWARD COMPATIBILITY OpenVR CHOP - Left and Right Controller toggles have been removed, both controllers will always be output in that mode now.
-
BACKWARD COMPATIBILITY Circle SOP - Normals for the ZX orientation now point along the positive Y axis for consistency with other orientations and SOPs.
-
BACKWARD COMPATIBILITY Matrix Class - When building a Matrix from a Table DAT, fix the matrix being incorrectly transposed.
-
BACKWARD COMPATIBILITY- Par_Class.style now returns 'Object' instead of 'OBJ' in such cases, though Page_Class.appendOBJ is still functional.
-
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 - Empty menu parameters now eval as ' ' instead of '0' and return a menuIndex of None instead of 0.
-
BACKWARD COMPATIBILITY. Drag-and-Drop system has backwards compatibility issues with versions of experimental prior to 2020.46450. Migration Guide here.
Experimental Builds 2020.40000 - Jan 06, 2021
For experimental release notes in this branch refer to Experimental 2020.40000 Release Notes
Official Builds 2020.20000 and earlier - Dec 23, 2020
For earlier Official Build release notes refer to Official 2020.20000 Release Notes