// https://www.shadertoy.com/view/wtG3R3

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    vec2 uv = (fragCoord - 0.5 * iResolution.xy) / iResolution.y * 2.0;
    vec3 c;
    for (int i = 0; i < 6; i++)
    {
        uv.x -= iTime/float(i + 2);
    	uv.y += sin(uv.x + iTime/float(i + 1) + float(i) * 0.5) * 0.5 / float(i + 1);
    	c += 0.02/abs(uv.y);
    }
    c = mix(vec3(0), vec3(0.1, 0.3, 0.8), c);
    fragColor = vec4(c,1.0);
}