This year's developments in TouchDesigner have given us one new thing after the other to get excited about. Incredible community inspiration and relentless work by our dev team has resulted in an astonishing list of new features and workflows for TouchDesigner. These additions have been maturing in the experimental 2019.10000 version and are now stable for production work in our Spring 2019 Official update.
Below we outline the major highlights of this official release
. For the full details of what has changed, read through the Release Notes...
you may want your favorite beverage on hand, it's a long read!
01.FULL UNICODE SUPPORT
To enable text support for most of the world's languages and better support our global community's needs, we took on the massive job of adding unicode. This extends support beyond the standard 128 ASCII characters and allows for script languages like Arabic, Chinese, Hebrew, Japanese, Korean, and Russian.
TouchDesigner's unicode overhaul is deep and extensive, it doesn't stop with simply rendering unicode characters more easily. You can use unicode characters almost anywhere you can type a string; directly into DATs, in python code and comments, in parameters and expressions, with the Text SOP and Text TOP, and more.
As well, everyone can rejoice that filenames and paths that contain unicode characters will load and save properly in TouchDesigner now! (sorry that took so long...)
Rigid-body dynamics has been brought to TouchDesigner through the addition of a new group of Dynamics operators. Using the Bullet real-time physics engine, you can now add physics to your 3D objects by putting them inside new Actor COMPs. The system can then be acted on by Force COMPs or Impulse Force COMPs and the Constraint COMP. All of these components in your project run in a simulation managed by the Bullet Solver COMP which controls initialization, simulation, and speed of the physics system.
A key part of this intergration is bringing the animation and interactivity of CHOPs, TouchDesigner's nervous system, into the physics simulations. The Bullet Solver CHOP will the pull data out of any simulation into CHOP channels. This allows you to add, subtract, constrain, overlay, blend, or override data from any CHOP source with the physics simulation data, and then finally feed this back into the simulation using the Bullet Solver COMP's Feedback CHOP parameter.
The best way to get an introduction to these features is to check out the new OP Snippets for the Bullet Solver COMP which can be found under the Help menu in TouchDesigner.
03.WIDGETS & BINDING
Over the past 2 years we have been designing the replacement for the old TUIK UI toolkit and now have the first version of Widgets ready to share with you. The original TUIK toolkit was created in TouchDesigner 077/088 and is now out of date, using tscript under the hood it was often difficult to customize and integrate into today's modern TouchDesigner workflows.
Widgets are a new set of components for building control panels, performance interfaces, application UIs and systems. Designed to be modular and updatable, this new architecture is fully customizable and will be TouchDesigner's primary UI toolkit going forward. Widgets use python under the hood and enable easy access to python workflows like callbacks and extensions. This first release of Basic Widgets can be found in the Palette under UI > Basic Widgets. This folder of assets and the new Widget COMPpanel component are the base for building Widget UI systems.
One new aspect of Widget's design is that each UI widget now has a value parameter. This works well with modern parameter-based workflows in TouchDesigner and offers a number of advantages such as ranging, clamping and parameter types.
Furthermore, to assist with this parameter-based approach, a new parameter mode called Binding has been introduced. Sometimes parameter adjustments will happen by using the custom widget UI you build, but other times you want to be able to adjust the operator parameters inside the project from their parameter dialog directly. This has been troublesome in the past as adjusting a parameter manually on the operator would disconnect your UI's expressions or exports, and there was no easy feedback to the UI. Binding solves this with a simple parameter-to-parameter link maintaining bi-direction sync between them, controlling it from either location will update the both.
04.C++ CUSTOM OPERATORS
Extending TouchDesigner using C++ to build your own operators has always been a powerful way to extend TouchDesigner. With the addition of a C++ DAT there is now a way to create a custom operator plugin for any family, TOP, CHOP, SOP, or DAT.
We are also excited to announce that C++ operators now run on all license types including Non-Commercial. We hope this will reduce the barriers to trying TouchDesigner for any C++ programmers or those using openCV and openFrameworks, and let beginners and gurus alike try the fabulous C++ plugins people have shared.
When removing the license limitations for C++ plugins, we wanted to encourage their widespread use by everyone and asked, "How can this be better and easier to use?". In short order, Custom OPs were born! Custom OPs have a new API allowing them to act like regular built-in TouchDesigner operators. These OPs can have their own custom names and now show up in the OP Create Dialog under a new 'Custom' tab. Any Custom OP plugin now looks, feels, and behaves like a built-in operator making them easier to use and share.
Webpage rendering in TouchDesigner has proved extremely useful since introduced last year. Now everyone who uses Touch can use the Web Render TOP as it is finally supported for macOS and works with any license including Non-Commercial!
NDI is a great way to transfer video accross ethernet to other computers and devices, we see many of you utilizing it in your projects in a variety of ways. To enable transfer of audio alongside a NDI video stream, there is an Audio NDI CHOP to receive audio from a NDI In TOP and the ability to send audio output via the NDI Out TOP.
To further improve NDI support, a new NDI DAT can list all NDI sources found on the network. It includes a callbacks DAT to trigger custom scripts on events such as NDI sources appearing and disappear or a stream starting and stopping.
For high-end AJA capture cards, there is now support for external reference sync input and using the 'failsafe' features on AJA Corvid 24 devices. Support was also extended to include the new AJA Kona HDMI.
Those using Blackmagic Design cards will find a new GPU Direct option for higher bandwidth. This also enables support of the new Blackmagic 8K Pro.
Stereolabs' ZED 3D camera for depth sensing and motion tracking has been added to TouchDesigner through 3 new operators. The ZED TOP gives access to the camera's depth and color images and can output point cloud data. The ZED CHOP returns channels for camera position and plane orientation. The ZED SOP scans real world objects and creates geometry from it.
06.FBX & USD GEOMETRY SUPPORT
The new FBX COMP and USD COMP tackle importing Autodesk's FBX and Pixar's USD (Universal Scene Description) geometry respectively. Both import geometry and create an internal network structure that is editable and customizable. You can make edits to your geometry network and update the assets without wiping out your customizations. Furthermore, the included callbacks DAT allows modification of the network structure and final scene at the time of import, giving the tools to fix buggy assets, swap textures, add attributes and more.
Animations are handled on the 'Play' page of parameters, presenting familiar playback controls similar to the Movie File In TOP and Animation COMP. The new trio of Import Select TOP, Import Select CHOP, and Import Select SOP can select texture, animation, and geometry mesh assets out of the FBX or USD file for use anywhere in your networks.
07.RENDERING, MATERIALS & LIGHTING
Nvidia Flow is an exciting new addition to create explosive fire and smoke effects through a volumetric fluid based simulation of a burning gas system. Controlling the 3 main factors of temperature, fuel, and smoke you can create anything from a misty evaporation over water to a massive mushroom cloud overhead.
Nvidia Flow is supported through 2 new operators. The Nvidia Flow Emitter COMP is an emitter which controls the amount of fuel injected into the system and sets burn temperature and amount of smoke. It also contains the material settings elements of the simulation such as burn, smoke, temp, and fuel. Running the simulation and rendering the result is the job of the new Nvidia Flow TOP. Settings for the simulation here include damping and fading, vorticity, and burn control for each step of the simulation.
The Movie File Out TOP has been improved and now has an output type for creating Stop-Frame Movies. The movie output option also lets you create .gif files now.
Finally the Speed CHOP, Spring CHOP, and Slope CHOP all got a Per Sample option to operate on samples instead of channels, the Shuffle CHOP is no longer needed to shuffle and then un-shuffle!
A couple of useful new DATs can be found in the OP Create Dialog. The Lookup DAT will lookup values between a DAT and a lookup table, we're sure this will become as handy as the Lookup CHOP and Lookup TOP have been. You will also find the Parameter DAT useful for getting parameter information from any OP, especially for parameters whose values are strings.
Internal Operators (iop) and Internal Parameters (ipar) shortcut objects can be defined on the Common page of all components. Internal Operators provide a simple shortcut to a frequently-used operator within a component, from anywhere in that component. Internal Parameters provide a simple shortcut to parameter collections within a component, from anywhere in that component. They act like persistent local variables.
Better multi-NIC support has been added to all operators that use the network by setting a specific IP to listen to using new Local Address parameters.
Offline documentation is now included with the TouchDesigner installation. When there is no internet connection available, help buttons will automatically use the offline help.
Parameter Rollover Help pops up in the parameter dialog by just holding down the 'alt' key (or 'option' on macOS) while you rollover a parameter's name!
Operator Snippets have dozens of new examples for you to explore.
For better file management, CrashAutoSave.toe files are now suffixed with the project's filename and the default preference for filename incrementing is now On and Save to Backup Folder.
Following are some of the major improvements to python support for this release.
Search External Python Path Last in the Preference Dialog gives control over the order custom python module paths are searched, either before or after TouchDesigner's builtin modules.
Python Custom Parameters and the ability to evaluate them as PyObjects.
For working with Custom Operators, they now have the ability to create Python paramemters using appendPython() and can evaluate a Python parameter directly into a PyObject for use with Python's C API using getParPython().
Page Class Page.appendPar(name, par=Par) Create a custom parameter matching the specified parameter as closely as possible.
The DAT Class received some well-deserved love.
DAT.findCells() and DAT.findCell() python methods to search cells by value.
DAT.replaceRow / DAT.replaceCol replace a row/column in a table.
DAT.appendRows() / DAT.appendCols() append multiple rows/columns to a table.
DAT.deleteRows() / DAT.deleteCols() delete multiple rows/columns in a table.
Color Class - Added tdu.Color class which holds a single 4 component color (R, G, B, A).
Prim Class - Added Prim.direction which returns a normalized vector pointing from the centroid of the SOP to the centroid of the primitive.
SOP Class - Added support for SOP.center, reutrning the center of the SOP.
Wave CHOP - Added much requested support for .chanIndex and .sampleIndex
11.CONTENT & TOOL UPDATES
- TreeBrowser added to the palette in the UI section.
- moviePlayer has new mouse interaction options, image zooming, 'Go Back' to previous, and a new movie engine for better scrubbing and play/pause control.
- presets recevied an update and now has a preset values inspeciton DAT, the ability to add/rename/remove parameters from presets, and numerous bug fixes.
- camschnappr has new autoblend features, bug fixes and improvements.
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.