#version 100 precision mediump float; uniform float u_time; uniform vec2 u_resolution; void main() { vec2 uv = gl_FragCoord.xy / u_resolution.xy; float v = 0.0; vec2 c = uv * 5.0 - vec2(2.5); v += sin((c.x + u_time)); v += sin((c.y + u_time) / 2.0); v += sin((c.x + c.y + u_time) / 2.0); c += vec2(sin(u_time / 3.0), cos(u_time / 2.0)); v += sin(sqrt(c.x * c.x + c.y * c.y + 1.0) + u_time); v = v / 2.0; vec3 col = vec3(sin(v * 3.14159), sin(v * 3.14159 + 2.09439), sin(v * 3.14159 + 4.18879)); gl_FragColor = vec4(col * 0.5 + 0.5, 1.0); }