0x7d330020…da62sent to0xa7d8d9ef…d270·#14,019,465·view on Etherscan
const vSh="precision highp float;attribute vec2 position;void main(){gl_Position=vec4(position,1.,1.);}",fSh="precision highp float;uniform sampler2D uScene;uniform vec2 uResolution;uniform float core,a,bp,bpmode;float random(vec2 p){return fract(cos(dot(p,vec2(23.4069263277926,2.665144142690225)))*43758.5453123)-.5;}vec4 getCol(vec2 pos){return texture2D(uScene,pos/uResolution.xy);}void pR(inout vec2 p,float a){p=cos(a)*p+sin(a)*vec2(p.y,-p.x);}float getVal(vec2 pos){return dot(getCol(pos).xyz,vec3(.2126,.7152,.0722));}vec2 getGrad(vec2 pos,float eps){vec2 d=vec2(eps,0);return vec2(getVal(pos+d.xy)-getVal(pos-d.xy),getVal(pos+d.yx)-getVal(pos-d.yx))/eps/2.;}void main(){vec2 uv=gl_FragCoord.xy/uResolution.xy;vec4 color=texture2D(uScene,uv);float step_u=1./uResolution.x;float step_v=1./uResolution.y;vec4 cRight=texture2D(uScene,uv+vec2(step_u,.0));vec4 cBottom=texture2D(uScene,uv+vec2(.0,step_v));float _dFdx=.0002*length(color-cRight)/step_u;float _dFdy=.0002*length(color-cBottom)/step_v;float g=sqrt((pow(_dFdx,2.)+pow(_dFdy,2.)));float rng;vec3 c,c1,c2,c3;if(bp>0.){if(bpmode==0.){c=vec3(.9,.9,.99);c1=vec3(.21,.36,.63);c2=vec3(.15,.27,.5);c3=vec3(.04,.19,.36);}else{c= vec3(.4,.4,.4);c1=vec3(.7,.7,.7);c2=vec3(.75,.75,.75);c3=vec3(.9,.84,.72);}color-=g*5.;_dFdx=.0006*length(color-cRight)/step_u;_dFdy=.0006*length(color-cBottom)/step_v;g=sqrt((pow(_dFdx,2.)+pow(_dFdy,2.)));if(g>.05){color=vec4(mix(c,c3,.15),.1);}else{float mx,my,mx1,my1;if(bp==1.){mx=my1=0.;my=mx1=2.;}else{mx=mx1=1.;my=my1=1.5;}if(mod(gl_FragCoord.x*mx+gl_FragCoord.y*my,160.)<1.5||mod(gl_FragCoord.y*my1-gl_FragCoord.x*mx1,160.)<1.5){color.rgb=c1;}else if(mod(gl_FragCoord.x*mx+gl_FragCoord.y*my,40.)<1.5||mod(gl_FragCoord.y*my1-gl_FragCoord.x*mx1,40.)<1.5){color.rgb=c2;}else{color.rgb=c3;}}rng=1.;}else{color-=g*.5;if(core>0.0) color.rgb/=max(.6,min(1.,.6*core*(sqrt(abs(.5-uv.x)+abs(.5-uv.y)))));color.rgb*=max(.7,mod(floor(uv.y*uResolution.y),2.));rng=a;color.rgb*=1.7-.8*(sqrt(pow(.5-uv.x,2.)+pow(.5-uv.y,2.)));}if(bp>=0.){vec2 pos=gl_FragCoord.xy;float we=1.;for (float j=0.;j<8.;j+=1.){vec2 dir=vec2(1.,0.);pR(dir,j*6.283185/(2.*8.));vec2 grad=vec2(-dir.y,dir.x);for(float i=-6.;i<=6.;i+=2.){vec2 pos2=pos+normalize(dir)*i;vec2 g=getGrad(pos2,1.);if (length(g)>.01) we-=pow(abs(dot(normalize(grad),normalize(g))),8.)/floor((2.*6.+1.)/2.)/8.;}}vec4 bg=mix(color,vec4(1),.01);color=mix(vec4(c,1.),bg,we);}vec2 uvRandom=uv;uvRandom.y*=random(vec2(uvRandom.y,rng));color.rgb+=random(uvRandom)*.08;gl_FragColor=clamp(color,0.,1.);}";class Shader{constructor(e){this.ct=0,this.re=e,this.s=new THREE.Scene,this.dC=new THREE.Camera,this.g=new THREE.PlaneBufferGeometry(2,2),this.res=new THREE.Vector2,this.t=new THREE.WebGLRenderTarget(this.res.x,this.res.y,{format:THREE.RGBAFormat,stencilBuffer:!1,depthBuffer:!0}),this.m=new THREE.RawShaderMaterial({fragmentShader:fSh,vertexShader:vSh,uniforms:{uScene:{value:this.t.texture},uResolution:{value:this.res},a:{value:0},core:{value:0},bp:{value:bp},bpmode:{value:bp1}}}),this.p=new THREE.Mesh(this.g,this.m),this.p.frustumCulled=!1,this.s.add(this.p),this.resize()}resize(){this.re.getDrawingBufferSize(this.res),this.m.uniforms.uResolution.value=this.res,this.t.setSize(this.res.x,this.res.y)}render(e,t){this.ct+=.001,this.m.uniforms.core.value=core?3+Math.sin(20*this.ct):0,this.m.uniforms.a.value=this.ct,this.m.uniforms.bp.value=bp,this.m.uniforms.bpmode.value=bp1,this.re.setRenderTarget(this.t),this.re.clear(),this.re.render(e,t),this.re.setRenderTarget(null),this.re.render(this.s,this.dC)}}const PI=Math.PI,xS=Uint32Array.from([0,0,0,0].map((e,t)=>parseInt(tokenData.hash.substr(8*t+2,8),16))),prng=e=>{let t,o=xS[3];return xS[3]=xS[2],xS[2]=xS[1],xS[1]=t=xS[0],o^=o<<11,o^=o>>>8,xS[0]=o^t^t>>>19,Math.floor(e*(xS[0]/4294967296))};var W=window.innerWidth,H=window.innerHeight,clock=new THREE.Clock,mY=0,w=4.5,bp=prng(12)?0:prng(3),bp1=prng(2);const R=new THREE.WebGLRenderer({premultipliedAlpha: false,alpha:!bp});R.autoClear=!0,R.setPixelRatio(window.devicePixelRatio),R.setSize(W,H),document.body.appendChild(R.domElement);const S=new THREE.Scene,L=new THREE.DirectionalLight(16777215,1);if(L.position.set(-1,2,4),S.add(L),bp){const e=new THREE.DirectionalLight(16777215,1);e.position.set(1,-2,-4),S.add(e)}const C=new THREE.PerspectiveCamera(72,W/H,.1,1e3);var Cp=2.4*w;C.position.z=Cp;var neg=!prng(12);const corec=[13421772,13369344,52224,204,13421568,13369548,52428],CL=[[16777215,16777215,15658734,14540253,2236962],[1048619,2359366,3934572,5904538,8072383,10309341,13073919,14723839],[16244937,16108707,15841407,14582843,10505752,12868893],[3712768,3266627,4128651,16777212,16719982],[790282,16719982,16514834,4319956,16777215],[7864320,12653087,16642261,12361,6724540],[0,1319229,16556817,15066597,16777215],[9358054,2203324,143431,16758531,16483584],[723210,1448477,6686472,10753562,15022139,11642790,16118772,16777215]];var sides,ring,core,stick,dX,dY,singleRing,pal,ncols,dome,corenum;sides=3+prng(4),ring=0==prng(4),core=ring&&0==prng(3),stick=0==prng(6),dX=core?-.025:.025,dY=.05,pal=bp?3:ring&&core&&0==prng(3)?0:1+prng(CL.length-1),singleRing=0==prng(2),ncols=CL[pal].length;let thick=.25+.25*prng(4);dome=(ring||core)&&!prng(3),corenum=prng(pal?ncols:7);var cc=0==pal?corec[corenum]:CL[pal][corenum],cnum=0;let rC=()=>CL[pal][prng(ncols)],nC=()=>CL[pal][++cnum%ncols],bgcol=rC();const theFog=new THREE.Fog(bgcol,w*(core?2.1:1.8),w*(core?3.1:3));S.fog=null;var p=8,optBox=[prng(p),prng(p),prng(p),prng(p),prng(p),prng(p)],optCir=[prng(p),prng(p),prng(p),prng(p)];function getOption(e){for(var t=prng(20),o=0,r=0,n=0;o<t&&n<50;)o+=e[r],r=(r+1)%e.length,n++;return r}var tex1=new THREE.Texture(gT(0)),tex2=new THREE.Texture(gT(1)),tex3=new THREE.Texture(gT(2));tex1.needsUpdate=tex2.needsUpdate=tex3.needsUpdate=!0,tex1.wrapT=tex1.wrapS=tex3.wrapT=tex3.wrapS=THREE.RepeatWrapping,tex1.anisotropy=tex2.anisotropy=tex3.anisotropy=R.capabilities.getMaxAnisotropy(),tex1.repeat.set(4,1),tex3.repeat.set(4,2);var rec=!0;const G=new THREE.Group;let h=.08;ring||1!=thick||(w=3.5),ring?core?(singleRing?G.add(dRing(16,1.1*w,.8,h)):(G.add(dRing(22,1.1*w,.7,h)),G.add(dRing(22,1.102*w,.7,h).rotateX(PI/2))),S.add(new THREE.PointLight(cc,.5,1.1*w,.1)),bp||G.add(s3D(.38*w,4,2,.85,1.7,cc)),!bp&&dome&&G.add(s3D(1.1*w,40,40,.35,1,cc,!1))):(G.add(ring3D(20,w,.9,h,1,2)),!bp&&mY<w&&G.add(s3D(w,40,40,.35,1.2,-1,!1))):stick?G.add(ring3D(sides,.35*w,6,h,1,2).rotateX(PI/2)):G.add(ring3D(sides,w,thick,h,1,2));var SP=new THREE.Mesh(new THREE.SphereGeometry(120,20,20),new THREE.MeshBasicMaterial({color:16777215,side:THREE.BackSide,map:tex3})),SH=new THREE.Mesh(new THREE.SphereGeometry(125,250,25),new THREE.MeshPhongMaterial({color:bgcol,side:THREE.BackSide,flatShading:!0}));G.add(SP),G.add(SH);var bgmode=prng(3)-1;changeBG();S.add(G);var RX=PI/(prng(2)?5:-5),RY=PI/(prng(2)?4:-4);G.rotation.x=RX;G.rotation.y=RY;const PP=new Shader(R);function dRing(e,t,o,r){let n=new THREE.Group;return n.add(ring3D(e,t,o,r,1)),rec=!1,n.add(ring3D(e,t,o,r,-1)),rec=!0,n}function s3D(e,t,o,r=1,n,a=-1,i=!0){let s=new THREE.Mesh(new THREE.SphereGeometry(e,t,o),new THREE.MeshPhongMaterial({color:a<0?rC():a,flatShading:i,transparent:1!=r,opacity:r}));return s.scale.set(1,n,1),s}function ring3D(e,t,o,r,n=1,a=!1,i=1){let s=new THREE.Group,c=new THREE.Group,d=new THREE.Group,y=2*t*Math.sin(PI/e),l=y/(2*Math.tan(PI/e)),x=0,p=prng(2);for(let g=PI/e;g<2*PI;g+=2*PI/e){let h=new THREE.Group;if(BR(h,{x:y,y:r,z:y*o*(x++%2?1:1.01)},{x:0,y:0,z:0}),h.rotateY(g),h.rotateX(PI/2),h.translateY(l*n*i),d.add(h),p&&a&&4!=e){let n=.66*(t-l);CR(s,{x:n,y:r,z:n},{x:(t-n)*Math.sin(g+PI/e),y:y*o*.5*i,z:(t-n)*Math.cos(g+PI/e)}),CR(c,{x:n,y:r,z:n},{x:(t-n)*Math.sin(g+PI/e),y:y*o*.5*i,z:(t-n)*Math.cos(g+PI/e)}),c.rotateY(PI)}}if(a){let n=new THREE.Mesh(new THREE.CylinderGeometry(t*i,t*i,y*o*i,e),new THREE.MeshPhongMaterial({color:rC(),flatShading:!0,map:tex2}));d.add(n);let x={x:2*l,y:r,z:2*l},p={x:0,y:y*o*.5*i,z:0};4!=e?(CR(s,x,p),2==a&&CR(c,x,p)):(BR(s,x,p),2==a&&BR(c,x,p),s.rotateY(PI/e),c.rotateY(PI/e)),c.rotateX(PI),d.add(s),2==a&&d.add(c)}return 1==a?(d.translateY(y*o*.45),(new THREE.Group).add(d)):d}function BR(e,t,o){o.y>mY&&(mY=o.y);let r=t.y,n=.1,a=Math.min(t.x,t.z),i=2*a;if(a>.15){let s=getOption(optBox);if(e.add(box3D(t,o)),s>=4){let n=nC(),s=a/3,c={x:1.1*s,y:t.y*i,z:1.1*s};e.add(box3D({x:.63*a,y:t.y*(i-1),z:.63*a},{x:o.x,y:o.y+t.y,z:o.z})),e.add(box3D({x:.77*a,y:r+.01,z:.77*a},{x:o.x,y:o.y+r*i,z:o.z}));for(let r=0;r<4;r++)e.add(tr3D(c,{x:o.x+(r<2?s:-s),y:o.y+t.y,z:o.z+(r%2==1?s:-s)},n))}switch(s){case 0:BR(e,{x:t.x-n,y:t.y,z:t.z-n},{x:o.x,y:o.y+t.y,z:o.z});break;case 1:BR(e,{x:.5*t.x-n,y:t.y,z:t.z-n},{x:o.x+.25*t.x,y:o.y+t.y,z:o.z}),BR(e,{x:.5*t.x-n,y:t.y,z:t.z-n},{x:o.x-.25*t.x,y:o.y+t.y,z:o.z});break;case 2:BR(e,{x:t.x-n,y:t.y,z:.5*t.z-n},{x:o.x,y:o.y+t.y,z:o.z+.25*t.z}),BR(e,{x:t.x-n,y:t.y,z:.5*t.z-n},{x:o.x,y:o.y+t.y,z:o.z-.25*t.z});break;case 3:CR(e,t,{x:o.x,y:o.y+t.y,z:o.z});break;case 4:case 5:BR(e,{x:.75*a,y:t.y,z:.75*a},{x:o.x,y:o.y+t.y*(i+1),z:o.z});for(let r=0;r<4;r++)BR(e,{x:a*(r<2?.15:.4),y:t.y,z:a*(r<2?.4:.15)},{x:o.x+a*(r<2?.4:0)*(r%2==0?1:-1),y:o.y+t.y,z:o.z+a*(r<2?0:.4)*(r%2==0?1:-1)})}if(s>=3)if(a<t.x){let r=.5*(t.x-a),n=t.x/2-r/2,i={x:r,y:t.y,z:t.z};BR(e,i,{x:o.x+n,y:o.y+t.y,z:o.z}),BR(e,i,{x:o.x-n,y:o.y+t.y,z:o.z})}else if(a<t.z){let r=.5*(t.z-a),n=t.z/2-r/2,i={x:t.x,y:t.y,z:r};BR(e,i,{x:o.x,y:o.y+t.y,z:o.z+n}),BR(e,i,{x:o.x,y:o.y+t.y,z:o.z-n})}}}