Category Archives: Tutorials & Workshops


Remapping is simple and powerful and there’s one aspect of it quite a few people may not have noticed yet.

A remap image looks something like this:


and the GLSL code to remap (aka the Remap TOP in TouchDesigner) looks something like this:

vec4 remap = texture(sTD2DInputs[1],;
vec4 image = texture(sTD2DInputs[0], vec2(remap));
fragColor = image;

What does the above code do? It takes two texture inputs and uses the second textures red and green colour channels as the uv coordinates for the first texture. It’s commonly used by people who use the stoner component as it means they can do their mapping using the stoners render pipeline and then simply remove the whole mapping tool from the system leaving only the remap texture in place.

Whats very useful about the stoner is that inside its render Geometry COMP it actually gives us another GLSL MAT which simply renders out a 3d objects UV coordinates into red and green colour channels. In the stoner it’s only used for perspective corner pinning and grid warping however there’s no reason to use that shader just with the stoner, we can also use it with anything else we like. For example lets take a sphere with noise and apply this material and we end up with:


…and using our Remap TOP we get the following…


So what can we conclude from this? Quite simply that if you really wanted to you could have the same remap setup you have with the stoner in CamSchnappr, there are some caveats to this but if you can get around them it’s a super powerful setup.

Note: You need to keep your remaps as 32-bit images. 8-bit just isn’t enough to get any kind of smoothness and even with 32 bit you’ll get some jaggies on the edges. To avoid jaggies I tend to add an edge ring into my shader to alias my remappings. If you’re into glitch effects a really cool effect is to take a highly compressed h264 remap image and then use the remap with your video and you get all kinds of datamoshy loveliness.

Optimisation in TouchDesigner

So for the past few months I’ve been putting together a bit of a realtime MediaServer System called Mara. As this is more of a personal project than a work project (our workflow is d3 with touchdesigner capturing in) I went in all guns blazing, no planning and building it as I went along. Every time I saw something I didn’t like with the system I’d simply rebuild the whole thing and because of this process it’s taken a bit longer but is much much neater than if I’d just kept adding and adding to it.

More recently I’ve finally completed most of my system and am now in Optimisation mode.

So here are some of the common tricks that people use when optimising, whether all of them are really beneficial is up for discussion but I’ve been implementing them anyways.

Get rid of references

This is not something I discovered myself but having lots and lots of expressions and references in parameters is not as efficient as exporting to or scripting to those parameters. I decided to do a bit of a test on this and couldn’t really prove it to be true I tried out Idzs test on the TouchDesigner help group, it’s 100x more efficient. Unless you have a huge system you probably needn’t bother with this. Nonetheless I’d be foolish to not just get on and have it in the system. It’s also nice to keep things “stateless” too whereby any op can set a value on any other op quickly. For sliders this isn’t advisable as running a script every frame can get quite heavy.

The 2×2 trick

Back in the olden days when VJ’ing on my macbook pro with 256mb of gpu memory or whatever it had the only thing that would ever be quick was the rate at which your fps dropped as you loaded lots of generative effects. Movies are fine as they can be preloaded and unloaded at your hearts desire however this unfortunately doesn’t seem to be the case for generator TOPs. The solution is fairly simple. If we aren’t using a generator TOP we set its resolution to 2×2 or something very low and suddenly we get all our GPU memory back. There is one caveat to this though, the stutter when loading your entire network into memory is very ugly and can cause problems, so on more modern cards it’s probably advisable to just leave your generative bits and bobs loaded into memory if you can. You can also split things across a couple of TouchDesigner instances and this will certainly help out a bit too.

COMP once

All those overs, multiplies and composite TOPs are never doing you any good really. A very elegant solution to this would be to check out Keith Lostracco’s  Archo-Ps? GLSL composite which uses one op for all your compositing needs. My own method is pretty much the same as that example but I’m generating my GLSL TOP from a bunch of table values, basically python writes the GLSL shader for me. The GLSL TOP scales with the system then and it’s much more manageable.

Maras Timeline

Realtime timelines can be a tricky one to get running fast.

Keep your UI separate

I’d always suggest keeping the UI on another machine or in a seperate instance. It’s handier and much more scaleable if you need to fork out to other machines. It forces you to be a bit more disciplined and helps you when you need to start putting previz tools etc in. I’ve been very careful to take care of the little details in the ui too such as making sure TOPs scale with the UI (but not using expressions) and making sure that CHOPs are kept to a minimum. Only one type of UI element really needs a CHOP and that’s a slider, sometimes even they don’t need them.

mara, 3d viewer, stage, toucdesigner

Maras 3d Viewer is pretty heavy with all of it’s opacity nonsense etc and billion and one switches.

One window to rule them all

Multiple windows are slower than having one big window. The general method most people seem to use is to have their containers and set their positions to wherever they need them in the window. For Mara I’m just throwing in a d3 style feed mapper so you can throw things wherever you want and split them up nicely.

TOP colour channel trick

Got a black and white movie? Then head to the common page and set your pixel format to 8bit fixed (R) and you’ve just removed everything except the one channel you need. This wont work with transparency but is really useful for fast UI elements.

Keep away from SOP transforms and materials

Why transform in a SOP when you can transform in a Geometry COMP? The reason for this being that transforms on the COMP supposedly happen on the GPU whereas transforms on the SOP level happen on the CPU. (or so I’ve been told) I’m actually very guilty of using transform SOPs because I’m a lazy noodler but it’s definitely one worth noting.

Applying a material to a COMP is much faster than to a SOP too.

SOP to DAT is also apparently slower than a SOP to CHOP so for SOP deformations etc too you’re better off using a CHOP than a DAT.

General Rendering Efficiency

Got more than one camera on one scene? Then use render selects rather than having 5 render TOPs. They’re much more efficient.
Projecting your project onto a building? Set your anti-aliasing to 2x rather than 4x and you’ll pretty much half your memory load.
Transparency seems to be a wee bit heavier than you’d like. Try and keep away from it
Use instancing in the Geometry COMP rather than the copy SOP.

Chain reorganisation

Only cook what you need to. there’s no point in cooking more than required so if you have a level thats cooking and it can go further up the chain so it no longer needs to cook then put it further up the chain.

Anything I missed?

This article is kind of a work in progress so if there’s anything I missed you’d like to share let me know and I’ll add it in.

TouchDesigner Beginner Workshop in London


Image courtesy of ab30 on the Derivative Forum.

It’s time for another London workshop. This is a two day 12 hour workshop on TouchDesigner with Richard Burns on 18th/19th June 2016. The price for the full event is £160. To purchase a ticket you can use the form below below details. This workshop will focus more on creation of content and VJing than building of systems which the last one was quite strongly using. This workshop will be held at Projection Artworks new headquarters.

Note: If the event is sold out then you can register interest by emailing Also there is the comments/suggestions section of this post.

Day One (6 hours) – Introduction to TouchDesigner 088

– TouchDesigner user interface and an introduction to operators.
– Working with different operator families, generators and filters.
– A simple project using all operator families to create an audio reactive visual.
– Using Live controllers, Gamepads, MIDI devices and OSC.
– An introduction to Python and how Python works within TouchDesigner.

Day One Evening

On the evening we will likely go to the local pub to talk about projects, general catchup etc. The invitation to this extends to anyone and everyone who’d like to come as this’ll likely be a big meetup. We’ll be in The Vine from 6.30 in Kentish Town.

Day Two (6 hours)- TouchDesigner 088 Techniques & Workflow

– Hooking TouchDesigner up to Resolume via Spout
– Movie Playback and rendering techniques for rendering loops.
– An in-depth look at SOPs and what can be achieved with them.
– An overview of the Animation Component and keyframing techniques.
– An in-depth look at audio analysis using CHOPs.

Location, Date and Time: 

Date: 18th-19th June
Time: 10.00am-6.00pm both days.
Projection Artworks
Unit 400, Highgate Studios
53-79 Highgate Road


A Laptop with TouchDesigner FTE 088 and mouse
It would also be recommended to have a copy of Resolume for part of this workshop although it is not vital
Knowledge from First things to know about TouchDesigner


Purchase Here:

this workshop has now finished.

Keeping in Touch 02 – Particle Attractors & Kinect

TouchDesigner Community News – January

A year ago if somebody asked me where to go to talk all things computational and in my case TouchDesigner based I’d look at them blankly and maybe just point them in the direction of the Derivative forums and hope that they find what they need via the much used search function. Asking questions would sometimes yield responses quite fast but I remember two years ago when learning was extremely slow due to lack of tutorials and I guess you could say lack of community togetherness.

Well no need to worry now as times are changing, over the past year I’ve encountered hundreds of people now using TouchDesigner and at the last London Workshop we decided to do something about it.


TouchDesigner Help Group – Facebook

We created the TouchDesigner help group which can be found here. The group has been a massive success and has dramatically sped up peoples learning processes as people log into facebook and see there’s a new post and check it out straight away, over 100 people have joined now so I’m really pleased it’s proving to be helpful. If you haven’t joined yet I strongly suggest checking it out.

TouchDesigner Google Hangout – Google +

The TouchDesigner Google Hangout is looking to be pretty busy, for those of us in the GMT area it’s quite a difficulty as it’ll be starting at 4am but I might jump on there early (and I imagine a few others will) so no doubt it’ll end up being from 10pm GMT time where the Europeans can have a bit of banter all the way through to 4am which is where the actual structured hangout starts, we’ll see…maybe we can do some speed artworks whilst we wait. Details of the hangout are below.

From tgreiser on the Derivative forum:

Calling interested parties to participate in online peer education with screen sharing via google hangout or skype.

* Learn about TouchDesigner and/or share your knowledge
* All skill levels welcome
* Q & A session
* Show and tell about your projects
* Short educational presentations
* Component sharing

Tentatively the first meetup will be Wed Jan 15, at 8pm PST via google hangout – here
If it goes well I would like to meet every other week for maybe an hour or two.

“Make Art Now” – Realtime/Generative/Interactive Art Collective – Facebook

Right after I’d setup the TouchDesigner help group Louis D’Aboville invited me to join a rather wonderful facebook group that each month has a themed challenge for it’s members to complete. People then vote on the artworks they like and there’s a winner. This months theme is Minimal and so far I’ve seen some pretty amusing posts in relation to it. It’s a very similar concept to the independent gaming scenes “Ludum Dare” competition, Actually go check that out too. This is a really good resource as there are people who use all the different software packages/programming languages you could imagine. You can find the Make Art Now group here

VJ Union Group – Facebook

For those of you inclined towards VJ’ing there is a main global VJ Union group alongside a host of smaller groups aimed at local areas or sharing. These are VERY active groups with a lot of inspiration and resources posted daily. These are listed in this rather long list below, they’re all quite self explanatory. (Thanks to Grigori for letting me know where they all are, that’s a lot of sub-groups)

The Global Group can be found here

Content specific/Regional Groups:

Loops (Sell & Share) | Showreels |  Europe | Australia | USA | Canada | Russia | Middle East | Israel | Africa | Asia | Mexico | South America | Sweden


Matthew Ragans Blog – Website

I’d never known about it until I just published this post but here’s a wonderful resource for learning, including a lot of Matthews work so this stuffs as real as it gets, check out his blog here. (Thanks for mentioning this Ali)

Ian Cassels tutorials – Vimeo

Ian came to visit me in London to do some one to one tutoring in the ways of TouchDesigner, I uploaded one of the videos to vimeo. What was more remarkable though is that Ian has started his own tutorial series, it’s all a bit dutch to me (seriously)  but you can find them on his vimeo channel here.

Also if you want to see the one featuring myself that’s on using the Web DAT thats here.

Momo the Monsters Sprite Tutorial – Vimeo

I’ve been watching a lot of amazing external device demos coming from Momo (There’s a great kinect headtracking demo that I can’t seem to re-locate right now) but heres a tutorial from him explaining how to create custom sprites. That’d be here.

Workshop: Two day introductory/intermediate workshop in TouchDesigner 088

Image courtesy of ab30’s rather wonderful layout comp example from the TouchDesigner forum

Visualesque are excited to announce our first workshop which will be located in central London. This is a two day 12 hour workshop on TouchDesigner with Richard Burns on 12th/13th October 2013. The price for the full event is £160, however if you are a student with proof of ID there is a student discount available. To purchase a ticket you can use the form below, full details are below that. The techniques in the tutorials will all apply to touchdesigner 077 as well as 088 and this workshop will fully support those with 077 licenses.

Note: If the event is sold out then you can register interest by emailing Also there is the comments/suggestions section of this post.


A Laptop with TouchDesigner FTE 077/088 and mouse
Knowledge from First things to know about TouchDesigner (Optional)


Day One (6 hours) – Introduction to TouchDesigner 088

– TouchDesigner user interface and an introduction to operators.
– Working with different operator families, generators and filters.
– Practical: A simple project using all operator families to create an audio reactive visual.
– Live controllers, Gamepads, MIDI devices and OSC.
– Practical: An introduction to control panels and their use with live controllers.

Day Two (6 hours)- TouchDesigner 088 Techniques & Workflow

– Tips and techniques for network optimization and layout.
– An introduction to replicators, render picking and importing 3D models.
– An overview of the Animation Component and keyframing techniques.
– Practical: A more complex project using the techniques learned above by creating a simple projection mapping system with show control.

Location, Date and Time: 

Date: 12th-13th October
Time: 10.00am-6.00pm
Room: TBC
Birkbeck University, Malet Street Building
Malet Street