shader-smith

Author GLSL fragment shaders for visual effects, backgrounds, post-processing, and generative visuals, and wrap them in a runnable WebGL2 or Three.js r128 preview. Use when the user asks for GLSL, shaders, raymarching, SDF, fragment effects, procedural visuals, or custom post-processing. This is an orchestrator-leaning skill — it focuses on the shader + minimal wrapper; deep 3D-scene shader work is delegated to freshtechbro/claudedesignskills Three.js skills when installed.

barmoshe/claude-creative-stack1 installsMITSynced Aug 26

Works with

Claude CodeCursorCodex CLIGitHub CopilotGemini CLI
---
name: shader-smith
description: Author GLSL fragment shaders for visual effects, backgrounds, post-processing, and generative visuals, and wrap them in a runnable WebGL2 or Three.js r128 preview. Use when the user asks for GLSL, shaders, raymarching, SDF, fragment effects, procedural visuals, or custom post-processing. This is an orchestrator-leaning skill — it focuses on the shader + minimal wrapper; deep 3D-scene shader work is delegated to freshtechbro/claudedesignskills Three.js skills when installed.
license: MIT
---

# Shader Smith

Opinionated about GLSL style; minimal about the host code.

## When to trigger

- "Write a shader that looks like X"
- "Raymarch a scene"
- "SDF logo"
- "Background effect with mouse"
- "Post-processing filter"

## Pick a host first

| Target | Host |
|---|---|
| Standalone preview, no scene | Vanilla WebGL2 in one HTML artifact |
| In an existing Three.js r128 scene | `ShaderMaterial` / `RawShaderMaterial` (artifact) |
| R3F scene | `<shaderMaterial />` — delegate to `freshtechbro/claudedesignskills` |
| Pixi v8 filter | `Filter` + fragment shader |

## GLSL ES 3.00 template

```glsl
#version 300 es
precision highp float;

uniform vec2  uResolution;
uniform float uTime;
uniform vec2  uMouse;       // 0..1

out vec4 fragColor;

// --- helpers ---------------------------------------------------------------
float hash21(vec2 p){ p = fract(p*vec2(234.34,435.345)); p += dot(p, p+34.23); return fract(p.x*p.y); }
float noise(vec2 p){
  vec2 i = floor(p), f = fract(p);
  float a = hash21(i), b = hash21(i+vec2(1,0)), c = hash21(i+vec2(0,1)), d = hash21(i+vec2(1,1));
  vec2 u = f*f*(3.-2.*f);
  return mix(a,b,u.x) + (c-a)*u.y*(1.-u.x) + (d-b)*u.x*u.y;
}

// --- main ------------------------------------------------------------------
void main(){
  vec2 uv = (gl_FragCoord.xy - 0.5*uResolution) / uResolution.y;
  float n = noise(uv*4.0 + uTime*0.3);
  vec3 col = mix(vec3(0.05,0.07,0.12), vec3(0.9,0.55,0.3), n);
  fragColor = vec4(col, 1.0);
}
```

## Minimal WebGL2 host (HTML artifact)

Key points the scaffold must include:
- Fullscreen triangle, not quad — 1 draw call, no index buffer.
- Resize handler that sets `canvas.width = cssW * devicePixelRatio`.
- `requestAnimationFrame` loop feeding `uTime` in seconds.
- Pointer-move listener writing to `uMouse` normalized.
- Respect `prefers-reduced-motion` — pause time.

## Technique cheat sheet

| Technique | When to reach for |
|---|---|
| SDF 2D (circle/box/rounded) + `smoothstep` | Crisp shapes, logos, UI glow |
| Domain warp (`p += noise(p)`) | Organic flows, liquid, fabric |
| fBm (fractal Brownian motion) | Clouds, terrain noise, paper |
| Raymarch SDF 3D | 3D scenes with no geometry upload |
| Worley / Voronoi | Cells, skin, crystals |
| Feedback (ping-pong FBO) | Trails, reaction-diffusion, blur |

## Delegation

- Full scene-graph shader work with multiple passes → hand to `freshtechbro/claudedesignskills` Three.js / R3F skills.
- This skill: single-shader effects + wrapper.

## Common pitfalls

- `precision highp float;` — always declare; mobile defaults vary.
- `#version 300 es` must be the **first** line (no preceding comment).
- Avoid dynamic loops on mobile GPUs — unroll or cap iterations.
- `gl_FragCoord.y` points up in WebGL; invert if matching image coords.

## Output shape

1. **Approach** — 2 sentences on technique.
2. **Shader** in a fenced block labeled `glsl`.
3. **Full HTML artifact** (shader + host) in a fenced block labeled `html`.
4. **Uniform reference** table.
5. **Known artifacts** — one paragraph on mobile/perf caveats.

## Further reading

- `knowledge/05-graphics-design.md` — GLSL cheat sheet.
- `knowledge/03-artifacts.md` — Three.js r128 and `three/examples/jsm` restrictions.
- `artifacts/html/shader-playground.html` — working starter.

More AI & ML skills

← All AI & ML skills

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY