What's New in 099 2017.10000
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.
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
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.
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.
RealSense support has been improved to work with the SR300 camera and adds segmented color image and person tracking features.
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.
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 Palette: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.
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.
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.
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.
The Python module TDFunctions contains utility functions for TouchDesigner.
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
.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.
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.
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.
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
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.
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.
A 3D image created with the Render TOP. Also used more generally to include the compositing (with TOPs) to generate an output image.
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.
TOuch Environment file, the file type used by TouchDesigner to save your project.
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 component types (e.g. Slider, Button, Field, Container) that are used to create custom control panels, also known simply as Panel or Gadget
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.
A built-in panel in TouchDesigner that contains a library of components and media that can be dragged-dropped into a TouchDesigner network.
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.
In the node viewers of Geometry COMPs and SOPs, the Adaptive Homing option will continually keep in-view the 3D geometry being displayed, even when the geometry changes shape, size and animated position.
Creates a new component for every line in a table. Unlike Clone, it automatically creates copies of a master component.
(1) The TouchDesigner window is made of a menu bar at the top, a Timeline at the bottom, plus one of a choice of Layouts in the middle. A Layout is made on one or more Panes, each Pane can contain a Network Editor, Viewer, Panel, etc. See Pane and Bookmark. (2) Nodes in a network are arranged using Layout commands in the RMB menu.