What's New in 099

From TouchDesigner 099 Wiki

See the Release Notes for every little detail, there's too much to list here!

Rendering with PBR and Substance Designer

099 brings rendering improvements in the form of physically based rendering (PBR). This is enabled through a number of new features starting with the PBR MAT. This new OP creates physically based materials from texture maps you assign to it. This works with any content pipeline whether you use Maya, Houdini, Unreal, Photoshop etc or allows you to use PBR texture libraries such as Quixel and Poliigon.

To take this a step further, there is also tight integration with Substance Designer through the new Substance TOP. Allegorithmic's Substance Designer is a great material creation package that is also node-based, we really like it! The new TOP will load materials (.sbsar files) containing multi-material graphs saved out from Substance and give TouchDesigner users access to all the parametric settings of the material inside TouchDesigner. No going back and forth to re-export textures and re-load in TD, all the parameters for the procedural PBR material are available in TouchDesigner and the materials update on the fly.

A new Environment Light Component adds environment lighting which makes the PBR materials look more realistic in their scene.

Vive, Oculus and Virtual Reality

To get you started with VR in TouchDesigner we have released the HTC Vive Development Environment. This provides you with a .toe file to start your VR project and full documentation of the system and tips for using it. This system also lets you author your project while inside the VR world through a virtual TouchDesigner workstation. Edit and create without having to take off the HMD for every creative impulse.

This environment takes advantage of new features added to TouchDesigner for higher performance when working with VR. Pascal-class Nvidia and recent AMD GPUs can now do simultaneous multi-projection rendering allowing both eyes (or more cameras) to be rendered in 1 pass, significantly improving performance.

This allowed for the introduction of multi-view render picking. Render picking lets you select and interact with 3D objects in the VR world. For example, both controllers have a "ray-pointer" that lets you pick things to act on. Multi-view picking (through multi-projection rendering) lets multiple render picks also occur in 1 pass giving you more performance for complex setups with lots of world interactions. Picking is also improved by reporting custom attributes from your picked geometry and the Point SOP and Vertex SOP have additional support for more custom attributes to boot.

Support has also been added for the HTC Vive Tracker through the OpenVR CHOP.

Video Connectivity

Camera, Cameras, Cameras!!! Native SDK support for Point Grey, Bluefish444, and AJA has been added to the Video Device In TOP. Bluefish and AJA can support 4K input capture and output. To help development with camera devices the Info CHOP now reports more information such as capture_fps, capture_total, frames_repeated, frames_dropped, and connection_changes.

NDI is a new network-based protocol developed by NewTek for video streaming over a LAN. Impressive performance, low latency and low hardware cost make it an attractive option for any project that requires sending lots of video between systems. Check out the new NDI video streaming over LAN in the NDI In TOP and NDI Out TOP.

Communicating between applications on the same computer, the Syphon Spout In TOP and Syphon Spout Out TOP works on 2 platforms using Syphon (macOS) and Spout (Windows OS).

Interoperability with Devices and Protocols

See Interoperability for a full compilation of devices, protocols and interconnected software.

Device support has been improved across the board. Those using DMX or working with LEDs will be thrilled that the DMX In CHOP and DMX Out CHOP now support sACN devices and multi-cast! This will allow many more devices to be used and with much higher numbers of channels/samples. Also complex arrangements can be set up with a DAT table input to the DMX Out CHOP. FTDI (serial DMX) ls also supported.

Additional laser controller support comes in the form of the Helios DAC CHOP which lets you pew pew your lasers with Helios DAC devices.

RealSense support has been improved to work with the SR300 camera and adds segmented color image and person tracking features.

The new BlackTrax CHOP gets data from BlackTrax Motion Tracking systems into TouchDesigner.

MIDI Devices can now be connected after TouchDesigner has started, and as well, they can be disconnected and reconnected without the need to restart the TouchDesigner project. This is sure to help in many live performance emergencies! To monitor the connection and disconnection of MIDI controllers, cameras and devices, use the new onDeviceChange() callback in the Execute DAT. This will let you take appropriate actions in your TouchDesigner application.

For those working with Internet-of-Things devices and systems, the MQTT Client DAT receives and sends data to MQTT servers. Read more about MQTT here.

Finally, many key SDKs were updated to the latest versions; Blackmagic, Point Grey FlyCapture and Spinnaker, Oculus, OpenVR and more.

Web Render, Web Browser and Web Tools

A new addition to the web toolset is the Web Render TOP which lets you render a web page given a URL, and use the image inside your TouchDesigner project! It is implemented with the open source Chromium web browser project.

The new webBrowser Panel Component in the palette is an interactive web browser interface to the Web Render TOP, currently available on Windows only, in the Commercial, Educational and Pro versions of TouchDesigner. It illustrates how to make a web browser with webpage interaction within a control panel inside TouchDesigner. This opens a myriad of possibilities for everything from HTML5-built control panels to customer web server interfaces that can be embedded into TouchDesigner projects.

