TouchDesigner

Here you’ll find a collection of various tutorials and examples of what my work with TouchDesigner has looked like. In the spirit of full disclosure, I’m constantly learning new techniques and approaches when it comes to programming with TouchDesigner, and programming in general. What does that mean? Well, it means that some of these resources are better than others. These materials also cover a wide berth of material, and don’t always remain in singular operator’s domain – I rarely only talk about TOPs or CHOPs because problem solving often involves how those different methods connect. In general, these tutorials are also mostly text based though there are an increasing number that are now video. On the page for any given video tutorial you should see a list of core concepts in the lecture / example so you have a sense of what you’re likely to hear me talk about.

Table of Contents


How to Use this Resource

How to best use this page probably largely depends a lot on who you are. Are you brand new to TouchDesigner and looking for something that will help you from the ground up? Or are you someone who has been tinkering for a bit, and just needs some inspiration. Maybe you’re already feeling accomplished, but want a push in the right direction. What you bring with you might well help you decide where to start. It’s difficult for me to know exactly how to help, but here are some general ideas to get you started.

Brand New to TouchDesigner

If you’re brand new to the TouchDesigner environment, welcome!

There’s lots to cover, but don’t worry there’s plenty of time. First things first, it’s often useful to make sure that you’re up and running with all the tools you need. First you’ll want to make sure you’re using hardware that meets all of the minimum specs for Touch. Head over to the wiki and make sure you’re all set up with a machine that will work, and with a key to get started – non-commercial is just fine.

This is also a great time to make sure that you’ve got the latest drivers for your video card. While you’re at it, a good spruce up and some computer spring cleaning are always a great thing to do. Make sure you’ve got some dedicated space for your projects, as well as some assets to play around with.

At some point you’ll start working with other people, and for that github or bitbucket are great tools for working with git. What’s git you say? Take a look here to get a sense of what git is all about:

You’re also going to want a good dedicated text editor. My personal favorite is Sublime, but you might find that Notepad++ or Microsoft Visual Code is right for you.

Now we’re ready to dive in. If this is your first time using Touch, I’d recommend starting with the Yale Workshop Videos. There are a lot of things covered in this series, but it should help you get up and running the fastest.

After you’ve done a quick overview, check out AME 394. This course was originally offered to undergraduates at ASU’s Arts Media and Engineering School to a class of students studying Digital Culture. In this class nearly every student was new to TouchDesigner. As such this course is a ground up start that gives you a basic sense of how to work in Touch. In hindsight there are a few things I’d do differently now, but it’s still a good starting place if you’re new to Touch. These tutorials come straight out of a class that was taught in person (I would also record the lectures the night before  – that way I got to practice, and had a resource for students if we went too fast in class).

After AME 394, it’s worth reading though the Python in TouchDesigner tutorials. Thinking about how to use Python in Touch creates all new sorts of opportunities, and while it might feel a little boring at the git go, it’ll make a huge difference for you in the long run. You don’t have to do these all at once, but it will help to do them in order.

Next look at THP 494. This course was offered through the School of Film, Dance, and Theatre at ASU. Largely focused on new media forms for live performance, this series looks at the practicalities of making art for performance – and largely at making art with data or noise. These build on one another, but you don’t necessarily have to go in order (the exception being the ones that are a part of a series).

The world is your Oyster. From here you might start looking through the category of in depth concepts. These largely focus on a question or problem, and then look at a possible solution. There’s no right order for those, and they really come down to what’s interesting to you.

Your ToDo List

  • Check your specs
  • Make sure you’ve got a license key – Non-Commercial keys are free
  • Update your drivers
  • Join github or bitbucket
  • Download a dedicated text editor
  • Work your way through a class or two:
    • AME 394
    • Python in TouchDesigner
    • THP 494
  • Explore

The Tinkerer

Knowing where to get started is always hard. If you’ve already been doing some tinkering in Touch, it probably doesn’t make a lot of sense to start with AME 394. Chances are that you already know a good bit of what you’ll find in there. You’re welcome to get started there, but it might feel too slow to get started. THP 494 might be just right though. This is a great place to do a little more fun exploring and get some ideas cooking.

