Install
$ agentstack add skill-rheadsh-audiovisual-production-skills-td-glsl ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
TouchDesigner GLSL Shader Writing
Write GLSL shaders optimized for TouchDesigner's shader operators.
Quick Start
Every TouchDesigner pixel shader needs:
// 1. Uniforms - Only declare what YOU need
uniform float uTime;
// 2. Output - Must be global, before main()
out vec4 fragColor;
// 3. Main function
void main() {
vec4 color = texture(sTD2DInputs[0], vUV.st);
fragColor = TDOutputSwizzle(color);
}
Critical Rules
- Output declaration:
out vec4 fragColor;must be global (beforemain()) - Never declare:
sTD2DInputs[],vUV,vP,vN- TouchDesigner provides these - Always use:
TDOutputSwizzle()for final output - Uniforms workflow: Declare in GLSL + Configure in TD parameter pages
Automatic Variables (DO NOT Declare)
sTD2DInputs[0] // Input textures - just use them!
vUV.st // UV coordinates (0-1)
vP, vN, vColor // Position, normal, vertex color
Must Declare and Configure
TouchDesigner does NOT provide automatic uniforms. You must:
- Declare in shader:
uniform float uTime; - Configure in TD UI (Vectors page):
- Name:
uTime - Type:
float - Value:
absTime.seconds
Common Patterns
See [examples/PATTERNS.md](examples/PATTERNS.md) for ready-to-use templates:
- Basic texture sampling
- Time-based animation
- Multi-input blending
- Generative patterns
- Feedback loops
- Displacement effects
TouchDesigner Functions
// Output (required)
TDOutputSwizzle(vec4 color)
// Noise
TDSimplexNoise(vec2 p)
TDPerlinNoise(vec3 p)
// Color conversion
TDHSVToRGB(vec3 hsv)
TDRGBToHSV(vec3 rgb)
Response Format
When providing shaders, always include:
- GLSL Code with comments
- TouchDesigner Setup instructions:
- Which parameter page (Vectors, Colors, CHOP Uniforms)
- Uniform names and types
- Values or expressions (e.g.,
absTime.seconds)
Common Errors
See [reference/TROUBLESHOOTING.md](reference/TROUBLESHOOTING.md) for solutions to:
'fragColor' : undeclared identifier'sTD2DInputs' : redefinition'uTime' : undeclared identifier- Uniforms with no effect
- Black/incorrect output
Additional Resources
- [reference/FUNCTIONS.md](reference/FUNCTIONS.md) - Complete API reference
- [reference/BEST-PRACTICES.md](reference/BEST-PRACTICES.md) - Optimization & organization
- [examples/COMPLETE.md](examples/COMPLETE.md) - Full shader examples
Writing Process
- Start with basic template
- Add uniforms (declare + configure)
- Implement shader logic
- Test incrementally
- Optimize when working
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: rheadsh
- Source: rheadsh/audiovisual-production-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.