The Web DAT and WebSocket DAT have been a part of TouchDesigner for some time, letting you reach out into the internet to access and interact with the vastness of the net. To make it easier to get started, we have introduced a pre-built Threaded Web Component to access APIs like Twitter, Instagram, or any other similar service.

Image Processing

Mapping, VR, stitching, dome work, environment lights, and many more parts of a pipeline rely on the camera projection formats of the images. Now the Cube Map TOP, Projection TOP, and Render TOP all support more formats to help easily generate or convert to whatever format is needed. Cube Map, Equirectangular, Fish-Eye, and Dual Paraboloid are all as easy to access as setting a single parameter.

TOPs are the graphical powerhouse of any TouchDesigner system. A GPU-based, high-resolution, realtime compositing system that is a joy to experiment and explore ideas with. One of the favorite TOPs in most people's toolbox is the Noise TOP. The Noise TOP has long had 3D noise functions, but now using a new 2nd input you can do a lookup into any position in the 3D Noise space. The RGB values of the 2nd input are used as UVW coordinates into the 3D Noise space, saving you from writing a GLSL shader to do this kind of lookup.

The Blob Track TOP has been completely overhauled using openCV and much of it now runs on the GPU. To get results from the Blob Track TOP, attach an Info DAT or Info CHOP to it.

Color correction and color space tools have been improved. A number of new pixel formats such as 8-bit sRGB encoding and a number of special mono and alpha format have been added. As well, the OpenColorIO TOP utilizes the OpenColorIO library to apply transforms and 3D lookups for advanced color grading.

On Windows, a new method of screen grabbing allows for super-fast capture even at high resolutions. The Screen Grab TOP now has the performance to try a bunch of interesting new uses. For those interested in distributing video between TouchDesigner processes, the Touch Out TOP can now connect to multiple Touch In TOPs at the same time and also support HAP Q Alpha if you need an alpha channel.

For all TOPs there is now support for creating the image in a Pixel Format that is an 8-bit sRGB encoded buffer.

You can use TOPs to store any numeric data as illustrated in the particlesGpu palette component. Pixel formats can be floating point, and now the Math TOP now operates on pixel values not restricted to the 0-1 range. Like the very flexible Math CHOP it re-ranges, combines and scales.

Audio Connectivity

Ableton Live has been an important part performing live musical acts for the better part of a decade now. The Ableton Link CHOP taps into the new Ableton Link technology to provide tight sync between TouchDesigner and Ableton sessions. Synced timing with a growing collection of other software using Link is also possible now. Stay tuned for more Ableton connectivity.

Dante is now supported with up to full 32-bit audio (converted internally into 32-bit floating point) at up to 192K sample rates, and auto-connect. Dante is not just another audio device, it's one of 3 industry standards for IP-based low-latency audio.

Panels and Windows

Many displays produced these days are high-DPI high-resolution monitors. To help TouchDesigner be more compatible with these displays the user interface now scales with the Windows Display Setting "Change the size of text, apps, and items". This should help keep the user interface usable instead of dealing with ultra-tiny text.

The Window COMP also not has options for output to the DPI-scaled size of the display or the native resolution pixels of the display, depending on the requirements.

Panel Components have had a complete parameter overhaul, Panel Anchors. Along with re-organizing and clarifying parameter names, new features have been added to allow designing UIs with proportional anchors, specifiable aspect ratios, or stretchable components more easily. Many approaches that used to require parameter expressions and lots of math can now simply be done with parameter settings.

A new panel type called the Parameter Component will grab your favorite parameter(s) from any OP for you to use in your interfaces. It is a parameter dialog in a panel. You can select a subset of panels or pages to include, giving a quick way to build user interfaces using custom and built-in parameters. If you don't want to design your own UIs from scratch but want to give your project access to parameters various nodes deep in your networks, this Parameter COMP is for you!

Scripting and Programming

An update to Python 3.5 in TouchDesigner has enabled the use of OpenCV 3.2 in TouchDesigner, check out our openCV examples. To make life even easier, the numpy library is now included in the TouchDesigner installation so you can use numpy anywhere in TouchDesigner without have to pre-install it.

If you are a fan of openFrameworks, TouchDesigner has been upgraded to hook in with the 64-bit openFrameworks v0.9.3, with three examples of a C++ TOP. check out the openFrameworks page for examples and a walk-through of how to get started.

The CUDA TOP is being removed and instead CUDA support have been added to the C++ TOP. This gains the benefit of the C++ TOP's newer features like automatic Custom Parameter generation and makes it easier to maintain going forward. It is now supporting CUDA 8.

GLSL support has been updated to the latest versions and the GLSL TOP now supports Compute Shaders.

The Python module TDJson contains utility functions for working with JSON, especially parameters and parameter pages.

The Python module TDFunctions contains utility functions for TouchDesigner.

CallbacksExt_Extension is a Python callback system for use in custom components. Examples are in CallbacksExt_Examples.

TDStoreTools and StorageManager_Class are the StorageManager which manages data in storage that you want to be dependent on other data and "deeply dependable collections".

DATs can now be set to use any file extension you choose. This allows for correct syntax highlighting in external code editors and the convenience of saving DAT contents out as the appropriate file type. TouchDesigner can also now open DATs for editing using the OS default program for each extension, allowing for different editors to be used for .py and .glsl for example.

