Your First Network
Build a complete, animated noise network from scratch — Noise TOP, Level TOP, a CHOP-driven parameter, and a working output — in under 15 minutes.
Starting Fresh
Open TouchDesigner. If an existing project is open, go to File > New to create a blank .toe file. The Network Editor will be empty except for a single Out TOP that TouchDesigner places by default in new projects. Leave that Out TOP alone for now — you will wire into it at the end.
Before building anything, press Ctrl+S and save the file somewhere sensible — a dedicated project folder on your desktop or in Documents/TouchDesigner/. Get into the habit of saving early and often. TouchDesigner does not auto-save.
Step 1 — Add a Noise TOP
Press Tab in the Network Editor. The operator search panel opens. Type noise and you will see several results: Noise TOP, Noise CHOP, Noise SOP. Click Noise TOP (the purple one).
The Noise TOP appears on the canvas. Click it once to select it, then look at the Parameter Dialog on the right. You will see tabs across the top of the dialog: Noise, Image, Common, Info.
On the Noise tab:
- Type: Try different values from the dropdown.
Sparseproduces an organic, smooth result.Alligatorcreates a cracked-skin pattern. Leave it onSparsefor now. - Amplitude: 1 is fine.
- Period: Try dragging the slider. A larger period makes the noise blobs larger and more spread out.
- Translate Z: Notice that as you drag this slider the texture animates. The Noise TOP is a 3D noise function sliced on a 2D plane — moving along Z is how you animate it over time.
To make the noise animate automatically, you will add an expression in a later step. For now leave Translate Z at 0.
Look at the thumbnail on the Noise TOP tile — it shows a greyscale animated texture. This is the output of the operator.
Step 2 — Add a Level TOP
Press Tab again and search for level. Click Level TOP.
The Level TOP appears on the canvas. Now wire it: click and drag from the output dot on the right side of the Noise TOP to the input dot on the left side of the Level TOP. A wire appears connecting them.
Click the Level TOP to see its parameters. On the Level tab:
- Brightness: drag this up. The image gets brighter.
- Contrast: drag this up. The mid-tones expand outward — darks get darker, lights get lighter.
- Gamma: values below 1 brighten mid-tones; values above 1 darken them.
- Invert: toggle this on. The bright and dark areas swap. Toggle it back off.
- Black Level / Clamp Minimum: useful later for controlling the floor of the signal.
Set Brightness to 0.5 and Contrast to 1.5 for a punchy, high-contrast noise output.
Step 3 — Wire into the Out TOP
Find the Out TOP that was pre-placed in the network (if you cannot find it, press A to frame all operators). Wire the output of the Level TOP to the input of the Out TOP.
The Out TOP is what a parent COMP displays when it looks inside this network. In a new project, the top-level Out TOP determines what appears in the main viewer. You should now see the noise texture in the Out TOP’s viewer.
Middle-click the Out TOP’s viewer to see the result full-screen. Press Escape to return to the Network Editor.
Step 4 — Animate with a Time Expression
Select the Noise TOP. In the Parameter Dialog, find the Translate Z parameter on the Noise tab.
Right-click Translate Z and choose Expression. The parameter field turns into a text box. Type:
absTime.seconds
Press Enter. The parameter label turns green (indicating an active expression) and the noise texture immediately begins animating — sliding through 3D noise space at one unit per second.
absTime.seconds is a global variable available everywhere in TouchDesigner’s Python expression context. It returns the number of seconds since TouchDesigner was launched, increasing every frame. Multiplying it changes the animation speed:
absTime.seconds * 0.3
This slows the animation to 30% of the original speed. For a faster, more agitated texture:
absTime.seconds * 2.5
Try a few values and pick one that feels right for your taste.
Step 5 — Drive the Level TOP with a CHOP
Hard-coding the brightness as a fixed number is fine for testing, but one of TouchDesigner’s core strengths is having live data drive parameters. You will use a Constant CHOP and a Math CHOP to create a value that feeds into the Level TOP’s Brightness parameter.
Add a Constant CHOP:
Press Tab, search constant, choose Constant CHOP (the green one). In its parameters, you will see chan1 with a value of 0. Change chan1’s value to 0.5.
Add a Math CHOP:
Press Tab, search math, choose Math CHOP. Wire the output of the Constant CHOP into the input of the Math CHOP.
Click the Math CHOP. On the Mult-Add tab:
- Multiply: set to
1 - Add: set to
0
The Math CHOP is just passing the value through for now. Later you could wire an LFO CHOP here to make the brightness pulse rhythmically.
Create a CHOP Reference: Click the Level TOP to select it. Hold Ctrl and drag from the Math CHOP’s output dot onto the Brightness parameter in the Level TOP’s Parameter Dialog. A dialog appears asking you to confirm the reference. Click OK.
The Brightness parameter is now linked to the Math CHOP’s chan1 value. The parameter field shows a yellow highlight indicating an active CHOP export. Try changing the value in the Constant CHOP’s chan1 field — the brightness of the noise texture changes in real time.
Alternatively, you can type the reference manually. Right-click the Brightness parameter on the Level TOP, choose Expression, and type:
op('math1')['chan1']
This Python expression reads channel chan1 from the operator named math1.
Step 6 — Organise and Name Your Operators
A network that works is good. A network you can return to three weeks later and understand is better.
Rename operators: Double-click an operator’s name label (the text below the tile) to rename it. Give your operators meaningful names: noise_bg, level_contrast, output. Renamed operators look tidier and make op() references easier to write.
Add comments: Right-click an empty area of the Network Editor and choose Add Note. Type a short description. Notes are non-functional — they just annotate the canvas.
Add a Null TOP between the Level TOP and Out TOP: The Null TOP is a pass-through operator that does nothing to the image but provides a clean named connection point. It is good practice to put a Null TOP at the “output” of each logical section of a network. If you later reroute wires, you only change the wire going into the Null TOP, not every downstream connection.
Step 7 — Save and Review
Press Ctrl+S. Your .toe file now contains:
Noise TOP → Level TOP → Null TOP → Out TOP
↑
Constant CHOP → Math CHOP (driving Brightness)
The network is simple but demonstrates the core pattern:
- A TOP chain for image processing.
- A CHOP feeding a live value into a TOP parameter.
- An expression animating a parameter over time.
These three patterns — TOP chains, CHOP references, and time expressions — will appear in almost every TouchDesigner project you build. In the next tutorial you will go deeper into wiring, including how to manage complex multi-input nodes and how to use the Null and Bypass operators strategically.