Next you might want to look over using Python in Touch. You’ve probably done this a bit already, but looking more closely or giving yourself a Python intensive might be a great next step. Using python opens up a whole new area of opportunity, so if you’ve been hesitant to beef up on your Python this might be the time.

If you’re not using git yet, that’s okay… but it’s probably time to start. There are a growing number of examples up on the web, and to really dig in git is going to help a ton.

Let’s be honest, that all might be good and well… but you might just be looking to explore. That’s okay. If that’s where you are, head over to github and download the forum examples that are there: td_fb_forum_examples. Once you’ve downloaded and extracted the contents of this repository look at the example_explorer.toe. Here you’ll find over 100 tox files that you can browse through for various examples and inspiration. Not all of them contain read me files, but many do. Just about all of these come out of actual conversations on the Facebook help group, or from the TouchDesigner forums.

Or you might start looking through the category of in depth concepts. These largely focus on a question or problem, and then look at a possible solution. There’s no right order for those, and they really come down to what’s interesting to you.

Your ToDo List

  • Work your way through a class or two:
    • THP 494
    • Python in TouchDesigner
  • Explore

Looking for the Right Direction

You’re a hard one. You don’t know what you need, but you know what you don’t. Hmmm. Well, first things first, start with the example explorer. Head over to github and download the forum examples that are there: td_fb_forum_examples. Once you’ve downloaded and extracted the contents of this repository look at the example_explorer.toe. Here you’ll find over 100 tox files that you can browse through for various examples and inspiration. Not all of them contain read me files, but many do. Just about all of these come out of actual conversations on the Facebook help group, or from the TouchDesigner forums.

If that doesn’t do it for you, you might look at the in depth categories.

Maybe you’re looking to level up by building whole applications. That’s great. You might start by looking at the long-form post about Building a Calibration UI. “But I don’t need to build a calibration UI….” okay, that’s good. Chances are, however, that there might be something in there that relates to what you’re after. Or not. Skim it and see if anything in there speaks to you. If you’re really coming up empty handed, use the contact me link at the top of the page. I’m usually pretty busy these days, but try to at least respond to emails within a week.

Your ToDo List

  • Explorer
  • Browse through the in depth concepts

Full Courses

Support materials for the courses I’ve taught at Arizona State University:

AME 394  | Compositional and Computational Principles for Media Arts

THP 494 / 598 | Generative Media for Live Performance

Python in TouchDesigner

Tools to Download from Github

Events

Workshops

Miscellaneous Support Documents

An ongoing list of the contributions I’ve made to the Help Group and Forum
A Cheat Sheet for Common Operations
A list of TouchDesigner Keyboard Shortcuts


In Depth Examinations of Concepts

Interface Building

Real Time Rendering

Scripting

Working with Midi

Open Sound Control

Version Control

Guest Posts

GLSL


Projects and Approach

Building a Calibration UI

You’re finally ready to do a big gig, or a medium gig, or just a gig. After months of practicing and playing you’re feeling good about your creative work, and you’ve got a solid idea for the artwork in your installation. There is, however, one major catch. You have to calibrate a bunch of a projectors… five. When you started working with TouchDesigner you were initially excited about the artwork and interactivity, but now suddenly you’re facing the reality that you need to build out some tools (or at least modify some existing ones), put together a UI, and think through how you’re going to organize a project that goes beyond just experimentation and exploration.

Revel in this moment; it’s the start of a whole new set of challenges and considerations, and it’s also the beginning of a move away from tinkering to considered building.

In seriousness, where is this coming from? Recently I had the opportunity to help a team at a University that was putting together an installation in South America. Unfortunately, I didn’t have the time to do the whole project but I did have enough bandwidth to help get a calibration interface and pipeline set up so their creative developer could focus on the artwork and user interaction elements. Building calibration interfaces isn’t sexy on the face of it, but when calibration is working well it takes a tremendous amount of pressure off the creative end of the project. It also allows us to define some fixed elements in the project, establish some modular elements, and define an architecture.

