Since the Official release of 099 last summer, TouchDesigner has received dozens of features and hundreds of improvements. These new additions have been maturing in the experimental 2018.20000 version and are now stable for production work in our Spring 2018 Official update.
Deep optimization to python expressions will noticeably improve performance in any project that uses them. This will also open up new ways of working as expressions in parameters will not add the performance hit they may have in the past.
Adding support for GPUDirect in camera libraries and certain SOPs opens a high-performance laneway right to your GPU. Geometry can now be streamed directly to the GPU using Alembic files output from your favourite 3D packages.
Interoperability has always been a hallmark of TouchDesigner. This version brings even more camera support via RealSense and Ximea, better audio support by leveraging Dante and Steam Audio SDK, improved DMX and sACN robustness, and adds completely new devices like Hokuyo laser scanners or PosiStageNet protocol-based systems.
Our new favorite video transfer format NDI gets some great performance improvements. To help you export your beautiful creations there is now support for H.265 and HAP encoding as well as built-in Image Sequence output options.
Helping you find answers to questions more quickly, rollover parameter help has been added to every parameter. OP Snippets in the Help menu has also been redesigned and now opens in your project to the specific operator you have currently selected.
TDAbleton, the realtime bridge between Ableton Live and TouchDesigner, is better than ever with audio analysis, lower latency, and better stability. Kantan Mapper, our quick 2D projection mapping tool has also been improved with Bezier soft edges, better mask control and UV map output.
Below are some highlights, and for more insight into Spring 2018 update see the Release Notes.
Python expressions and references are used often in TouchDesigner projects. In the past, these python expressions had a non-trivial overhead that could reduce overall performance and frame rate. Substantial optimizations have been made to these expressions which can result in massive speed gains and enable new possibilities of working with expressions.
Optimized Python Expressions have reduced the calculation time of much of the most commonly used python in TouchDesigner. In addition, a new system of Caching Expression Results will cache expressions to keep them from re-calculating every frame. The Perform CHOP has also been given new parameters to monitor the number of optimized expressions and number using cache.
To get you working faster, we improved the time is takes TouchDesigner to startup and launch your projects. You can inspect this by clicking the filename on the splash screen during loading to reveal load time and other diagnostics about your project.
TouchDesigner can already work with hundreds of devices and software packages through its numerous protocols and APIs, enabling it to fit into any imaginable pipeline. We aren't stopping there…
The RealSense TOP now supports Intel’s new Librealsense API bringing RealSense D-series camera support to Windows and older camera support to macOS for the first time. We will continue to add features and support for RealSense as this new API matures and improves.
AJA Video Devices get a speedy upgrade with support for GPUDirect mode, reducing latency to the minimum amount possible with the hardware.
The Video Device In TOP also gets added support for state-of-the-art Ximea cameras.
TD Ableton can now be found in the Palette and has received performance improvements and bug fixes.
A new Audio Render CHOP uses the Steam Audio SDK to bring spatial audio to TouchDesigner. This is easy to setup by simply positioning a 3D object 'listener' and a 3D object 'audio source' in your 3D scene.
Dante Audio is fully supported now that TouchDesigner's ASIO data is processed in 32 bit floats, providing maximum fidelity to and from Audio CHOPs. Major improvements have also been made tohandling of ASIO devices and channels that make the interface more robust and quicker to configure.
A second all-new operator, the PosiStageNet CHOP, decodes PosiStageNet protocol data into CHOP channels. PosiStageNet is an on-stage tracking system similar to BlackTrax, and has similar applications in lighting, sound, and projection mapping.
The new Hokuyo CHOP reads in data from Hokuyo laser scanners. These scanners detect their surrounding environment on a 2D plane and are great for triggering events based on the movement and position of real world objects.
If you are using sACN for DMX fixtures, LED control, or lighting console communication, sACN start codes are now handled nicely by the DMX In CHOP. The DMX Out CHOP also received many optimizations and bug fixes, especially for those using macOS.
The Web Render TOP that renders web pages with the Chromium engine now accepts input from a DAT, enabling you to assemble HTML, SVG or other formats in a DAT and render them all within TouchDesigner.
03.3D GEOMETRY, LIGHTING, MATERIALS & RENDERING
Rejoice! Alembic file geometry sequences can now be used in TouchDesigner. The Alembic SOP can playback polymesh, curve, and point geometry sequences with full support for multiple geometry hierarchies embedded in the file. Furthermore, GPUDirect mode offers high performance.
For those C++ programmers out there, a new C++ SOP will give you the ability to build your own SOPs to create geometry, load new file types, receive geometry from other software or whatever you can come up with. Like the Alembic SOP, it also has a GPUDirect mode for high performance. The Script SOP (a python-script based SOP) has new members and methods for creating Bezier tools.
There are some new additions to improve the PBR (physically based rendering) pipeline. First, the PBR MAT can send maps to any of the color buffers on the Advanced parameter page. This is similar to the Phong MAT functionality which lets various material data be sent through additional color buffers to better utilize your GPU's capacity.
For environment lighting, a new PreFilter TOP and parameter in the Environment Light COMP enable pre-filtering environment light maps using spherical harmonics. If you don't know what that means, that's okay. Just know that you now have better real-time control over the smoothness of your environment light maps, including separate options for diffuse and specular pre-filtering.
The Substance TOP can now swap Input Images if the material author exposes that feature in their Substance material. A small detail but very helpful.
Other improvements in lighting include texture controls on the Projector Map parameter of the Light COMP, and now you can use equirectangular environment maps with the Phong MAT.
A great new shortcut for GPU geometry instancing lets you use a SOP as input in the Geometry COMP's Instance Count parameter, this is no longer limited to only CHOPs or DATs.
04.VIDEO & IMAGE HANDLING
The new Layout TOP positions multiple input TOPs into rows, columns, or grids. It has options to fit all inputs into a specific resolution by scaling them, or it can scale its own resolution to create an output containing all the inputs at their native resolution.
NDI is a powerful new feature in 099 and we've improved it by supporting faster internal formats and improved the handling of multiple streams by the NDI In TOP. You can also use the Info CHOP to query how many NDI devices are found on the network now.
The Movie Out TOP has a mode for Image Sequence rendering making it easy to output image sequences in any image saving format TouchDesigner supports.
Speaking of saving formats, .dds file format was added to save out mipmap levels as images.
To add to the many video encoding formats the Movie Out TOP already supports, we've added H.265 HEVC and HAP/HAP Alpha encoding for more flexibility.
Fresh improvements were made to Geometry Shaders in the GLSL MAT. More built-in functions are now available to geometry shaders, and now the 'Output Shader' button on Phong and PBR materials can include GLSL code for geometry shaders. Additionally, they can now be rendered using Fish-Eye or Dual Paraboloid modes in the Render TOP.
The GLSL MAT also has a new built-in function TDCreateTBNMatrix() to make it easy to calculate tangents, bi-tangents, and normals in your vertex shaders.
All GLSL operators now support #include statements which should make managing code in different DATs much easier.
The GLSL TOP adds atomic counters which are a GLSL variable type useful for specific operations. You can read about them here - Atomic Counters
S-curves can be used for lookups, ease-in and ease-outs, softening transitions and so much more in signal processing that we created a new S Curve CHOP to help you create beautiful, smooth curves with easy to use controls.
Fans of the Event CHOP will be happy to hear it now has onCreate() and onDestroy() methods in its own callback DAT.
The Analyze CHOP now has a Duplicates function that can count the number of samples with duplicate values. A good example of this in use is the Histogram example in the Palette.
OP Snippets has expanded and now opens quickly as a pop-up window in your current project. Snippets will open to the currently-selected Operator should an example exist for it. Try it in the Help menu, Help -> OP Snippets. Also try out the new Random button in OP Snippets to learn something new.
Parameter Help can be previewed by simply rolling over the parameter with the 'alt/option' key held down. This can be used for quick insight into a parameter's function without leaving TouchDesigner when you're "in the zone".
Bringing Component Privacy and CodeMeter Dongles together, you can now make private components that run on your own CodeMeter License Dongles. Developers can contact CodeMeter to get their own 'firmcode' which can then be used to create custom dongles to license their own components.
Window COMP improvements help manage multiple monitors and various DPI scales with more flexibility. The Window COMP can now span multiple monitors on macOS Sierra+.
New interface tweaks to the network address bar let you right-click on any part of the path to access that component's context menu. You can also make any parameter read-only by right-clicking it and selecting 'Enable Read Only'.
New features have been designed to help optimize and troubleshoot your projects. The performance monitor now reports both extension compile time and GPU calculation times.
GPU cook times are shown in each node's info pop-up and are available in python. Most visibly, the Probe tool in the Palette now lets you watch GPU cook times for any operator. It can be found in Palette > Tools.
09.CONTROL PANELS & CUSTOM PARAMETERS
Enhancements to Panel COMPs include the overdue addition of scrollbars. For assembling panels into larger user interfaces, the Select COMP also has new options to Match Size or Follow Selections to add flexibility when reusing panels in multiple locations. The panel rendering and layout engine has been reworked to behave more consistently at different sizes.
The Parameter COMP, which lets you put parameter dialogs into any control panel, now lets you easily specify which parameters to include. Multi-input OPs can now have their Input OP menus shown or hidden as well.
For faster creation of custom parameters in the Component Editor, you can now drag any parameter onto its parameter list and it automatically creates a copy of that parameter with the same settings and style.
Two new types of custom parameters are the Momentary parameter, and for holding simple lists and dictionaries there are Python type parameters.
New python classes, members, and methods extend TouchDesigner's functionality.
A new Quaternion Class helps when working with 3D rotations.
The Matrix Class received major updates to extend its usefulness.
In the Execute DAT lets you run python code just before or after saving out .toe files.
There are two new parameter types: Momentary button and a Python Class that lets you hold simple lists and dictionaries. The Page Class now has .appendPython() and .appendMomentary().
The OP Class now reports CPU and GPU cook times, including the sum of the children of components.
Window COMP Class and Monitor Class have new members and methods to give you access to the new features added to the Window COMP.
In the App Class, app.desktopFolder and tdu.collapsePaths() make working with paths easier.
tdu.clamp() and tdu.remap() functions are helpful for wrangling values to desired ranges.
11.CONTENT & TOOL UPDATES
KantanMapper, the 2D projection mapping tool has nice additions including Bezier soft edges, inverting freeform masks, and shapeID being written into the UV map output.
moviePlayer has many optimizations and new features like the ability to run a UI-less version for embedding in other tools and external control via CHOPs.
cornerPinSOP is a new component in the Tools folder that corner pins SOP geometry.
particlesGPU now has birth-rate control on systems that support GLSL 4.2 (ie. Windows OS)
These highlights are just a fraction of the great additions to this new Official version. Please refer to the Release Notes for more details on everything that has changed.