//creator: ldm0
//Personal website: ldm0.xyz

vec3 flux(float x) {
                return vec3(sin(x),cos(1.0*3.14159265359/3.0+x),sin(2.0*3.14159265359/3.0+x))*.9+0.1;
            }

mat2x2 rotate(float x) { return mat2x2(cos(x), sin(x), sin(x), -cos(x)); }
void mainImage(out vec4 color, in vec2 coord)
{
    float m;
    vec2 uv = coord.xy / iResolution.xy;
    uv.x *= 2.;
    uv.x -= 1.;
    //uv.y *= 1.382;
    uv.y += .3819;
    for (int i = 0; i < 20; ++i) {
        uv= abs(uv);
        float angle = (iTime*float(i))/3.1415-1.*3.1415/4.;
        uv+=0.01*rotate(angle)[0];
        m = uv.x * uv.x  + uv.y * uv.y;// - .0031;
        uv.x = uv.x/m - .217;
        uv.y = uv.y/m - .105;
        m+= iTime*0.1;
    }
    color=vec4(flux(m*3.1415)*clamp(m, 0., 1.), 1.0 );
}