Mantarraya

In late March of 2014 I got an email from the organizers of Proyecta in Peubla Mexico. Due to some unforeseen circumstances they were down an artist, and wondered if I’d be interested in collaborating on a new piece for their projection festival May 9th, 10th, and 11th. The site they had in mind is called the Mantarraya (Manta-ray). This large public park overlooks down-town Puebla, and is a rolling expanse 75 meters square of wooden decking that rise and roll in true surrealistic form. This rolling wooden landscape feels almost ocean like as you sit on the benches – the horizon and the deck creating a disorienting vision of a modernist vista. Interspersed throughout the deck are trees and large pillar lights that further accent the strangely haunting topography in front of you.

Inside Wonder Dome

In approaching some of the many challenges of Wonder Dome one of the most pressing and intimidating was how to approach programming media playback for a show with a constant media presence. One of the challenges we had embraced as a team for this project was using Derivative’s TouchDesigner as our primary programming environment for show-control. TouchDesigner, like most programming environments, has very few limitations in terms of what you can make and do, but it also requires that you know what it is that you want to make and to do. Another challenge was the fact that while our team was full of bright and talented designers, I was the person with the broadest TouchDesigner experience. One of the hard conversations that Dan and I had during a planning meeting centered around our choices of programming environments and approaches for Wonder Dome. I told Dan that I was concerned that I would end up building an interface / patch that no one else knew how to use, fix, or program. This is one of the central challenges of a media designer – how to do you make sure that you’re building something that can be used / operated by another person. I wish there were an easy answer to this question, but sadly this is one situation that doesn’t have simple answers. The solution we came to was for me to do the programming and development – start to finish. For a larger implementation I think we could have developed an approach that would have divided some of the workload, but for this project there just wasn’t enough time for me to both teach the other designers how to use / program in TouchDesigner and to do the programming needed to ensure that we could run the show. Dan pointed out in his thesis paper on this project that our timeline shook out to just 26 days from when we started building the content of the show until we opened.

Sculpture

In the ever growing list of tools that I’m experimenting with Derivative’s TouchDesigner is a tool that time and again keeps coming up as something that’s worth learning, experimenting with, and developing competencies around it’s work flow. TD is a nodal environmental called a network. Inside of the network nodes can be directly connected by by exporting parameters.

The Container, Control, and Final Output

In thinking about how to meet the objectives that I had for this piece, one of my central questions was how to make sure that I could move through three cued scenes – either with manual or automatic triggers. I knew that I had three different aesthetic environments that I wanted to move through. I explored several different options, and the one that ultimately made sense to me given my current level of proficiency (at this point I had only been programming in Touch for a total of three weeks) in TouchDesigner was to use a cross fading approach.

The Individual Composited Scene

There are always large questions to answer when thinking about creating an interactive work: Who is it for? What does it look likes? What are you trying to communicate? How much instruction do you provide, how little instruction do you provide? And on and on.  As I started to think about how this piece was going to work as an installation rather than as a performance apparatus, I started by thinking about what kind of data I could use to drive the visual elements of this work. One of the sensors that I knew I could easily incorporate into my current sculptural configuration was a an iPod Touch. The Touch has an on-board gyroscope and accelerometer. After a conversation with my adviser (Jake Pinholster) we decided that this would be a direction of exploration worth pulling apart, and from there I went back to TouchDesigner to start thinking about how I wanted to incorporate live data into the piece I was making.

The Underlying Geometry

One of the benefits of working with TouchDesigner is the ability to work in 3D. 3D objects are in the family of operators called SOPs – Surface Operators. One of the aesthetic directions that I wanted to explore was the feeling of looking into a long box. The world inside of this box would be characterized by examining artifacts as either particles or waves with a vaguely dual-slit kind of suggestion. With that as a starting point I headed into making the container for these worlds of particles and waves.

Time Trigger

Creating a time based trigger in TouchDesigner can be accomplished a ton of ways, and this is just one of them