Experience a mesmerizing real-time shader effect featuring perfectly seamless RGB stripes with ultra-smooth transitions! This demo showcases a custom GLSL fragment shader that generates animated red, green, and blue bands with soft, feathered edges—ideal for creative coding, VJ visuals, and generative art.
Features:
True RGB color stripes with equal width and smooth, seamless blending
Animated, noise-driven movement for organic, flowing visuals
Fully customizable stripe frequency, edge softness, and animation speed
Written in GLSL (OpenGL Shading Language) for use in WebGL, Three.js, or any modern graphics pipeline How it works:
The shader uses a raised-cosine blending function to ensure each color band transitions smoothly into the next, with no harsh edges or visible seams. Animated noise and rotation add organic movement, making the effect dynamic and visually engaging.
Reflection and Refraction (Center Sphere):
The center sphere in the scene demonstrates both reflection and refraction effects. Reflection is achieved by sampling the environment map in the direction of the reflected view vector, simulating how light bounces off the sphere’s surface. Refraction is simulated by bending the view vector as it passes through the sphere, using Snell’s law, and then sampling the environment map along this refracted direction. The shader blends these two effects based on the viewing angle and the sphere’s material properties, creating a realistic glass-like appearance with both mirrored highlights and color-bending transparency.
Perfect for:
VJ and live performance visuals
Generative art installations
Shader learning and experimentation
Creative coding projects
fwdds.js:27053 Uncaught TypeError: Cannot set properties of undefined (setting 'value')
at NumberControllerSlider2.__onChange (fwdds.js:27053:56)
at NumberControllerSlider2.setValue (fwdds.js:24854:25)
at NumberControllerSlider2.setValue (fwdds.js:25227:129)
at NumberControllerSlider2.setValue (fwdds.js:24267:27)
at onMouseDrag (fwdds.js:25343:13)
at HTMLDivElement.onMouseDown (fwdds.js:25338:7)