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

#define M (length(mod(a,18.)-9.)-8.+sin(a-c*.2).x)

void mainImage(out vec4 O, vec2 I)
{
    vec3 i,a,b,c,p,d = normalize(iResolution.yxy-vec3(0,I+I));
    //i=a=b=c=p=d-d;

    for(c.x=p.x=iTime; i.x++<1e2 && M > 1.5; a = ceil(p += d*b)-.5)
        b = min(a = (trunc(p+sign(d))-p)/d+1e-4, min(a.y,a.z)).xxx;

    O = (sin(a.x+vec4(0,2,4,a = p))+1.)*M/exp((p-c).x/20.+1.3);
}
