xxxxxxxxxx
<html><style>*{margin:0}#V{display:block}</style><canvas width="512" height="512" id=V><script>a=V.width=innerWidth;a/=V.height=innerHeight-.01;with(V.getContext`webgl2`){p=createProgram(t=35633);[`out O{X x=X(-1);x[gl_VertexID]=3.;gl_Position=X(u=x.xy,0,1);u.x*=${a};u*=.25;}`,`uniform F t;out X c;\n#define T 6.2831853\nfloat B[16]=float[](0.,8.,2.,10.,12.,4.,14.,6.,3.,11.,1.,9.,15.,7.,13.,5.);in O {vec2 r=vec2(atan(u.y,u.x)/T+.5,length(u));r+=sin(3.*T*r.y-t)+sin(3.*T*r.x+.5*t);r=r*2.-fract(t*.5);float d=fract(r).x;float o=.5+.5*cos(T*(d+.5));ivec2 cr=ivec2(mod(u*1024.,4.));float f=round(o*16.)/16.>B[cr.x+cr.y*4]/16.?1.:0.;c=X(f,f,f,1.);}`,].map(x=>attachShader(p,s=createShader(t--),shaderSource(s,`#version 300 es\n~V vec2~X vec4~F float~O V u;void main()\nprecision highp F;`.split`~`.join`\n#define `+x),compileShader(s)));linkProgram(p);useProgram(p);k=_=>requestAnimationFrame(k,uniform1f(getUniformLocation(p,'t'),performance.now()/5e2),drawArrays(5,0,3));k()}</script>