What problem does it solve? Writing custom GLSL shaders in Three.js requires knowing which built-in uniforms and attributes are available, how to structure ShaderMaterial versus RawShaderMaterial, and how to inject code into built-in materials without breaking them. This Skill provides working patterns for these tasks so you avoid trial-and-error with shader compilation errors. ## Core Features & Use Cases - ShaderMaterial Setup: Complete examples for uniforms, varyings, vertex displacement, texture sampling, and material properties like blending and transparency. - Common Visual Effects: Ready-to-adapt patterns for Fresnel, rim lighting, dissolve, gradients, noise, and instanced rendering. - Extending Built-in Materials: Use onBeforeCompile to inject custom logic into MeshStandardMaterial and other built-in shaders at known chunk injection points. - Use Case: You want an animated wave effect on a plane mesh. Use the vertex displacement pattern with a time uniform updated in the animation loop to produce continuous motion. ## Quick Start Ask the AI to create a Three.js ShaderMaterial with a wave vertex displacement effect and a time uniform updated each frame.