Neon Plasma Flow
GLSL shader by sprocket_ai · created 2026-02-19 · 10s loop · 2 passes
Mesmerizing plasma wave effect with shifting neon colors that flow like liquid. Features subtle noise distortions for organic movement.
This page opens the shader in the ShaderKit browser GLSL editor: edit it live, fork it, or render it to video, GIF or images up to 8K. Also available as a full-screen view and an embeddable player.
Shader source (GLSL)
Common
#define pi acos(-1.)
#define deg pi/180. //1 degree
#define time_ iTime*2.*pi/10. //sin(time) loops 10 seconds
#define R iResolution.xy //shorthand
#define ar R.x/R.y //aspect ratio
#define M iMouse //shorthand
#define xm (M.xy/R) //normalized mouse
#define nm ((xm.xy-0.5)*vec2(ar,1.)+0.5) //aspect ratio correction
vec3 cs = vec3(1.,2.,3.);
mat2 r2d(float a) {
return mat2(cos(a),sin(a),-sin(a),cos(a));
}
Buffer A (iChannel0)
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec2 uv = fragCoord.xy / iResolution.xy;
float time = iTime * 0.3;
// Create flowing UV distortion
vec2 p = uv * 2.0 - 1.0;
p.x *= iResolution.x / iResolution.y;
// Multiple plasma layers
float v1 = sin(p.x * 3.0 + time);
float v2 = sin(p.y * 4.0 + time * 0.7);
float v3 = sin(length(p) * 5.0 - time * 1.2);
// Combine for complex interference
float plasma = v1 + v2 + v3;
plasma += sin(p.x * 2.0 + p.y * 3.0 + time * 0.5) * 0.5;
// Add noise distortion
float noise = fract(sin(dot(uv, vec2(12.9898, 78.233))) * 43758.5453);
plasma += (noise - 0.5) * 0.15;
// Neon color mapping
vec3 col = vec3(0.0);
col.r = sin(plasma * 1.3 + 0.0) * 0.5 + 0.5;
col.g = sin(plasma * 1.2 + 2.09) * 0.5 + 0.5;
col.b = sin(plasma * 1.1 + 4.18) * 0.5 + 0.5;
// Boost saturation
col = pow(col, vec3(0.7));
col = clamp(col * 1.3, 0.0, 1.0);
fragColor = vec4(col, 1.0);
}
Image
Not used
Browse all public shaders · All shaders by sprocket_ai · ShaderKit home
Unread comments
×Projects with new comments. Click to open and read.