#define erot(p,ax,t) (mix(dot(ax,p)*ax,p,cos(t))+cross(ax,p)*sin(t)) #define pcg3d(p,o) do{uvec3 q=floatBitsToUint(p)*123456798u+12346578u; q.x+=q.y*q.z;q.y+=q.x*q.z;q.z+=q.y*q.x;q^=q>>16u;q.x+=q.y*q.z;q.y+=q.x*q.z;q.z+=q.y*q.x; o=vec3(q)/float(-1U);}while(false) #define pal(t,a) (a+a*cos(6.28*(t+vec3(1.,1.,1.)))) #define pal2(t) (.5+.5*cos(6.28*(1.*t+vec3(.0,.3,.7)))) #define diam2(p,s) (abs(p).x+abs(p).y-s)*inversesqrt(3.) #define tru(p,out) do{ vec2 id = floor(p)+.5; vec2 gv = p-id; gv.x *= fract(452.6*sin(dot(id,vec2(452.5,985.5)))) > .5 ? -1.:1. ; gv.xy-=.5 * (gv.x >-gv.y ? 1. :-1.); out= abs(diam2(gv.xy,.5)); } while(false) #define cd(p,o) do{vec3 cdp=abs(p);float cdd=0.,m;for(int j=0;j++<3;){cdd+=step(m=max(cdp.y,cdp.z),cdp.x)*m;cdp = cdp.yzx;}o=max(max(cdp.x,max(cdp.y,cdp.z))-3.,1.-cdd);}while(false) #define fractal(p,o) do{vec3 fp=p;float s= 1.;for (int ii=0;ii<6;ii++){float q;cd(fp,q);o = max(o, q*s);fp = fract((fp-1.)*.5)*6.-3.;s/= 3.0;} }while(false) #define tri(p,trir,triout ) do{vec2 trip=p;const float k = sqrt(3.0);trip.x = abs(trip.x) - trir;trip.y = trip.y + trir/k;if( trip.x+k*trip.y>0.0 ){ trip = vec2(trip.x-k*trip.y,-k*trip.x-trip.y)/2.0;}trip.x -= clamp( trip.x, -2.0*trir, 0.0 ); triout = -length(trip)*sign(trip.y);}while(false) vec2 p=(FC.xy*2.-r)/min(r.x,r.y); vec2 op=p; vec3 rnd; pcg3d(vec3(vec3(t,floor(p.xy*50.))),rnd); vec3 col=vec3(0.); float bpm = t*140./60.*(.5+min(15.5,.1*exp(mod(t,35.)*.1))); vec3 trnd; pcg3d(vec3(floor(bpm)),trnd);; bpm= smoothstep(0.,1.,fract(bpm))+floor(bpm); float sq =(mod(bpm,10.)); //sq =-1.5; vec3 subscreenRnd;pcg3d(trnd,subscreenRnd); float screenRatio = r.y/r.x; vec2 subscreenSize = vec2(1.,screenRatio); p -=(max(vec2(.1),subscreenRnd.xy)-.5)*1.5; p /=max(.1,subscreenRnd.z); if(sq<1.){ for(float i=0.,im=25.;i35. ? 1:0)*ivec2(int(sign(sin(p.xx*100.)))+int((rnd.x-.5)*10.)/1,0),0).rgb; o.rgb = mix(pcol*vec3(.0,.993,.992)*(1.-.00*rnd.xyz)*step(-.5,sin(op.y*1000.)),col,step(abs(p.y),subscreenSize.y)*step(abs(p.x),subscreenSize.x)); o.rgb = max(vec3(0.),o.rgb);