Missing inspiration? Here are some ideas to help you find it. Take a look at these five prompts for your TouchDesigner projects and let’s get creative.
Sometimes a lack of inspiration just happens. Maybe you’re already developing a project but hit a dead end. Or maybe you’re still in the early stages and don’t know how to begin. In my personal opinion – and experience – we often struggle with creativity simply because we approach things the same way every single day.
Each of us has our own mental routines, but every now and then those routines can limit us. So when we need some fresh air, we can use prompts to boost our creativity. Let’s take a look at five examples.
Use as Few Operators as Possible
Simplicity is the ultimate sophistication (Leonardo da Vinci)
Minimalism can be embraced in every aspect of our lives, and TouchDesigner is no exception. So when we’re searching for fresh perspectives, applying minimalism to our projects can open the door to interesting ideas. What about creating a patch with just four operators?
The idea is to visualize a dictionary definition. First, we create a Text TOP. Then we add a Web Client DAT and set the URL for the request. For this example, I am using the Free Dictionary API, a lovely project that allows us to retrieve word definitions via API.
This is the structure of the API:
https://api.dictionaryapi.dev/api/v2/entries/en/cat
To dynamically change the word, we can simply reference our Text TOP at the end of the URL. This is the result:
“https://api.dictionaryapi.dev/api/v2/entries/en/” + op(‘text4’).par.text
To get the JSON data, we can add this script in the Web Client callback Text DAT:
import json
def onConnect(webClientDAT, id):
return
def onDisconnect(webClientDAT, id):
return
def onResponse(webClientDAT, statusCode, headerDict, data):
body = data.decode('utf-8')
clean = op('text3')
clean.clear()
clean.write(body)
return
The script stores data inside a Text DAT. Finally we connect it to a JSON DAT and we apply this path filter:
$[0].meanings[0].definitions[0].definition
So, when we write a word in the Text TOP and make a new API call request in the Web Client DAT operator, we get the word definition.
That’s all! A simple visualization with just four operators.

Make Mistakes
Honor your mistake as a hidden intention (Brian Eno)
Intentional mistakes can sometimes open the door to new inspiration. In fact, the whole glitch culture was essentially born from this idea. So let’s make some nice glitchy visuals.
The starting point of the patch is the WebBrowser component (you can find it in the Palette), which plays a one-hour YouTube video of 80s commercials. We simply insert the URL in the parameters and open the video in full screen. Then we add a Null TOP, convert pixels to samples with a TOP to CHOP operator, and select the red and blue channels.
The red channel goes into a Noise CHOP, is converted back to a TOP, and is dynamically cropped using the Noise values. The blue channel is used to reorder the alpha channel with a Reorder TOP. Finally, we composite the original video stream with the modified signal to create a nice effect that resembles the kind of signal interference typical of the analog televisions of my childhood.
Use Code
It works on my machine (anonymous programmer)
OK, don’t make that face. Coding can actually be a lot of fun, and it allows us to think differently when approaching a new project. Python is our friend and, thanks to its clarity and data structures, it can lead us to unexpected creative results.
In this example, I wanted to visualize the DNA helix structure using Python inside TouchDesigner. Luckily for me, I found a well-structured Python script on Stack Overflow that I adapted for my needs.
So, here’s the code:
import math
phaseA = math.pi/1.5
phaseB = 0
step = math.pi/80
num_points = int(30.0 / step)
table = op('table1')
table.clear()
table.appendRow(['point', 'x', 'yA', 'zA', 'yB', 'zB', 'helix'])
x = 0.0
point_index = 0
while True:
x += step
if x > 30.0:
break
yA = math.sin(x + phaseA)
zA = math.cos(x + phaseA)
yB = math.sin(x + phaseB)
zB = math.cos(x + phaseB)
table.appendRow([
point_index,
x,
yA,
zA,
'',
'',
'A'
])
table.appendRow([
point_index,
x,
'',
'',
yB,
zB,
'B'
])
point_index += 1
The script generates the points for the two DNA filaments, which are stored inside a Table DAT. We then create two Sphere SOPs, instance them using the data from the Table DAT, render them, and composite the results. To add some extra vibe, we can rotate the filaments with a simple CHOP workflow.
And voilà! An elegant visualization of the DNA helix.
Get Our 7 Core TouchDesigner Templates, FREE
We’re making our 7 core project file templates available – for free.
These templates shed light into the most useful and sometimes obtuse features of TouchDesigner.
They’re designed to be immediately applicable for the complete TouchDesigner beginner, while also providing inspiration for the advanced user.
Use Text
I can’t believe it! Reading and writing actually paid off (Homer Simpson)
TouchDesigner offers so many operators for creative purposes that sometimes what we really need is to go back to the roots. What I mean is that we can kickstart a project by focusing on basic elements, such as text. Let’s look at an example.
We create a Text SOP and duplicate it 8 times using a Copy SOP. Then we connect it to a Texture SOP and render it. We use a Phong MAT and a Ramp TOP as the color map. On the CHOP side, we create a Pattern CHOP and a Noise CHOP, merge them, and visualize their history with a Trail CHOP. We use this data to drive rotation, translation, and scaling of the text copies along the Y axis. We also use the same data to modify parameters in the Texture SOP and to instance the geometry along the Y axis.
Finally, we add some blurring and caching operations before compositing everything together to achieve our final visual effect.

Use Only One Operator Family
Rejoice with your family in the beautiful land of life (Albert Einstein)
Constraining our workflow to a single operator family can be surprisingly creative. It forces us to rethink the entire project with a completely new logic, which can lead to interesting results.
So, since the POP operator family is the big recent news, why not create a project using only POPs?
Here are some articles to help you get more familiar with POPs:
- POPs: The New Operator Family in TouchDesigner
- POPs in TouchDesigner: FAQ
- Using POPs to Drive Audio Reactive Visuals
- A Detailed Look at the Trail POP in TouchDesigner
- SOPs to POPs: Reimagining Geometry Workflows
- Setting up Feedback with TouchDesigner POPs
Wrap Up
When inspiration is missing, we need a strategy to bring it back. As we have seen, there are several ways to kickstart your next TouchDesigner projects with unconventional perspectives and out-of-the-box ideas. Since there is no perfect recipe, start experimenting on your own, find your path, make mistakes, and repeat. As always, the sky is the limit.