The openGL engine used for the last 20 years is gone and TouchDesigner’s graphics API is now Vulkan. Vulkan can significantly reduce graphics driver overhead compared to openGL, which can result in performance gains in many areas, from TOPs, to UI, to geometry rendering.
Some improvements from Vulkan we have already added are better SDI input/output performance and NotchLC codec encoding/decoding on macOS. Upcoming plans include optimizing certain TOPs using compute shaders and using Vulkan's better support of HDR color space outputs to improve these workflows.
macOS uses MoltenVK API which allows Vulkan to be used on Apple’s Metal framework. This ensures we are developing TouchDesigner with the latest API that Apple is focusing their resources on and brings more features to macOS that were not possible with openGL.
On macOS we have also ported TouchDesigner to run natively on Apple Silicon to get the most from Apple’s new hardware lineup.
2.Working in the Editor
As a TouchDesigner user, most of your time is spent in the Network Editor, designing networks and organizing systems of pixels, signals, logic, and code. This year we turned our attention to improving that experience in a number of ways.
Starting with some long requested features, the workspace now has built-in comments and boxes to organize your notes and operators. The first two network utilities are simple ‘comments’ and ‘network boxes’. Use comments to describe what things do or how they work, leave notes in the middle of works in progress, or leave instructions and educational notes for others who come across your work (including your future self). Network boxes can be used to enclose a group of operators together for organization, highlighting, or compartmentalizing ideas.
The third tool available to work with is the Annotate COMP. This is a new component that allows you to comment, box nodes, add background images or renderings, and even create your own network tools and interfaces for whatever you can dream up.
In addition to working with nodes, code is also found throughout TouchDesigner, from python callbacks and extensions, to GLSL and compute shaders. In addition to nicer text rendering, DAT viewers in 2022 finally get syntax highlighting for python, GLSL, JSON, and XML/HTML.
A new Search / Replace dialog can be found under the Edit menu (shortcut alt+s) to help you quickly locate things in your networks. This includes a powerful Replace function to assist with refactoring, updating, or renaming anything in your project. The features of this dialog were modelled from an updated Palette component called searchReplace found in the Tools folder.
3.High DPI Panel Rendering
A new Text COMP renders text directly to screen using the Slug Library we introduced last year. This replaces the need for Field COMPs (now deprecated) and Text TOPs when building control panels (Text TOPs are still needed for text used in TOPs image compositing). All Panel COMPs now use this direct to screen method and all UI Widgets in the Palette have been updated to take advantage of it.
TouchDesigner’s interface which includes the network editor, parameter dialogs, node viewers, the Textport, DAT viewers, menus and more has been updated to take advantage of all the pixels available on high resolution and high-DPI outputs. We also bumped up the font size for TouchDesigner’s interface font to make things a bit easier to read.
4.SDI and Video Pipelines
We have put immense effort into improving TouchDesigner’s SDI support and performance this year. New hardware support this year includes the introduction of native support for Deltacast cards, both for their Developer Products and their FLEX solutions. These are often found as OEM equipment in media servers and TouchDesigner can now take advantage of them fully.
An upgraded Bluefish444 SDK brings support for their new line of high-bandwidth Khronos cards and adds the ability to capture VITC timecode and 10-bit YUV.
AJA and Blackmagic Design device support gets some major upgrades with support for 12-bit input and output formats, including AJA’s ability to capture at a full 12-bit RGB 4:4:4. This allows better input and output support for HDR and colorspaces such as Rec.2020 which can go up to 12-bit. Furthermore, 10-bit input and output received a number of performance improvements and better support for a wider selection of firmware.
The Info CHOP can give you data for analyzing the performance of Video Device In and Out TOPs. There are 6 new channels of data included to help with monitoring, as well as a “Reset Stats” option to clear history.
Other big news includes an upgrade to the OpenColorIO SDK providing better color rendering results, improved LUT performance, and support for the latest configuration file formats.
NDI received the latest update to version 5.0 which improves performance and network discovery. Don’t forget we have support for NDI metadata which has enabled all sort of interesting use cases over the past year. Check out ZIGCAM to get ARkit information from your phone over NDI into TouchDesigner.
We are currently researching other new features NDI 5.0 offers, stay tuned for that.
5.Steinberg VST® (Virtual Studio Technology)
TouchDesigner now supports VST audio plugins with the new Audio VST CHOP. Steinberg VST is a standard for audio plugins allowing virtual instruments and filters to work across digital audio workstations (DAWs) and now TouchDesigner.
VST3 plugins can expose their parameters in the Audio VST CHOP, and the VST plugin’s UI can be opened and controlled in a floating window launched from TouchDesigner. We have also developed a robust set of MIDI Event functions allowing you to send MIDI events to VSTs, and conversely TouchDesigner can capture MIDI events coming from the VST using the Audio VST CHOP’s python callbacks. To start experimenting with VSTs check out the vstHost component in the Palette’s Tools folder.
6.WebRTC (Web Real-Time Communication)
WebRTC is an open standard for peer-to-peer communication on the web. It supports sending and receiving of video, audio, and generic data between peers, and is supported by all modern web browsers.
With the introduction of the new WebRTC DAT, TouchDesigner now gains access to this standard for peer-to-peer communications between TouchDesigner, other WebRTC applications, and web browsers.
Applications built on WebRTC include popular services such as Whatsapp, Discord, Snapchat, FaceBook Messenger, Google Meet, and Jitsi. Low latency and wide compatibility make WebRTC a great choice for building voice and video communication tools, we think this will open up exciting new applications for TouchDesigner. To get started with WebRTC, start with the documentation and the examples in the new WebRTC folder of the Palette.
Python programmers have a ton of goodies to look forward to in this year’s release. Beginning with an upgrade of TouchDesigner’s core python to version 3.9.5. This brings a number of new features like f-strings for powerful string formatting, and the walrus
:= operator offering a new syntax for assigning variables in the middle of expressions.
ParGroups and the new ParGroup Execute DAT offer a more natural way to work with related parameters as a group instead of as their individual parts. For example,
resolutionh can now quickly be accessed through the pargroup
A new parameter member called
lastScriptChange gives information about when a parameter was last modified by a script, super helpful when troubleshooting and debugging parameter behavior.
Two helpful additions have been added to the tdu Module. A new try/except function in the form of
tdu.tryExcept(func1, func2 or value) lets you make some powerful single line expressions, and the Dependency Class now has a callbacks method for those of you leveraging dependencies in your projects.
8.Custom OPs and Extending TouchDesigner
C++ developers can look forward to powerful additions to further customize TouchDesigner and expand its feature set.
Custom Operators built in C++ can now support triggering Python callbacks, allowing programmers to build the same python callback interfaces you find in TouchDesigner’s native operators. Furthermore, you can also use the CPython API to define python classes for your Custom Operator.
For those building Custom TOPs, they now support 3D textures, 2D array and cube textures, more pixel formats, and access to multiple color buffers. The API for Custom TOPs (but not other node families) has been completely reworked for Vulkan, resulting in code that is cleaner to work with and more powerful. Note that Custom TOPs from previous versions of TouchDesigner will need to be upgraded to this newer API, it was unavoidable in our transition from openGL to Vulkan.
9.New Features and Operators
The Timer CHOP received a substantial upgrade with the following new features. An ‘infinite’ running mode where a length or end point doesn’t need to be specified opens the Timer CHOP up to a number of new uses. Parameters for ‘Sub Range’ let you loop anywhere within the full time range and are accompanied by a new callback for additional event programming. In general, the python callbacks for the Timer CHOP have been tweaked and include a new ‘segment’ argument that helps make working with segments easier. There are new monitoring channels including ‘Master Time’ options, ‘Playing Timer’ counts, and ‘Segment Length’ outputs, all to give you more useful data coming out of the Timer CHOP.
A completely new Geo Text COMP creates 3D text geometry directly on the GPU using the Slug Library, similar to the Text COMP mentioned earlier. Including workflows for positioning, styling and coloring 1000s of pieces of text, per-character animations, and even curved text placement, the Geo Text COMP takes 3D text in TouchDesigner to a whole new level.
Stype and FreeD are two camera tracking protocols used for camera tracking data in live broadcast, XR and virtual productions. TouchDesigner has had inputs for these protocols for many years, but now this data can also be sent out using the new Stype Out and FreeD Out CHOPs. Manipulating and processing these real-time signals in the middle of any workflow can be indispensable in live environments, helping you quickly solve problems and saving valuable time on-set with TouchDesigner.
The above sections mention some of the highlights of this release, but there is so much more you will find once you dig in. For a full list of new features and improvements, remember to check the Release Notes.
Join the discussion below to let us know what features or changes you are excited about. Of course if you have any trouble or find bugs, we want to hear about that too!
We want to thank you for your support, both for using TouchDesigner and for participating in building one of the best communities around. A special thanks to the following members of the community whose images and assets helped make this article possible. Check out their work in the links below.
Studio Setup - Dixon Transmoderna, Printworks, London, October 2021. Credit: Jake Davis - *Article teaser image
Yea Chen - ChillProduction
See also 2021 Official Update Announcement if you missed it.