The Important Ones
There are tons of operators in TouchDesigner. It can be totally overwhelming for a beginner to learn all the operators and even know which ones to start with. In this blog post I wanted to give a quick run down of the top TouchDesigner operators you need to know when getting started, but also as a pro.
Movie File In
This is the bread and butter of lots of TouchDesigner projects. Reading back tons of layers of high-res and high-framerate videos may even be one of the most powerful features of TouchDesigner. I’d say everyone needs to learn this one for sure, especially how to optimize it using the tuning page and how to control playback and looping.
Before the Fit TOP we had to use a Constant TOP, an Over TOP, and your source all together to be able to safely composite your source on a new resolution canvas. Fit TOP not only makes this super easy to do in one operator, it’s incredibly useful for making sure the resolution of your signal paths are safe from changing asset resolutions or incoming signals.
The easiest use of Level TOP is being able to fade elements in and out. While this is useful, also learning about all of the contrast, gamma, and black level parameters allow you to really massage input and output textures when they’re just not looking right or need a little bump on the projector.
Blur is useful all around the board. Most beginners use blur just to distort output images or backgrounds, but blur’s uses go far beyond that. In a lot of computer vision scenarios, you’ll want to use blurs to help smooth out data, or you’ll use blurs to help pre-process some textures (like Kinect data) before you do any real heavy work with them. You might think “What’s to learn?” Well I see tons of people grab the filter slider and just crank it up, which tanks a GPU. The best blur users are those that have a sense of the relationship between the step size, pre-shrink filter, and the filter, and use them all effectively to keep the operator running fast and the blur appropriate.
What more can be said about composite? It’s amazing! But wait, you don’t know what the blend modes actually do? Do you just click through every single one and try to figure out which one looks best? Womp womp…time to do some research online and learn about all the blend modes and how powerful they are. Also the translate step parameter is a hidden gem
Need 3 channels of fake XYZ positions to test out your generative content? Need 600 samples of random data for instancing? Noise CHOP has you covered. But while many people might be comfortable with setting and forgetting it, the real power of Noise CHOP is unlocked if you learn a little about pattern matching and pattern expansion, which allows you to make lots of channels at once.
Filter is incredibly useful for smoothing out values. If you come from an animation background and looking to tween two values, filter has you covered. Outside of the simple use of smoothing out a single signal, it has a ton of options that can change how it does that, as well as how it can be used to de-spike noisy data.
Logic CHOP is incredibly useful when making networks that do things based on certain values. While you can use it for more simple logic operations such as comparisons of AND and OR, when you learn to use parameters like the “Convert Input” parameter, you can use Logic CHOP almost anywhere. Particularly useful is the “Off when outside of bounds” option for getting a 0-1 value when a CHOP channel is inside a certain range.
What problem can’t be solved with some good old fashioned math? Trying to do distance calculations? Just break the equation down into steps and use a bunch of Math CHOPs one after another. Easy! Trying to make a volume slider for audio? Put a Math CHOP and control the Multiply parameter between 0 and 1. Done! Trying to rescale a value from -1 and 1 to 0 and 360? The range parameters have you covered. Easy * 2!
Before the Timer CHOP, life was difficult. We had to make our own timer systems using Constant CHOPs -> Speed CHOPs -> Limit CHOPs and then all kinds of extra mayhem after that. Timer CHOP not only wraps that into one operator, but it has a ton of incredibly powerful features such as running sequential or parallel timers from the same Timer CHOP. You can also get a ton of value out of the callbacks using Python. If you don’t know Python, it’s worth learning just for Timer CHOP callbacks.
Not much to say about Slider except that it’s useful whether you’re making internal UIs or external ones. Learn how Panel CHOP works, it’s the key to really controlling sliders. As well, you should brush up on your Python and look at the different ways you can interact with panels using interactMouse(), interactTouch(), and others.
Same note as slider. Learn what’s going on behind the scenes and you’ll find Button COMP to be an amazing ally.
Surprisingly, I don’t mean learn to use containers in UIs (although that’s a huge use case). My suggested use case is to organize your project! How boring! I know. But it’s what separates beginners and pros. Organize your projects into lots of mini components that are talking to each other.
This is a hidden gem not to be confused with the OP Viewer TOP. The OP Viewer TOP allows you to turn any operator’s viewer into a UI element you can drop into any UI that might be combined with sliders and buttons and other things. Extremely useful for quick built UIs.
Window COMP is one of the most important operators as it takes you final content and puts it on the screens. While that may seem like a straight forward thing to do, it can get quite complex with all the options of VSYNC, borders, mouse viewing, DPI scaling, etc etc. Going through the documentation and reading about the different concepts (like VSYNC) that you will have to control will give you a huge leg up and peace of mind when you’re installing the piece.
Instant classic. Write notes in here. Get text entries from external sources. Write Python scripts. All these things are achieved with Text DATs. There’s not much to learn except that you should not be afraid to use them and be creative. I leave tons of Text DAT notes for myself in my projects.
It’s like the Text DAT but in a table format. The beauty of Table DAT would be lost on you if you don’t have some Python skills, because that’s when it kicks into next gear. The Table DAT, while it’s useful for holding tables of data, is even more powerful when you start to use Python to move data through different tables, and look up data based on key words or values. Python + Table DAT is the base of most show control systems, period.
File In DAT never gets enough use for how easy it is. Combined with a File Out DAT, you can basically make all kinds of preset systems with barely any coding skills, just by using tables and writing them out and reading them back in as needed. If you combine this with some more advanced methods like writing JSON files or XML files or CSV files, you can create really intricate and easy to manage (and update remotely!) systems for presets or show control.
Before Folder DAT, there was only darkness! Reading folders of images and movies or watching for file changes on the drive were complicated and difficult to manage. Folder DAT is the saving grace. With all that goodness, it can be overwhelming with all of it’s options. Learn what they do and when to use them and Folder DAT can be much more than just a tool you use to feed your movie player.
The Web DAT is useful for beginners who maybe don’t have their Python skills together yet. It can be an easy way to ping a public API and fetch a bunch of data from it. Usually it’ll be in JSON or XML format, which there are some ways to parse afterwards. Python is better, but for quick and dirty web fetches, there’s nothing wrong with Web DAT.
Box / Sphere / Circle
Learn how to use all the 3D shape operators. They all have funny parameters that might not make sense at first, but once you get used to them, you’ll find working with all the other operators becomes much easier because many operators require more than one input or some kind of geometry bounding box or some kind of collision geometry, etc etc.
Wait didn’t I just say learn the shapes? Why is Grid SOP separate? Well Grid SOP is more than just a shape. It’s more than just a flat plane (He’s more than just a hammer!). It’s a data set of evenly distributed points. I can’t remember the last time I used instancing without either a Particle SOP or a Grid SOP. It’s one or the other, so becoming familiar with manipulating the Grid SOP to get the right amount of points you need for your instancing is extremely useful.
Wait a second, another shape?? Yes! Because Rectangle SOP also has some hidden usages that aren’t really for “3D.” Have you ever wondered how some projects have really crazy compositing systems that seem to difficult to do in TOPs? These kinds of systems are often built with the textures being fed as textures for Rectangle SOPs, which are then positioned in front of an orthographic camera, and then your whole crazy compositing and layout is rendered in one pass. No more need for doing 50 Over TOPs to position every single element of your data viz project onto the screen.
This one secret alone will save you tons of time in your career. If you’re trying to transform something, never use the transform options on the operator that generators the shape. Make a Transform SOP and use that. It’s much more optimized and efficient. On top of that, most people don’t know that Transform SOP has super useful methods of re-centering geometry back on the 0,0,0 origin point and more using the Post-transform parameters. Need to scale it and re-center it? No problem!
I always say if you want to make a lot of money, make a simple project and put a few particles in the background. But lots of users have trouble using Particle SOP. I think the best way to learn it is to dig into the OP Snippets and just get experimenting. Learn about drag, mass, and velocity concepts online, so that you actually know what they do. Play with external forces like metaballs, or internal forces like wind and turbulence. Learn how to control point lifetimes and births. If you feel comfortable with all these elements, then Particle SOP will take you a long way.
Phew! That was quite the shortlist. While you might be thinking of what operators I missed, the key here is to become really proficient with the operators I’ve listed. They may not be the hot operators everyone wants to learn but they’re the operators that get projects done quickly and efficiently. The best way to learn them is a combination of the Wiki, OP Snippets, and plain old experimentation. Use the list well! Enjoy!