What problem does it solve? Writing custom visual effects in Three.js requires deep knowledge of GLSL syntax, uniform management, and shader injection points, which is error-prone and hard to debug without a structured reference. ## Core Features & Use Cases - ShaderMaterial and RawShaderMaterial Setup: Provides ready-to-use templates for vertex and fragment shaders with correct uniform declarations and built-in attribute handling. - Common Effect Patterns: Includes implementations for vertex displacement, Fresnel effects, rim lighting, dissolve transitions, noise functions, and gradients. - Built-in Material Extension: Shows how to use onBeforeCompile to inject custom GLSL into MeshStandardMaterial and other built-in materials at known shader chunk 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 Create a Three.js ShaderMaterial with an animated wave vertex displacement and a solid color fragment shader.