memoscan
← all memos

Memo 0xf2097dfa…ca0db2 on Ethereum

(()=>{"use strict";{const v=e=>new Float32Array(e),l=Math.PI,u=2*l,c=Math.cos,b=Math.sin,s=Math.pow,h=Math.sqrt,A=Math.floor,x=(Math.ceil,Math.abs),m=.5*(h(3)-1),d=(3-h(3))/6,g=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]),p={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var a=t+~~(e()*(256-t)),i=r[t];r[t]=r[a],r[a]=i}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var a=.02519603282416938*(e+=t.charCodeAt(r));a-=e=a>>>0,e=(a*=e)>>>0,e+=4294967296*(a-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,a=1,i=this.masher();e=i(" "),t=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(e-=i(arguments[n]))<0&&(e+=1),(t-=i(arguments[n]))<0&&(t+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*e+2.3283064365386963e-10*a;return e=t,t=r,r=i-(a=0|i)}},n2(e,t){var r,a,i=this.p12,n=this.perm,o=0,f=0,v=0,l=(e+t)*m,u=A(e+l),c=A(t+l),b=(u+c)*d,s=e-(u-b),h=t-(c-b);s>h?(r=1,a=0):(r=0,a=1);var x=s-r+d,p=h-a+d,y=s-1+2*d,E=h-1+2*d,_=255&u,D=255&c,T=.5-s*s-h*h;if(T>=0){var P=3*i[_+n[D]];o=(T*=T)*T*(g[P]*s+g[P+1]*h)}var R=.5-x*x-p*p;if(R>=0){var F=3*i[_+r+n[D+a]];f=(R*=R)*R*(g[F]*x+g[F+1]*p)}var w=.5-y*y-E*E;if(w>=0){var B=3*i[_+1+n[D+1]];v=(w*=w)*w*(g[B]*y+g[B+1]*E)}return 70*(o+f+v)}},y=(o=[[4009,3958,2133,2813,4095,1286],[257,1656,3020,3004,3822,3943],[4090,3800,3988,3921,2,20],[785,1552,4090,2624,3459,4090,120],[3994,3976,514,3419,4015,1338,514,787,3766],[273,875,410,1692,4037,2269,2798],[0,4095],[581,664,4095,3782,4006,3685],[1589,3977,3021,89,36],[3838,3021,2220,1675,1145,600,54,2],[3171,2131,3478,4023,4093,2455,546,308,18],[3021,682,120,86,2236,4044,3805,3993,4074,4025,546],[1739,1417,1914,3942,4042,4076],[4078,2988,70,154,2543,3567,138,4060],[2149,3685,3990,4041,3547,3566],[4059,3481,2425,1111,563,2748],[512,1794,3141,3957,3989,3635],[1366,2234,3053,4095,4059,4012],[820,3476,3956,4073,3837,167],[19,1110,2218,2505,3290,3943],[18,375,1688,4041,3619],[2780,4074,296,2267,3942,4037,2267],[1722,2779,3836,3978,1109],[2633,3434,3754,4075,3309,2558],[3669,819,3349,4093,3293,3583,959],[3685,4091,2507,1450,3822,530,1604],[0,291,4001,3822,4095,869,1465]],f=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=f.length,r=A(t*e),a=(r+1)%t,i=t*e-r,n=f[r],o=f[a],v=1-i;return[o[0]*i+v*n[0],o[1]*i+v*n[1],o[2]*i+v*n[2]]},init:function(e){let t=parseInt(A(e*o.length));console.log(t);for(var r=0;r<o[t].length;++r){let e=o[t][r],a=(15&e)/16,i=(e>>4&15)/16,n=(e>>8&15)/16;f.push([n,i,a])}}}),E=document.querySelector("canvas").getContext("webgl",{alpha:!1}),_=E.getExtension("ANGLE_instanced_arrays"),D=E.TRIANGLES,T=E.FRAMEBUFFER,P=E.FLOAT,R=E.UNSIGNED_BYTE,F=E.RGBA,w=E.TEXTURE_2D,B=E.COLOR_ATTACHMENT0,L=E.COLOR_BUFFER_BIT|E.DEPTH_BUFFER_BIT,M=E.ARRAY_BUFFER,N=E.STATIC_DRAW,S=E.DYNAMIC_DRAW,I=E.ONE,C=E.ONE_MINUS_SRC_ALPHA,U=E.SRC_ALPHA,G=(e,t,r)=>e.getAttribLocation(t,r),V=(e,t,r)=>e.getUniformLocation(t,r),O=()=>E.createBuffer();let H=[],X=[];const z=v(300),W=v(300);let Y,k,q,j,J;p.init(tokenData.hash);let K=p.r,Q=K(),Z=K()>.5,$=K()>.5,ee=K()>.7,te=K()>.5,re=K()>.5,ae=K()>.7,ie=1;K()>.5&&(ie=0);let ne=K()>.5,oe=K()>.5,fe=K()>.5,ve=K()>.7,le=K()>.6,ue=K()>.6,ce=K()>.8,be=15;ee&&(be=8);let se=3+K()*be,he=1+K()*be,Ae=K()>.9,xe=.3+.4*K();Z&&(xe*=.3),!Z&&K()>.5&&(xe*=-1);let me=8;K()>.8&&(me=12);let de=K()>.95,ge=K()*u,pe=.001*s(K(),2);y.init(Q);let ye=K(),Ee=K()*u;function e(){let e=E.createTexture();E.bindTexture(w,e),E.texImage2D(w,0,F,J,J,0,F,R,null),E.texParameteri(w,E.TEXTURE_MIN_FILTER,E.LINEAR),E.texParameteri(w,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texParameteri(w,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(w,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE);let t=E.createFramebuffer();return E.bindFramebuffer(T,t),E.framebufferTexture2D(T,B,w,e,0),[e,t]}function t(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function r(e,t,r){let a=e.createProgram();return e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),a}function a(){E.enable(E.BLEND),E.blendFuncSeparate(U,C,I,C),E.useProgram(Me),E.bindBuffer(M,Ze),E.bufferData(M,Rt,S),E.bindBuffer(M,$e),E.bufferData(M,Pt,S),E.bindBuffer(M,Qe),E.enableVertexAttribArray(Ce),E.vertexAttribPointer(Ce,2,P,!1,0,0),E.bindBuffer(M,Ze),E.enableVertexAttribArray(Ue),E.vertexAttribPointer(Ue,4,P,!1,0,0),_.vertexAttribDivisorANGLE(Ue,1),E.bindBuffer(M,$e),E.enableVertexAttribArray(Ge),E.vertexAttribPointer(Ge,3,P,!1,0,0),_.vertexAttribDivisorANGLE(Ge,1),_.drawArraysInstancedANGLE(D,0,rt,ot),_.vertexAttribDivisorANGLE(Ue,0),_.vertexAttribDivisorANGLE(Ge,0)}function i(e,t,r=1){E.bindFramebuffer(T,j),E.viewport(0,0,J,J),E.clear(L),E.useProgram(Ne),E.bindTexture(w,Y),E.bindBuffer(M,at),E.vertexAttribPointer(Ve,2,P,!1,0,0),E.enableVertexAttribArray(Ve),E.enableVertexAttribArray(Oe),E.bindBuffer(M,nt),E.vertexAttribPointer(Oe,2,P,!1,0,0),E.uniform2f(He,1/et,0),E.uniform1f(Xe,e),E.uniform1f(ze,r),E.uniform2f(We,t[0],t[1]),E.drawArrays(D,0,6),E.bindFramebuffer(T,k),E.viewport(0,0,J,J),E.clear(L),E.bindTexture(w,q),E.uniform2f(He,0,1/et),E.drawArrays(D,0,6)}const _e=E.VERTEX_SHADER,De=E.FRAGMENT_SHADER,Te=t(E,_e,"attribute vec4 ap;attribute vec4 ac;attribute vec3 as;varying vec4 vc;void main(){vc=ac;gl_Position=vec4(as.z*ap.x+as.x,as.z*ap.y+as.y,ap.zw);}"),Pe=t(E,De,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),Re=t(E,_e,"attribute vec4 ap;attribute vec2 at;varying vec2 vt;void main(){gl_Position=vec4(ap.xyz,1.0);vt=at;}"),Fe=t(E,De,"precision highp float;varying vec2 vt;uniform sampler2D u;uniform vec2 d;uniform float b;uniform float sc;uniform vec2 r;void main(){float h=d.x;float v=d.y;mat2 m=mat2(r.x,-r.y,r.y,r.x); vec4 s=vec4(0.0);vec2 t=(vt-vec2(0.5))*m*sc+vec2(0.5);s+=texture2D(u,vec2(t.x-4.0*b*h,t.y-4.0*b*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*b*h,t.y-3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*b*h,t.y-2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*b*h,t.y-1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*b*h,t.y+1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*b*h,t.y+2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*b*h,t.y+3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*b*h,t.y+4.0*b*v))*0.016216;gl_FragColor=s;}"),we=t(E,_e,"attribute vec4 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap.xyz,1.0);v=at;}"),Be=t(E,De,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){vec4 c=texture2D(t,v);gl_FragColor=c;}"),Le=t(E,De,"precision highp float;varying vec2 v;uniform vec4 c0,c1;void main(){gl_FragColor=mix(pow(c0,vec4(1.1)),pow(c1,vec4(0.9)),v.y);}"),Me=r(E,Te,Pe),Ne=r(E,Re,Fe),Se=r(E,we,Be),Ie=r(E,we,Le),Ce=G(E,Me,"ap"),Ue=G(E,Me,"ac"),Ge=G(E,Me,"as"),Ve=G(E,Ne,"ap"),Oe=G(E,Ne,"at"),He=V(E,Ne,"d"),Xe=V(E,Ne,"b"),ze=V(E,Ne,"sc"),We=V(E,Ne,"r"),Ye=G(E,Se,"ap"),ke=G(E,Se,"at"),qe=G(E,Ie,"ap"),je=G(E,Ie,"at"),Je=V(E,Ie,"c0"),Ke=V(E,Ie,"c1"),Qe=O(),Ze=O(),$e=O();let et=Math.min(window.innerWidth,window.innerHeight);J=2*et,E.canvas.width=et,E.canvas.height=et,[Y,k]=e(),[q,j]=e();let tt=[],rt=180;for(var n=0;n<60;++n){let e=n/60*u,t=(n+1)/60*u;tt.push(0,0,c(e),b(e),c(t),b(t))}E.bindBuffer(M,Qe),E.bufferData(M,v(tt),S);const at=O();E.bindBuffer(M,at);const it=v([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);E.bufferData(M,it,N);const nt=O();E.bindBuffer(M,nt),E.bufferData(M,v([0,0,0,1,1,0,1,1,0,1,1,0]),N);let ot=0,ft=c(ge)*pe,vt=b(ge)*pe,lt=y.geti(ye),ut=y.geti(ye+.15+.3*K());ne&&(lt[0]*=.6,lt[1]*=.6,lt[2]*=.6,ut[0]*=.6,ut[1]*=.6,ut[2]*=.6),E.clear(L),E.bindFramebuffer(T,k),E.viewport(0,0,J,J),E.useProgram(Ie),E.enableVertexAttribArray(qe),E.bindBuffer(M,at),E.vertexAttribPointer(qe,2,P,!1,0,0),E.enableVertexAttribArray(je),E.bindBuffer(M,nt),E.vertexAttribPointer(je,2,P,!1,0,0),E.uniform4f(Ke,lt[0],lt[1],lt[2],1),E.uniform4f(Je,ut[0],ut[1],ut[2],1),E.drawArrays(D,0,6);let ct=Ee+.5*l,bt=.5*c(ct),st=.5*b(ct),ht=-bt,At=-st,xt=10*K(),mt=10*K(),dt=100,gt=10+A(50*K());for(n=0;n<dt;++n){let e=1*n/dt;if(de){let t=e*u*1+ct;z[n]=.3*c(t)+.3*p.n2(2*c(t),2*b(t)),W[n]=.3*b(t)+.3*p.n2(2*c(t)+4,2*b(t))}else{let t=bt+e*(ht-bt)-50*ft,r=st+e*(At-st)-50*vt;z[n]=t+.4*p.n2(-xt,e*se),W[n]=r+.3*p.n2(mt,e*se)}}for(n=0;n<gt;++n)z[dt+n]=K()-.5,W[dt+n]=K()-.5;let pt=2e3;lt=y.geti(ye+.1),ut=y.geti(ye+.2+.3*K());let yt=1;ee&&(yt=2);let Et=.1;ve&&(Et=.2,ee&&(Et=.15));let _t=1;le&&(_t=.2);let Dt=1;ce&&(Dt=0);let Tt=0;for(Ae&&(Tt=xe),n=0;n<pt/2;++n){let e=K(),t=A(e*dt-1),r=e*(dt-1)-t,a=z[t],i=W[t],n=z[t+1],o=W[t+1],f=a+(n-a)*r,v=i+(o-i)*r;for(let e=0;e<2;++e){let t=.9+.5*K(),r=f-(o-i)*(2*e-1)*13.3*t,l=v+(n-a)*(2*e-1)*13.3*t;for(let e=0;e<200;++e){let t=e/200;X.push(r,l,.004*(1-.8*t)),H.push(lt[0]*(1-t)+ut[0]*t,lt[1]*(1-t)+ut[1]*t,lt[2]*(1-t)+ut[2]*t,.4*(1-t)),ot++;let a=ft,i=vt;for(let e=0;e<dt;++e){let t=100*-(z[e]-r),n=100*-(W[e]-l),o=100*(t*t+n*n);a+=t/o*.02*8,i+=n/o*.02*8}r+=a,l+=i,r+=i*Tt,l-=a*Tt}}}let Pt=v(X),Rt=v(H);for(a(),X=[],H=[],ot=0,n=0;n<pt;++n){let e=K(),t=A(e*(dt-1)),r=e*(dt-1)-t,a=z[t],i=W[t],n=z[t+1],o=W[t+1],f=a+(n-a)*r,v=i+(o-i)*r,l=1;te&&K()<.08&&(l=0);let s=0;re&&K()<.06&&(s=1);let m=1;fe&&(m=.5+K());for(let t=0;t<2;++t){let r=.2;$&&(r+=.9*K());let d=f-(o-i)*(2*t-1)*r,g=v+(n-a)*(2*t-1)*r,E=0,_=0;for(let t=0;t<200;++t){let r=t/200;X.push(d,g,.003*yt*(1-.8*r));let a=0;ae&&(a=.1*A(5*r));let i=g+1,n=y.geti(i*(1-Dt)+ye+(Dt+.3*(1-Dt))*(2*e*he+ie*r+a+.5*l)+Et*K());H.push(n[0]*l*(1-s)+l*s,n[1]*l*(1-s)+l*s,n[2]*l*(1-s)+l*s,_t*(.3*(1-l)+.8*l)*(1-r)),ue&&(H[H.length-1]*=4*r),ot++,E=ft,_=vt;for(let e=0;e<dt;++e){let t=100*-(z[e]-d),r=100*-(W[e]-g),a=100*(t*t+r*r);E+=t/a*.02*(5+2*(1-l)+3*s)*m,_+=r/a*.02*(5+2*(1-l)+3*s)*m}for(let e=0;e<gt;++e){let t=100*-(z[dt+e]-d),r=100*-(W[dt+e]-g),a=100*(t*t+r*r);E+=t/a*.02*(5+2*(1-l))*m,_+=r/a*.02*(5+2*(1-l))*m}if(Z){let e=A((Math.atan2(_,E)+2*u-Ee)/u*me)*u/me+Ee,t=h(E*E+_*_);E=t*c(e),_=t*b(e)}d+=E,g+=_,d+=_*Tt,g-=E*Tt}if(oe&&K()>.5&&p.n2(20*x(1-2*e),.5)>.3){let t=100*(.2+.5*K()),r=.01*(.5+1*K()),a=y.geti(ye+2*e*he+.02*K());K(),X.push(d+E*t,g+_*t,r),H.push(a[0],a[1],a[2],.152),ot++}}}Pt=v(X),Rt=v(H);for(let e=0;e<6;++e)i(2*et/1e3,[1,0],1),a();E.bindFramebuffer(T,null),E.viewport(0,0,E.canvas.width,E.canvas.height),E.clear(L),E.useProgram(Se),E.bindTexture(w,Y),E.enableVertexAttribArray(Ye),E.bindBuffer(M,at),E.vertexAttribPointer(Ye,2,P,!1,0,0),E.enableVertexAttribArray(ke),E.bindBuffer(M,nt),E.vertexAttribPointer(ke,2,P,!1,0,0),E.drawArrays(D,0,6)}var o,f})();