Palette, Components and Snippets

Operator Snippets (from the Help menu) has been fully overhauled with more new examples.

The Palette is collection of tools and examples that continues to grow. Many are new additions in 099, but the older components have also received updates and new controls through custom parameters. Check out this library of useful tools and techniques.

  • KantanMapper 2 is a full re-design of the most popular TouchDesigner component, KantanMapper. It is re-engineered with newly-developed shape-editing, unlimited layers of simple to free-form shapes, and a user interface to map and transform any video onto any shape, and methodologies to better-manage complexity and extensibility, The UI is independent of the engine allowing external control of everything.
  • sweetSpotPreviz sets up the trompe d’oeil effect of projecting a 3D scene onto any physical surface, looking perspectively-perfect from some observer position.
  • CamSchnappr (automatic projection mapper onto physical objects that are pre-modelled in 3D) now supports multi-projectors with automatic inter-projector edge blending.
  • Recent palette components to explore are opticalFlow, movieBlender, moviePlaylist, histogram, waveformMonitor, vectorScope, gal, presets, multiMix, feedbackEdge

Component Privacy gives Pro users the ability to lock their components and make their contents private. This might be needed if the author wants to protect their IP or wants to lock out certain networks to ensure no tampering with certain parts of a system. It could also be used to help protect components that are for sale to keep the contents secure.

Workflow and Productivity

For those creating weird and wonderful geometry in TouchDesigner, you can now export geometry in any SOP as FBX files to use in other 3D packages. It's also easier to get geometry into your projects as the File In SOP loads .obj files directly now, just drag and drop into any network.

Some other new touches to make life easier; improved CHOP exporting to reduce the chance of annoying export conflicts. clone parameters are now easier to use; the Replicator COMP now has an 'increment' parameter to control the pace of replication per frame to avoid stalls or frame drops; and last but certainly not least, numbered .toe files can now be saved to a Backup folder to keep your project folder nice and tidy.

OP Shortcuts and Parent Shortcuts simplify getting at nodes that are up the parent chain or in afar-away path location.

3D Node Viewers have a new Adaptive Homing option that keeps geometry visible inside the view, helpful for keeping a watchful eye on geometry at various scales.

Replicator increment and Clone 'enable' make them easier to use. Also you can replicate without specifying a table, you can just provide the number of replicants you want.

You can now save you backups of .toe files to a separate folder (a preference), a long-desired feature.

Operators

Splicing samples - Many workflows involving LEDs, lasers, and DMX devices use sample-based workflows in TouchDesigner. To this end there are new tools to help working with samples. The Splice CHOP lets you trim, splice, and stretch samples of its 2nd input into the channel of its first input, all in one CHOP. This is useful for inserting or manipulating specific values in place of specific samples in a channel, great for controlling LED colors or laser on/off states. Additionally, the Delete CHOP now has a page to control deletion of samples to make cutting data out of a channel easier. The Trim CHOP and Stretch CHOP also now use samples as their default parameter units.

Other operators of note are

  • Folder DAT is much faster now and also has an 'Async Update' option which does the work in another thread to keep from affecting frame rate.
  • Vertex SOP allows custom attributes, and in the Primitive SOP a primitive ID attribute was added.
Keyboard Shortcuts

A number of keyboard shortcuts have changed or been added.

  • Layout All - "l" has been completely removed! Yay! Still available through the network's RMB menu.
  • Switch to List - "t" changed to "shift+t" - hopefully keeps from accidentally switching to list mode and getting stuck.
  • Display > Groups - "g" changed to "ctrl+g/cmd+g" - again hope to keep from accidentally opening Groups interface.
  • Open Parent Viewer - "v" changed to "shift+v" - days accidentally hitting v and blocking your work are over.
  • Open Explorer/Finder - "alt+e" changed to "alt+f" - think alt+f for "File Browser".
  • Open Current DAT in External Editor - "ctrl+e/cmd+e" -for a parameter expression field or the Current DAT, open in external text editor.
  • Run Current DAT Script - "ctrl+r/cmd+r" will run the script in the Current DAT.
DAT Callbacks Renamed - start() becomes onStart()

You may notice that most of the callbacks names in DATs and others operators have changed. Our goal was to have more consistent names going forward. For example, Execute DAT's start() was renamed to be onStart(). We put the on or while at the start to indicate that these functions are called when some event occurs... "upon" <event>. The old callbacks still work as before, but you will see the new ones in operators you create anew in 099. You don't have to convert your names over to the new ones, but do so if you are inclined. We apologize for the inconvenience, we feel it is better for clarity in TouchDesigner in the future.

macOS

TouchDesigner now runs on macOS. The macOS performance and feature set is almost identical to that of TouchDesigner on Windows. This unification led to new monitor layout tools that intelligently arrange, scale and map multi-monitor configurations, handling monitors with different DPI settings. “Signed distance field text rendering” gave fast scalable text rendering cross-platform, so the product on both platforms have significant similarities.