Skip to main content

Getting More out of the CHOP Execute DAT

· 8 min read
Matthew Ragan
Pixel Pusher

One of the most challenging elements for me to wrap my heard around when using TouchDesigner was the Execute DATs. When scripting was still new to me, it was hard to understand where to start, or what to write. It was also hard to understand what kind of options I had when dealing with the execute family of DATs. Let's take a closer look at some of the interesting elements that you can extract from a CHOP Execute DAT, and hopefully learn a few things along the way.

Production image

Make a Copy of that Table

· 2 min read
Matthew Ragan
Pixel Pusher

When working with DATs there are often a whole host of operations that we want to be able to take advantage of that don't make sense when we initially look at the documentation on the TouchDesigner Wiki. One simple example of this is how copy operations work. A clear example of this might be how copy operations work. For example, I have a table full of information but I'd like to make a copy of it for another part of my network. If we look at the Table DAT Class wiki page we see this:

copy(DAT)

Copy the text or table from the specified DAT operator. OP – The DAT operator whose contents should be copied into the DAT. How can we make sense of this?

Let's start by first setting up a simple table – you can fill it with any information that you'd like. We also want an empty Table DAT, as well as a Text DAT.

Production image

Drop Scripts

· 6 min read
Matthew Ragan
Pixel Pusher

We all love some drag and drop action – we use it all the time, and in fact have often come to expect it to be a feature in nearly every application we interact with. With that in mind, how can we think about integrating some drop actions into our work in TouchDesigner? Well, today is your lucky day! Here we're going to look at some of the fundamental ideas that will help you get started with much more complicated drag and drop functions.

Anatomy of a Drop Script

Let's start by setting up a container to perform some actions based on when we drop a file onto it – this will help us get our bearings, and see how dropping works. First we need to set up our container to work with a drop script. First add a new container to a network, next let's go to the Drag page of the container, and look at the sub page labeled "On Dropping into this Component."

Production image

Choosing a Directory

· 4 min read
Matthew Ragan
Pixel Pusher

Sometimes when you're building an interface for an application you suddenly realize that you need what aught to be a simple feature. Time and again I've found myself wanting to be able to quickly select a directory for TouchDesigner to use for a bin of images or movie files. This is a pretty simple feature to add to your network, and we can do this with just a simple panel execute DAT and a few lines of Python. Let's take a closer look at what goes into make this happen.

To get started we need a few initial ingredients in our network. We need a button (or something to trigger our script), a Folder DAT, and a Panel Execute DAT.

Production image

Understanding Referencing Part II | TouchDesigner

· 7 min read
Matthew Ragan
Pixel Pusher

I love me some referencing. The more you work with TouchDesigner, the more you'll find that you need a solid understanding of how referencing connects the various parts of your network. Better still is getting a better handle on how Python scripting works in TouchDesigner – especially dot notation. At the heart of what we're after is making sure that our networks can start to feel a little more interconnected. Hard coding values makes for tedious programming, especially if you're building something you'd like to reuse. By starting to think about how to build some logic into the system we're making we begin to build reusable tools. If you're still getting a handle on how referencing works, then it's a good idea to get started here (Understanding Referencing) to get your bearings.

Production image

Rendering | TouchDesigner

· 13 min read
Matthew Ragan
Pixel Pusher

If you spend much time programming in TouchDesigner, eventually you'll want to start doing some real-time rendering. When dealing with rendering some 3D geometry we need to get a few pieces of our network correctly set-up to get started. There are, of course, lots of different methods for rendering but we can get started with some rendering basics.

Production image

Understanding Referencing | TouchDesigner

· 12 min read
Matthew Ragan
Pixel Pusher

Referencing is one of the most powerful tools at the programmer's disposal in TouchDesigner. Referencing creates a direct link between two or more floats or integers. This allows you to link operators that are outside of their respective families – normally you can only connect CHOPs to CHOPs and TOPs to TOPs, but referencing allows you to create connections between nearly any operators. There are a number of way to create these links with references or expressions. In many of the other posts that I've written I often write about using expressions and references, but haven't taken much time to talk in depth about what this is, how how it all works. Let's change that.

Production image

Let's Make this Table Data Move | TouchDesigner

· 7 min read
Matthew Ragan
Pixel Pusher

Working with live streaming data is about as good as it gets when it comes to programming – this is especially true if you're working on a project that looks to create a recognizable relationship between live data and media. What, then, is a person to do when placed in a situation without access to a live source of data? Whatever the project, the best way to tackle this problem is to find a source of prerecorded information. If you're working on something like motion tracking, using a pre-recorded video is an excellent solution to this problem. What about sensors that aren't image based? What if I'm dealing with a series of floats? What happens if those floats just come to me in a table? How can I take a series of recorded data points that live in an text file and make them move? That's exactly one of the problems that came up for me recently, and I've got a handy trick that will make it easy to work with a data set in a table as though it were streaming into your TouchDesigner network live.

Production image

Geometric Landscapes | TouchDesigner

· 13 min read
Matthew Ragan
Pixel Pusher

Working on a new piece to premiere in Mexico I spent a lot of time experimenting with creating landscapes and backgrounds. Searching for a way into this exploration I wanted to play with the idea of instancing objects in 3D space, and the illusion of moving and shifting planes in space. This is already a popular visual style, and I was wanted to try my hand at exploring what it might look like to make something like this in TouchDesigner.

Production image

Inspired by Rutt Etra | TouchDesigner

· 18 min read
Matthew Ragan
Pixel Pusher

Back when I was working on The Fall of the House of Escher I became obsessed with live z-displacement in the media. That particular show was wrestling with questions of quantum physics, time, reality, and all manner of perceptual problems and so it made a lot of sense to be love the look and suggested meaning inherent in the displacement of an image in a third dimension. This particular technique is perhaps most well known to us because of the Rutt Etra Video Synthesizer. This video synth was an attempt to begin manipulating video in same manner as sound was being manipulated in the 1970s, and was truly a ground breaking examination of our relationship to video – live video especially. One of the most famous elements of the Rutt Etra Synth was z displacement, the change in the depth of an image based on its luminance.

Production image