#define r(A)     mat2( C=cos(A), S=sin(A), -S, C )           //
//#define r(a)   mat2( cos( a + vec4(0,11,33,0) ) )          // bug: https://www.shadertoy.com/view/ttGyzh
#define w(c,a) ( R.xy = r(a) * c.xz + iTime,  abs( cos( R.y + cos( R.x ) ) ))  //
#define W(c)   ( w(c,9.) + w(c,7.) + w(c,h) )                //
#define D(c)     W(h*c) + W(c)*.1 + 9. + c.y

void mainImage( out vec4 o, vec2 u ) {
    float h = .3, f = h, C,S; 
    vec3 m = u.xyy/iResolution.x - .5, c=m-m, R;
    m.z -= .4; m.xz *= r(iTime*h);
    
    for( m /= length(m) ; 
         f++ < 30. && (C=D((c+h))) > .1 ; 
         c += m * C );
    
    o = min((D(c)+h)*9., 0.) * min(m.x+.6, 0.) 
      + .1* vec4( C= c.y+12. , 2.+C , 4 , 1 )
      + f/50. - length(c)/7e2 ;
}