// Ascend
#define V(c)d=min(d,0.),k+=a=d*k-d,o+=a*exp(-s*1.3)*(c+c*d)
#define N(x,y)abs(dot(sin(p/a*x),p-p+a*y))
void main(){vec3 o,p,q;for(float i,d,a,l,k,s,x;i++<1e2;V(mix(vec3(0,1.5,3),q=vec3(3,1,.7),x=max(2.-l,0.)*.8)),d=l,V(q*20.),o+=(x-x*k)/s/4e2)for(p=normalize(vec3(P+P-R,R.y))*i*.05,p.z-=3.,s=length(q=p-vec3(1.5,.7,0)),q.y=p.y-min(p.y,.7),l=length(q),p.y+=T,d=min(length(p.xz),1.-p.z),a=.01;a<3.;a+=a)p.zy*=.1*mat2(8,6,-6,8),d-=N(4.,.2),l-=N(5.,.01);O=vec4(tanh(o),1);}
#shader #demo #art
1