What problem does it solve? Writing custom GLSL shaders in Three.js requires knowing built-in uniforms, attribute declarations, varying syntax, and material extension hooks, which are easy to get wrong and hard to debug. ## Core Features & Use Cases - ShaderMaterial Patterns: Provides ready-to-use vertex and fragment shader templates for ShaderMaterial and RawShaderMaterial with correct uniform and varying declarations. - Common Visual Effects: Includes implementations of vertex displacement, Fresnel, rim lighting, dissolve, noise, gradients, and texture sampling. - Extending Built-in Materials: Shows how to use onBeforeCompile to inject custom GLSL into MeshStandardMaterial and other built-in materials. - Use Case: When building a Three.js scene that needs an animated wave surface or a glowing edge effect, use this Skill to generate the correct shader code and uniform update loop. ## Quick Start Write a Three.js ShaderMaterial with a wave vertex displacement effect and a time uniform updated in the animation loop.