A sacred day has arrived! The long awaited experimental build of TouchDesigner chock full of new features has been released as stable. You’ve heard the features. You’ve heard the new tricks. All the while you were worried that you couldn’t use the experimental because either you’re already deep in a project and couldn’t give up stability or because you simply didn’t want to learn a new feature before it became stable, in fear of it completely changing for one reason to another. The moment is here, so in this blog post I want to highlight a few of the key new features and more important why they’re important and how you can get started using them. Let’s dive in!
Bindings will be the quiet feature that you probably won’t talk about much or see in the TouchDesigner news or read about on project write ups, but it’s going to start appearing everywhere and if you don’t know how to use it, you’ll be scratching your head. Bindings are a new mode added to parameters. Previously, you had the constant value mode (grey), export mode/tscript (green), and expression mode/Python (blue). Now there’s the forth mode which is bindings (purple).
It’s easier to understand bindings by thinking about the problem they’re trying to solve. In the old days (last week!), you would have to setup your networks to try to funnel ALL incoming signals and data down to one place, because at the end of the day parameters and references would only flow down in one direction. Bindings blow this wide open by allowing bi-directional parameter values to flow without breaking references and expressions. Quiet, kind of nerdy, but huge!
Bindings come in two flavours: bind masters and bind references. Usually you want to setup your main control area of the network with your bind masters. If you follow my trainings, this will be the SETTINGS COMPs you make for your networks. This is what is being watched by the bind references. Everything else in your network referencing those values will update dynamically as you change your bind master, just as normal, but there’s a twist. Now if there’s ever an instance where your bind references need to be updated in the heat of the moment or if you have a UI setup, there are a few ways that you can change the values of the bind references and have those changes dynamically pushed back up to the bind master.
This is the crux of the bi-directional parameter setup. I’m excited for it, as it will help create far more resilient networks, but that doesn’t mean it won’t also create chaos if not used with care! To read more about bindings in the documentation click here.
OOooooooooohhhhhhhhhhhhhhhhhhhhhhhhhhhhhh boy! How many years have people been asking for physics? How many years have you been sitting on the sidelines, still using Unity or even Max MSP to do your physics simulations? Too long! But now is your time to shine. Bullet dynamics has been integrated into TouchDesigner. This is going to be the genesis of all kinds of new interactive experiences in TouchDesigner for folks who’ve always wished to have some kind of dynamics.
The great thing about the Bullet dynamics in TouchDesigner is that it comes ready for use in interactive experiences, with built in ways of overriding the simulations data using the Bullet Solver CHOP and feeding back data into the feedback parameter on the Bullet Solver COMP and Actor COMP. Want to make it rain on a Kinect Silhouette? Want to use blob tracking to have someone run into a wall of blocks? You are covered!
But wait, this is the surface level of goodies. Some of the real meat and potatoes of the bullet dynamics are going to be using the callbacks of the Bullet Solver COMP. Callbacks are Python functions that get run based on certain conditions. The most useful callback we’ll now have access to is the onCollision() callback. This will return a list of collisions happening each frame. Why is that important you might ask? Well if you’ve ever used just about any other software, one of the easiest ways to do 3D interactions is to use rigid bodies and collision callbacks. In TouchDesigner, we can do similar things using render picking (you can see my training video on it in the Learn TouchDesigner HQ), but this never really substituted for full-on rigid body collision detection-based interactive. Collisions callbacks will finally give us a to do native 3D interactions in 3D, as opposed to render picking which is native 3D interactions based on 2D inputs. I will almost certainly use this more than the actual physics simulation side of Bullet.
You can read more about Bullet physics implementation in TouchDesigner by clicking here.
This is secretly my favourite new feature coming out. Previously, if you were importing FBX models, there was an intermediary step where TouchDesigner would convert the FBX geometry into the tog format, which is a native TouchDesigner geometry format. Where FBX COMP differs is that it still creates intermediary geometry in the new tdc format, BUT it allows you to reload in an FBX without recreating the whole import pipeline. So if you’ve gone in and imported a complicated model and done a bunch of tweaks the network but you need to reimport the geometry because of a small change in the mesh, you can reload the FBX file from inside of TouchDesigner without destroying and creating a whole new import network. This is a quiet but really really really great new feature for the FBX COMP. Previously you’d have to make complex Python scripts that would handle your pre-import and post-import setup of the network (which you can also still do an even easier with additional callbacks added to the FBX COMP!).
FBX COMP also has the benefit of importing all the extra elements and data of a 3D scene with more uniformity. Previously you’d generally just skip cameras and lights, and often times you’d just re-map the texture yourself because it never really worked 100% of the time with the old import system. You’d also be messing around your geometry before import to try and simplify/flatten everything because otherwise you’d get all kinds of messy networks in TouchDesigner. FBX COMP now has a more rich support for importing the full scene data including cameras, lights, and geometry groups. This should be a huge time saver alone for folks who rely on 3D workflows being imported into TouchDesigner.
All in all, I’m super hype for the FBX COMP. Possibly my favourite new feature!
You can read the full explanation of FBX COMP by clicking here.
Sounds exciting I bet! Other notable features for me are the Widgets system for making UI’s and control panels, Unicode support, the new C++ DAT which allows you to make custom C++ operators in the DAT family, and the ability to use GPU decoding for H264 and H265 videos on nVidia cards (boring but hilariously useful!!!!). You can read the full release notes by clicking here and start downloading the latest official build for Windows or macOS by clicking here. Enjoy!