Feedback is a topic that comes up a lot within TouchDesigner, but it can feel confusing at first. So, let’s take a deep look at feedback loops to give you a good understanding of how they work.
The biggest takeaway I want you to have by the end of this is not just how to build a feedback loop, but how to think about it. Once the mindset clicks, feedback becomes far more intuitive and opens the door to creating really compelling visual work.
In this post, we’ll rebuild a simple feedback setup from scratch and explore a few common effects to help you understand what’s actually happening inside the loop.
Creating a Moving Circle
We’ll start with a very simple visual: a circle that moves around the screen.
Instead of animating the Circle TOP directly, it’s usually better to treat generators as static sources. The Circle TOP generates an image, and updating it every frame is slower than compositing it onto a larger canvas and transforming it there.
So the approach is:
- Create a Circle TOP as a static generator
- Composite it over a larger background
- Animate its position using transforms
Setting up the background
Create a Constant TOP and set its resolution (for example, 1280×720 so it works well even in the free version of TouchDesigner). Set the alpha to zero so you have a transparent background.
Then composite the circle over the background using an Over TOP. Make sure to:
- Set the Fixed Layer correctly
- Set Pre-Fit Overlay to Native Resolution
This ensures the circle stays centered and isn’t scaled unexpectedly.

Adding Motion with Noise
To move the circle automatically, we’ll use a Noise CHOP.
A useful trick here is enabling Time Slice on the Noise CHOP (in the Common parameters page). Instead of outputting hundreds of samples, it gives you a single value per channel per frame, which is much easier to work with when driving animation.
Next go to the Channel page of parameters, and create two channels, x and y, by listing them as a space-separated set of channel names. TouchDesigner will generate noise for both automatically:

Since noise usually ranges from -1 to 1, we’ll want to scale this down using a Math CHOP so the circle stays on screen. You can manually test the translate values in the Over TOP (transform parameters page) to find reasonable bounds.
Once you’ve figured out your range, go back to the Math CHOP and add these numbers to the “To Range” parameter.
Finish the chain by adding a Null, then reference the x and y channels by dragging them one at a time to the Translate X and Translate Y parameters of the Over TOP.

Now you have a circle that moves randomly around the screen without any manual input:

Building the Feedback Loop
At its core, a feedback loop is exactly what it sounds like: a recursive loop of data feeding back into itself.
In TouchDesigner, you can’t directly wire an output back into an earlier operator (that creates a dependency error). Instead, we use a Feedback TOP, which safely pulls data from the previous frame.
The standard structure looks like this:
- Your source goes into a Composite TOP
- The Composite output feeds into a Feedback TOP
- The Feedback TOP feeds back into the Composite
Drag and drop the Composite TOP to the “Target TOP” parameter of the Feedback TOP, completing the loop:

This loop (not the final output) is where all the interesting behaviour happens.

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.
Choosing the Right Composite Mode
By default, the Composite TOP is set to Multiply, which isn’t very useful for feedback.
Common modes for feedback loops are:
- Over
- Add
When set to Over, every frame draws the new circle on top of everything that came before it. Because nothing is clearing the buffer, the image accumulates over time.
This is similar to drawing every frame without clearing the screen in Processing or OpenFrameworks.

The “Magic” Feedback Wire
There’s one wire in this network that’s especially important: the wire between the Feedback TOP and the Composite TOP.
Anything you place on this wire becomes recursive.
That means the effect is not applied once, it’s applied every frame, to the results of all previous frames.
This distinction is the key to understanding feedback.

Using a Level TOP for Trails
If you place a Level TOP outside the feedback loop and reduce opacity, it only applies once.
But if you place a Level TOP inside the feedback loop and set the opacity to something like 0.9, something very different happens.
Each frame gets multiplied by 0.9 every time it passes through the loop. Over time, older frames fade out gradually, creating smooth trails.
This works because you’re no longer thinking about a single frame, you’re thinking about the lifetime of a frame over time.

Thinking in Terms of Time
A helpful mental model is to imagine a graph:
- The horizontal axis is time
- The vertical axis is the effect strength
Opacity starts high and decays over time. Blur starts low and increases over time. When you combine these effects, you get soft, natural-looking motion.
This way of thinking (what happens when an effect is applied over and over again) is what unlocks creative feedback work.
Recursive Blur
Adding a Blur TOP inside the feedback loop causes each frame to blur slightly more than the last.
As opacity fades down and blur ramps up, the image dissolves smoothly into nothing. This creates a wispy, airy aesthetic that’s very common in feedback visuals.
Recursive Transformations
Transforms are another powerful tool inside feedback loops (using the Transform TOP).
- A tiny amount of translation every frame can feel like wind or motion
- Scaling slightly above 1 makes the image feel like it’s expanding toward the viewer
- Scaling slightly below 1 makes everything collapse inward
Because these transforms happen recursively, even very small values can have dramatic effects over time.

Exploring Other Effects
Once you understand the core idea, you can experiment freely:
- Emboss creates intense moiré patterns when applied recursively
- Edge Detect can generate fluid, outline-based motion
- Tile can explode a single shape into an infinite grid
The key is to reduce effect strength drastically at first. Many operators are far too strong by default when used in feedback.
To see everything we learned today in action, check out our tutorial here:
Wrap Up
The most important lesson here isn’t about circles, noise, or any specific operator.
It’s about recognizing that the feedback wire becomes special because every operation placed there happens repeatedly over time.
Once you start thinking in terms of how a frame evolves throughout its lifetime, feedback stops being mysterious and starts becoming a powerful creative tool.
If you approach feedback loops with this mindset, there’s an enormous amount of visual territory waiting to be explored.