Want to create particle systems that can handle hundreds of thousands of particles without melting your CPU? That’s exactly what POPs (Point Operators) are for—they run entirely on the GPU, letting you push insane amounts of particles with forces, colors, and all the good stuff while keeping your processor happy.
Operator Families in this Recipe
- SOPs (Surface Operators): 3D shapes like spheres and boxes.
- POPs (Point Operators): Particles and points on the GPU.
- CHOPs (Channel Operators): Numbers and audio signals.
- COMPs (Components): The 3D “world” container.
How POPs fit into a network
POPs work on point clouds—big sets of 3D points where each point has “attributes” like position, velocity, and color.
They live inside a POP SOP, which is the “bridge” node. It takes regular 3D shapes (SOPs), turns them into particles (POPs), and then brings them back into your 3D scene.
Part 1: Basic Emitter
- The Container: Create a Geo COMP in your root network and double-click to enter it.
- The Bridge: Delete the default torus. Place a POP SOP.
- The Network: Double-click into the POP SOP node to enter the “POP world.”
- The Source: Add a Source POP.
- Source Type →
Point - Emit Rate →
1000(this creates 1,000 particles every second) - Life Expectancy →
3(particles disappear after 3 seconds)
- Source Type →
- The Engine: Add a Solver POP after the source. Important: Without a Solver, the particles won’t move!
Source POP → Solver POP → [output]
Part 2: Adding Forces
To make the particles move in interesting ways, drop “force” nodes between the Source and the Solver:
| Node | What it does |
|---|---|
| Force POP | A constant push. Set Force Y to -9.8 for gravity. |
| Wind POP | Adds “Noise” or turbulence to make it look like smoke. |
| Attractor POP | Pulls particles toward a specific point. |
| Collision POP | Makes particles bounce off another 3D shape (SOP). |
Part 3: Colour Over Lifetime
Let’s make particles change color as they get older:
- Add a Color POP before the Solver.
- Color Source →
Ramp. - Design your Gradient: Click the Ramp parameter to design a color scheme (e.g., White at birth → Blue → Transparent at death).
- Life Source →
Normalized Life. This ensures the color ramp spans the particle’s entire life (0.0 to 1.0).
Part 4: Rendering (Seeing the Result)
The POP SOP outputs “points,” but we need to tell TouchDesigner how to draw them.
-
Option A: Sprites (Easiest)
- Connect the POP SOP output to a Sprite SOP.
- Back in the main network, assign a Point Sprite MAT to the Geo COMP.
- Each particle becomes a glowing 2D “dot” facing the camera.
-
Option B: Instanced Geometry (Advanced)
- Follow the Instancing Recipe but use the POP SOP as your data source.
- Each particle becomes a full 3D shape (like a small box or sphere).
Part 5: Audio Reactivity
- Create an Audio File In CHOP and an Analyze CHOP (set to RMS Power).
- Use a Math CHOP to remap the volume (e.g., 0 to 0.1) to a high particle count (e.g., 100 to 5000).
- Bind this value to the Emit Rate on your Source POP. Now, every kick drum will burst a cloud of particles!
Troubleshooting
- “I don’t see anything!” — Make sure the Solver POP is connected and the Display Flag (the circle icon in the bottom right) is on.
- “Particles fly away too fast” — Lower the Initial Velocity on the Source POP.
- “The colors aren’t changing” — Check that Life Source is set to
Normalized Life.
Parameter Tuning & Behavior
| Parameter | Behavior |
|---|---|
| Emit Rate | Higher = denser clouds of particles; Lower = sparse, individual points. |
| Life Expectancy | Higher = particles stay on screen longer; Lower = quick “bursts” that vanish fast. |
| Force Y (Gravity) | Positive = particles float up; Negative = particles fall down like rain/snow. |
| Wind Turbulence | Higher = more chaotic, organic movement; Lower = straight, mechanical motion. |
| Color Ramp | Determines the mood; changing the gradient changes the “story” of the particle’s life. |
Network Architecture
To visualize how the GPU particles and data flows, here is the final network map:
[ POP NETWORK (Inside POP SOP) ]
Source POP (1000/sec) ──┐
▼
[ FORCES ] [ Force POP ] (Gravity)
│
▼
[ Wind POP ] (Turbulence)
│
▼
[ ATTRIBUTES ] [ Color POP ] (Ramp by Life)
│
▼
[ SIMULATION ] [ Solver POP ] (The Engine)
│
┌─────────────────┘
▼
[ POP SOP (Bridge) ] ──▶ [ Sprite SOP ] ──▶ [ Geo COMP ] ◀── [ Point Sprite MAT ]
│
▼
[ AUDIO DRIVE ] ──▶ [ Analyze CHOP ] ──▶ [ Render TOP ]Data Flow Explanation
- Emission: The
Source POPgenerates the initial points on the GPU. Unlike SOPs, these aren’t “geometry” yet; they are just data points. - Forces & Physics: The
ForceandWindPOPs apply mathematical vectors to every point’s velocity attribute. TheSolver POPthen uses those velocities to update the points’ positions every frame. - Attribute Mapping: The
Color POPlooks at each particle’sNormalized Life(0 to 1) and assigns a color from a ramp. As a particle gets older, it changes color automatically. - The Bridge: The
POP SOPacts as the bridge, bringing those GPU points back into TouchDesigner’s main network so they can be rendered. - Rendering: We use the
Sprite SOPandPoint Sprite MATto draw each point as a 2D “glow” that always faces the camera.
(y) Return to Recipes & Projects | (y) Return to TouchDesigner | (y) Return to Home