Install
openclaw skills install shaderWrite, explain, adapt, and debug practical shader code for GLSL, WebGL, Three.js ShaderMaterial, React Three Fiber, postprocess-style full-screen effects, and ShaderToy-style fragment shaders. Use when the user wants to create an effect shader, port a shader between runtimes, fix black screens or compile errors, wire uniforms like time or resolution, troubleshoot UV, normal, or color-space mistakes, or turn a visual idea into a runnable vertex/fragment pair. Also use when pairing shader output with OpenClaw canvas demos. NOT for full rendering-engine architecture, advanced offline rendering theory, or GPU-vendor-specific optimization claims that have not been verified in the target runtime.
openclaw skills install shaderUse this skill to turn shader requests into runnable code and fast debugging steps.
Default target: browser-friendly GLSL. If the runtime is unclear, narrow it before writing code:
ShaderMaterialResolve these first:
uTime, uResolution, UVs, normals, textures, mouseIf the request is vague, start with the smallest visible version of the effect.
For blank output, compile failures, or “nothing shows”, read references/black-screen-checklist.md.
Do not hand over ShaderToy code unchanged if the user asked for Three.js or R3F.
Common translations:
iTime -> uTimeiResolution -> uResolutionfragCoord -> gl_FragCoord.xyFor live previews inside OpenClaw, pair this skill with canvas.
Prefer responses that include:
node {baseDir}/scripts/shader.js intake "fullscreen ocean background in three.js"
node {baseDir}/scripts/shader.js intake "port this shadertoy to r3f" --json
Use this to structure an underspecified request.
node {baseDir}/scripts/shader.js debug black-screen
node {baseDir}/scripts/shader.js debug uniform
node {baseDir}/scripts/shader.js debug varyings
node {baseDir}/scripts/shader.js effects
Maps user phrases to likely starter techniques like gradient, noise, fresnel, dissolve, ripple, scanline, and pixelate.
node {baseDir}/scripts/shader.js boilerplate fresnel
node {baseDir}/scripts/shader.js boilerplate dissolve --json
Returns stage split, likely uniforms, varyings, build order, and common failure points.
node {baseDir}/scripts/shader.js snippet fresnel
node {baseDir}/scripts/shader.js snippet ripple --json
Points to the nearest bundled GLSL starter.
node {baseDir}/scripts/shader.js demo webgl ripple
node {baseDir}/scripts/shader.js demo r3f fresnel --json
Chooses the best bundled runtime template for a target + effect combination.
node {baseDir}/scripts/shader.js scaffold r3f dissolve
node {baseDir}/scripts/shader.js scaffold postprocess scanline --json
Combines the nearest demo, boilerplate, snippet, and first integration steps.
Bundled templates:
assets/webgl-fullscreen-demo/index.htmlassets/threejs-material-demo/index.htmlassets/postprocess-demo/index.htmlassets/r3f-demo/App.jsxassets/r3f-demo/main.jsxassets/r3f-demo/index.htmlassets/r3f-demo/package.jsonassets/r3f-demo/vite.config.jsBundled snippets:
assets/snippets/fresnel.mdassets/snippets/dissolve.mdassets/snippets/ripple.mdassets/snippets/scanline.mdassets/snippets/pixelate.mdassets/snippets/vertex-wobble.mdUse the postprocess template for screen-space effects. Use the Three.js or R3F templates for mesh/material effects.
references/glsl-quick-reference.mdreferences/black-screen-checklist.mdreferences/effect-starters-zh.mdreferences/snippets.mdreferences/runtime-translation.mduTime, uResolution, uMouse, uTexture.