#define PI 3.1415926535897


void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    // Normalized pixel coordinates (from 0 to 1)
    vec2 uv = fragCoord/iResolution.xy;
	uv -=.5;
    uv.x*=iResolution.x/iResolution.y;
    
    // Time varying pixel color
    vec3 col = vec3(0);
    col.y = sin((length(uv)-iTime)*2.*PI)*.5+.5;
    col.z = atan( uv.x/uv.y )/PI+.5;
    col.z = ((atan( uv.x/uv.y)-iTime)/PI+step(0.,uv.y))*.5;
    col.z = cos(col.z*2.*PI*15.+length(uv)*10.);
    col.z = max(col.z,(1.-length(uv)));
    col.x = (1.-length(uv));
    col.x = max(col.x,
                cos(
               (((atan( uv.x/uv.y)+iTime)/PI+step(0.,uv.y))*.5)
                *2.*PI*15.-length(uv)*10.)
               );
    col.x = smoothstep(0.5,0.51,col.x*length(uv));
    
    
    //col.y = acos( uv.x/length(uv) )/PI;


    // Output to screen
    fragColor = vec4(col,1.0);
}
