void mainImage(out vec4 o, vec2 u) {
float i, s, d, n;
vec3 p,r=iResolution;
for(u =(u+u-r.xy)/r.y;
i++< 64.;
d += s = .4*min(2.9 - s, .01+.2*abs(s)),
o += s + .01/length(u-.5)
)
for(p = vec3(u * d, d + iTime),
p.x += iTime*.5,
s = 2.2-p.y+cos(p.x*.3)*.3,
n = .01; n < .4; n += n
)
s -= abs(dot(sin(.23*p/n), r-r+n));
o = tanh(o / 1e1 * exp(-d/2e1));
}
https://www.shadertoy.com/view/WcccRl














