//Jamie Pendergast

float Wave(vec2 polar, float offset)
{
    return smoothstep(0., 1., sin((polar.x + offset) * 4. + (polar.y * 3.) -(iTime * 10.)));
}

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    vec2 uv = -1. + 2. * fragCoord/iResolution.xy;
	uv.x *= iResolution.x / iResolution.y;
    vec2 polar = vec2(atan(uv.x,uv.y),length(uv));
	polar += vec2(iTime * 0.1);
    float a = Wave(polar,0.);
    polar += vec2(iTime * 0.3);
    float b = Wave(polar,a + 1.);
    polar += vec2(iTime * 0.5);
    float c = Wave(polar,b + 2.);
    // Output to screen
    fragColor = vec4(a,b,c,1.);
}
