memoscan
← all memos

Memo 0x6d80669a…aa7e43 on Ethereum

._width,this.canvas.height=this._height,this.canvas.classList.add("patterns"),this.ctx=this.canvas.getContext("2d"),this.ctx.fillStyle="#fff",this.ctx.fillRect(0,0,this._width,this._height),this.texture=new Qt(u.gl,{image:this.canvas,minFilter:u.gl.NEAREST,magFilter:u.gl.NEAREST,generateMipmaps:!1})}clear({clearColor:t="#000"}={}){this.ctx.fillStyle=t,this.ctx.fillRect(0,0,this._width,this._height)}draw(){}_refreshDebugMesh(){this._UNF.uOpacity.value=.1}resize(t,e){this._width=t,this._height=e,this.canvas.width=this._width,this.canvas.height=this._height,this.canvas.style.width=this._width+"px",this.canvas.style.height=this._height+"px",this.texture.needsUpdate=!0}}class lt{constructor(t,e,s,i){this.x=t,this.y=e,this.width=s,this.height=i,this._ls=[],this._data=y.gridData.divisions,this._isFinal=!1}divide(t=0,e=1){this._idxDivision=t,this._chanceDivision=e;const s=this.x,i=this.y;this._ls.push({xFrom:s,yFrom:i,xTo:s+this.width,yTo:i}),this._ls.push({xFrom:s,yFrom:i,xTo:s,yTo:i+this.height}),this._ls.push({xFrom:s+this.width,yFrom:i,xTo:s+this.width,yTo:i+this.height}),this._ls.push({xFrom:s,yFrom:i+this.height,xTo:s+this.width,yTo:i+this.height});const n=this._divide(this.x,this.y,this.width,this.height),a=u.rand();!n&&(!this._data.activateChanceFilling||a<this._data.chanceFilling)&&(this._isFinal=!0)}_divide(t,e,s,i){const n=u.rand(),a=u.rand();if(this._idxDivision>=this._data.maxDivisions||n>this._chanceDivision)return!1;const l=y.gridData.divisionsType;let h=y.gridData.margin;const c=s/2-h*.5,_=i/2-h*.5;this._cs=[],a>l.full&&a<l.full+l.vertical?(this._cs.push(new lt(t,e,c,i)),this._cs.push(new lt(t+c+h,e,c,i))):a>l.full+l.vertical&&a<l.full+l.vertical+l.horizontal&&(this._cs.push(new lt(t,e,s,_)),this._cs.push(new lt(t,e+_+h,s,_)));for(let v of this._cs)v.divide(this._idxDivision+1,this._chanceDivision*this._data.friction);return!0}seasonize(){if(!this._isFinal){for(let e of this._cs)e.seasonize();return}const t=u.rand();t<.25?this.se="w":t<.5?this.se="sp":t<.75?this.se="su":this.se="a"}draw=t=>{this._isFinal&&(t.save(),t.fillStyle=y.cbs[this.se],t.translate(this.x,this.y),t.fillRect(0,0,this.width,this.height),t.restore())};drawLines=t=>{if(!this._isFinal)return;const e=2,s=e>>1;t.save(),t.strokeStyle="#fff",t.lineWidth=e,t.translate(this.x,this.y),t.strokeRect(-s,-s,this.width+s,this.height+s),t.restore()};get finalCells(){if(this._isFinal)return[this];{let t=[];if(this._cs)for(let e of this._cs)t=t.concat(e.finalCells);return t}}get lines(){let t=[];if(t=t.concat(this._ls),this._cs)for(let e of this._cs)t=t.concat(e.lines);return t}}class aa extends vr{constructor(){super(),this._grids=[],this._gridLines=new vr}generate(){this._cells=[],this._fc=null;const t=y.gridData,e=t.margin,s=(this._width-e*(t.cols+1))/t.cols,i=(this._height-e*(t.lines+1))/t.lines;let n=e,a=e;for(let l=0;l<t.lines;l++){for(let h=0;h<t.cols;h++){const c=new lt(n,a,s,i);c.divide(0,t.divisions.chance),this._cells.push(c),n+=s+e}n=e,a+=i+e}this._fc=[],this._fl=[],this._fl.push({xFrom:e,yFrom:e,xTo:this._width-e,yTo:e}),this._fl.push({xFrom:e,yFrom:e,xTo:e,yTo:this._height-e}),this._fl.push({xFrom:this._width-e,yFrom:e,xTo:this._width-e,yTo:this._height-e}),this._fl.push({xFrom:e,yFrom:this._height-e,xTo:this._width-e,yTo:this._height-e});for(let l of this._cells)Array.prototype.push.apply(this._fc,l.finalCells),Array.prototype.push.apply(this._fl,l.lines)}seasonize(){for(let t of this.finalCells)t.seasonize()}render(){this.clear({clearColor:"#fff"});for(let t of this._grids)t.clear();this._gridLines.clear();for(let t of this._fc)t.draw(this.ctx);this.texture.needsUpdate=!0,this._gridLines.ctx.strokeStyle="#fff",this._gridLines.ctx.lineWidth=y.gridData.lineWidth,this._gridLines.ctx.beginPath();for(let t of this.finalLines)!t||u.rand()>y.gridData.divisions.chanceDrawLine||(this._gridLines.ctx.moveTo(t.xFrom,t.yFrom),this._gridLines.ctx.lineTo(t.xTo,t.yTo));this._gridLines.ctx.stroke(),this._gridLines.texture.needsUpdate=!0}get finalCells(){return this._fc}get finalLines(){return this._fl}get textureLines(){return this._gridLines.texture}}class la extends ne{constructor(t){t=t;const e=t.count,s=e<<1,i=e<<2;let n=0,a=0,l=0,h=0,c=0,_=0;const v=new Float32Array(i),f=new Float32Array(i*2);for(let k=0;k<i;k++){const te=k;for(let B=0;B<4;B++)v[n]=te,f[a+0]=c/(t.width-1),f[a+1]=_/(t.height-1),n+=1,a+=2;c+=1,c>t.width-1&&(c=0,_+=1)}n=0,a=0;let A=1,b=1;const C=new Float32Array(i*2),g=new Float32Array(i*2),p=new Float32Array(i*2);for(let k=0;k<s;k++)g[h+0]=-1*A,g[h+1]=-1*b,p[h+0]=0,p[h+1]=0,g[h+2]=-1*A,g[h+3]=1*b,p[h+2]=0,p[h+3]=1,g[h+4]=1*A,g[h+5]=-1*b,p[h+4]=1,p[h+5]=0,g[h+6]=1*A,g[h+7]=1*b,p[h+6]=1,p[h+7]=1,h+=8;a=0;const m=new Uint32Array(i*3);for(let k=0;k<e;k++)m[l+0]=a,m[l+1]=m[l+4]=a+1,m[l+2]=m[l+3]=a+2,m[l+5]=a+3,a+=4,l+=12;const P={uid:{data:v},uvDataTexture:{size:2,data:f},side:{size:2,data:g},uv:{size:2,data:p},index:{data:m},pos:{size:2,data:C}};super(u.gl,P)}}class zr extends wt{constructor({size:t=10,vs:e=null,fs:s=null,UNF:i={}}={}){i={...i,...{sizePlanes:{value:t},tdtm:{value:null}}};let a="",l="";super(u.gl,{UNF:i,vertex:a+e,fragment:l+s,transparent:!0,cullFace:u.gl.FRONT,depthWrite:!1})}init(t){this.UNF.tdtm.value=t.textureMain}}class ha extends yt{constructor(t,{material:e=new zr}={}){const s=new la(t);e.init(t),super(u.gl,{geometry:s,_pr:e})}}class ua{constructor(t,e){this.reset(t,e)}reset(t,e){this.width=t,this.height=e,this.count=this.width*this.height>>0,this.count4=this.count<<2;const s=new Float32Array(this.count4),i=u.gl;this.tm=new Qt(i,{image:s,width:this.width,height:this.height,type:i.FLOAT,generateMipmaps:!1,target:i.TEXTURE_2D,format:i.RGBA,internalFormat:i.renderer.isWebgl2?i.RGBA32F:i.RGBA,wrapS:i.CLAMP_TO_EDGE,wrapT:i.CLAMP_TO_EDGE,generateMipmaps:!1,minFilter:i.NEAREST,magFilter:i.NEAREST,flipY:!1});for(let n=0;n<this.count4;n+=4)this.tm.image[n+0]=u.prerand(),this.tm.image[n+1]=u.prerand(),this.tm.image[n+2]=0,this.tm.image[n+3]=0;this.tm.needsUpdate=!0}get textureMain(){return this.tm}}var ca=`#define M_PI 3.1415 #define HALF_PI 1.5707 _u _s2 tdtm;_u _s2 tPattern;_u _f ugenhash;_u _f ultMin;_u _f ultAdd;_u _f ultPower;_u _f ullMin;_u _f ullAdd;_u _f ullPower;_u _f urType;_u _v2 urNoise;_u _v2 uHr;_u _v2 uSr;_u _v2 uLr;_u _f ucadV;_u _f ucadSl;_u _f ucadV2;_u _f ucadSl2;_u _v2 uA;_u _f uAPower;_u _f uVisibleThreshold;_u _v2 uTextureSize;_u _f uTextureRatio;in _f uid;in _v2 uvDataTexture;in _v2 side;in _v2 uv;out _v2 vUv;out _v3 vColor;out _f iv;out _f ivs[4];out _f vUid;out _f vUidBase;out _f vModColor1;out _f vModColor2;out _f vAlpha; #i_ rgb2hsl #i_ noiseUtils #i_ snoise2d _f vh(_v3 p){p=fract(p*0.31+.1);p*=17.0;return fract(p.x*p.y*p.z*(p.x+p.y+p.z));}_f vn(in _v3 x){_v3 i=floor(x);_v3 f=fract(x);f=f*f*(3.0-2.0*f);return mix(mix(mix(vh(i+_v3(0,0,0)),vh(i+_v3(1,0,0)),f.x),mix(vh(i+_v3(0,1,0)),vh(i+_v3(1,1,0)),f.x),f.y),mix(mix(vh(i+_v3(0,0,1)),vh(i+_v3(1,0,1)),f.x),mix(vh(i+_v3(0,1,1)),vh(i+_v3(1,1,1)),f.x),f.y),f.z);}_f hash12(_v2 p){_v3 p3=fract(_v3(p.xyx)*.11);p3+=dot(p3,p3.yzx+33.33);return fract((p3.x+p3.y)*p3.z);}mat3 mfe(_v3 eu){mat3 m;_f a=cos(eu.x);_f b=sin(eu.x);_f c=cos(eu.y);_f d=sin(eu.y);_f e=cos(eu.z);_f f=sin(eu.z);_f ae=a*e;_f af=a*f;_f be=b*e;_f bf=b*f;m[0][0]=c*e;m[0][1]=-c*f;m[0][2]=d;m[1][0]=af+be*d;m[1][1]=ae-bf*d;m[1][2]=-b*c;m[2][0]=bf-ae*d;m[2][1]=be+af*d;m[2][2]=a*c;return m;}_f cBV(_v3 p1,_v3 p2,_f hueToCompare){_f dx=p2.x-p1.x;_f dy=p2.y-p1.y;_f a=atan(dy,dx);_f dist=sqrt(dx*dx+dy*dy);_f acc=dist/4.;_f x=p1.x;_f y=p1.y;for(_i i=0;i<4;i++){_v3 p=_t(tPattern,_v2(x,y)).rgb;_v3 hsl=rgb2hsl(p);_f hDiff=abs(hueToCompare-hsl.r);if(hDiff>uVisibleThreshold*.19){return 0.;}x+=cos(a)*acc;y+=sin(a)*acc;}return 1.;}_f mtp(_f v,_f miv,_f mav,_f po){_f vSign=sign(v);v=(v-miv)/(mav-miv);v=vSign>0. ? v : v-1.;v=pow(v*vSign,abs(po));v=vSign>0. ? v : 1.-v;return v*(mav-miv)+miv;}_f rBP(_f miv,_f mav,_f po){if(miv==mav){return miv;}_f value=hash12(_v2(uid,ugenhash))*(mav-miv)+miv;return mtp(value,miv,mav,po);} #i_ hsl2rgb _f grnd(){return hash12(_v2(uid,ugenhash));}_f _grinc=0.;_f grinc(){_grinc+=.1;return hash12(_v2(uid+_grinc,ugenhash+_grinc));}_vmvUv=uv;_f id=uid;_v4 dtm=_t(tdtm,uvDataTexture);_v4 dtm2=dtm.xyzw;dtm2.x=mod(dtm2.x,1.);dtm2.y=mod(dtm2.y,1.);dtm2.x=(dtm2.x*1.-.5)*2.;dtm2.y=(dtm2.y*1.-.5)*2.;_f rt=0.;_f canAdd=0.;_f rtType=urType;if(rtType==0.){rt=grinc()*M_PI*2.;canAdd=1.;}else if(rtType==1.){if(grinc()<.75){rt=grinc()*M_PI*2.;canAdd=1.;}else{if(grinc()<.5){rt=0.;}else{rt=M_PI*.5;}}}else if(rtType==2.){if(grinc()<.3){rt=grinc()*M_PI*2.;canAdd=1.;}else{if(grinc()<.5){rt=0.;}else{rt=M_PI*.5;}}}else if(rtType==3.){rt=vn(_v3((dtm.x+ugenhash*.001)*urNoise.x,(dtm.y+ugenhash*.001)*urNoise.y,0.))*M_PI*2.;}_f sgl=ullMin+rBP(0.,ullAdd,ullPower);_f sgt=ultMin+rBP(0.,ultAdd,ultPower);_f scl=1./uTextureSize.x*2.;_v3 posBase=_v3(0.);posBase.x+=side.x*sgl*scl;posBase.y+=side.y*sgt*scl;mat3 rtm=mfe(_v3(0.,0.,rt));_v3 p1=_v3(0.);p1.x=-1.*sgl*scl;p1*=rtm;p1.y*=uTextureRatio;p1+=(dtm2.xyz*.5+.5);_v3 p2=_v3(0.);p2.x=1.*sgl*scl;p2*=rtm;p2.y*=uTextureRatio;p2+=(dtm2.xyz*.5+.5);ivs[0]=cBV(p1,p2,65./360.);ivs[1]=cBV(p1,p2,130./360.);ivs[2]=cBV(p1,p2,195./360.);ivs[3]=cBV(p1,p2,260./360.);_f ivSum=ivs[0]+ivs[1]+ivs[2]+ivs[3];iv=ivSum>0. ? 1. : 0.;posBase.xyz*=rtm;posBase.y*=uTextureRatio;_v2 pUV=posBase.xy;pUV+=(dtm2.xy*.5+.5);_f hue=rBP(uHr.x,uHr.y,1.);_f saturation=rBP(uSr.x,uSr.y,1.);_f luminosity=rBP(uLr.x,uLr.y,1.);vAlpha=rBP(uA.x,uA.y,uAPower);vColor=_v3(hue,saturation,luminosity);posBase+=_v3(dtm2.x,dtm2.y,0.);_v4 pos=_v4(posBase,1.);vModColor1=vn(_v3((dtm2.x)*ucadSl,(dtm2.y)*ucadSl,0.))*ucadV;vModColor2=vn(_v3((dtm2.x)*ucadSl,(dtm2.y)*ucadSl,0.))*ucadV;_f percentModColor=snoise2d(_v2((dtm2.x)*ucadSl2,(dtm2.y)*ucadSl2));_f baseValue2=1.-ucadV2;vModColor1*=(baseValue2+percentModColor*ucadV2);vModColor2*=(baseValue2+percentModColor*ucadV2);gl_Position=pos;gl_Position.z=grnd();vUid=id;vUidBase=uid;}`,_a=`#ifndef PI #define PI 3.141592653589793 #endif _u _f uCountLines;_u _v3 uCs[4];_u _f ucadSat;_u _f ucadLum;_u bool uApplyAlpha;in _v3 vColor;in _f iv;in _f ivs[4];in _f vUid;in _f vModColor1;in _f vModColor2;in _f vAlpha; #i_ hsl2rgb _lay0)out vec4 o0;_v3 am(_v3 c,_v3 mod){_f hue=c.r+mod.r;_f sat=c.g+mod.g;_f lum=c.b+mod.b;c=hsl2rgb(hue,sat,lum);return c;}_vmif(vUid>uCountLines){discard;}_v3 mod=_v3(0.);mod.r=vColor.r;mod.g=vColor.g+vModColor1*ucadSat;mod.b=vColor.b+vModColor2*ucadLum;_v3 c0=am(uCs[0],mod);_v3 c1=am(uCs[1],mod);_v3 c2=am(uCs[2],mod);_v3 c3=am(uCs[3],mod);_f a=2.;a=1.;a*=vAlpha;if(uApplyAlpha==false){a=1.;a*=.88;}if(iv==0.){discard;}o0=vec4(c0,a)*ivs[0]+vec4(c1,a)*ivs[1]+vec4(c2,a)*ivs[2]+vec4(c3,a)*ivs[3];}`;function va(r){const t=r>>16&255,e=r>>8&255,s=r&255;return{r:t/255,g:e/255,b:s/255}}function da(r,t,e){var s=Math.max(r,t,e),i=Math.min(r,t,e),n,a,l=(s+i)/2;if(s==i)n=a=0;else{var h=s-i;switch(a=l>.5?h/(2-s-i):h/(s+i),s){case r:n=(t-e)/h+(t<e?6:0);break;case t:n=(e-r)/h+2;break;case e:n=(r-t)/h+4;break}n/=6}return[n,a,l]}function pa(r,t=!0){const e=va(r),s=da(e.r,e.g,e.b);return t?(s[0]*=360,s[1]*=100,s[2]*=100,`hsl( ${s[0]}, ${s[1]}%, ${s[2]}% )`):s}const dr=function(r){const t=pa(r,!1);return{h:t[0]*360,s:t[1]*100,l:t[2]*100}},fa=z(ca),ga=z(_a);class ba extends ft{constructor(t){super(1),this._u={ugenhash:{value:0},tPattern:{value:t},ultMin:{value:1},ultAdd:{value:0},ultPower:{value:1},ullMin:{value:10},ullAdd:{value:100},ullPower:{value:1},urType:{value:0},urNoise:{value:new L(0,0)},uCs:{value:[new V,new V,new V,new V]},uA:{value:new L},uAPower:{value:4},uApplyAlpha:{value:!0},uHr:{value:new L},uSr:{value:new L},uLr:{value:new L},ucadV:{value:0},ucadSat:{value:0},ucadLum:{value:0},ucadSl:{value:0},ucadV2:{value:0},ucadSl2:{value:0},uVisibleThreshold:{value:1},uCountLines:{value:2e5},uTextureSize:{value:u.resolutionNoDPR},uTextureRatio:{value:u.size.width/u.size.height}};const e=new zr({UNF:this._u,vs:fa,fs:ga}),s=new ua(1024,1024);this._lines=new ha(s,{material:e}),this.addChild(this._lines)}generate(){this._u.ugenhash.value=u.rand()*15e6+10}render(t=!0){const e=y.vegeData.lines;this._u.uCountLines.value=e.count,this._u.ultMin.value=e.thicknessM,this._u.ultAdd.value=e.thicknessA,this._u.ultPower.value=e.thicknessP,this._u.ullMin.value=e.lengthM,this._u.ullAdd.value=e.lengthA,this._u.ullPower.value=e.lengthP,this._u.urType.value=Math.min(e.rotationType,3),this._u.urNoise.value.set(e.rotationNoise.x,e.rotationNoise.y),this._u.uVisibleThreshold.value=e.visibleThreshold;const s=y.vegeData.colors;let i=s.color1,n=dr(i);for(let l=0;l<4;l++)i=s["color"+(l+1)],n=dr(i),this._u.uCs.value[l].set(n.h/360,n.s/100,n.l/100);this._u.uHr.value.set(s.hueRand.min,s.hueRand.max),this._u.uSr.value.set(s.saturationRand.min,s.saturationRand.max),this._u.uLr.value.set(s.luminosityRand.min,s.luminosityRand.max);const a=y.vegeData.colorAdjustement;this._u.ucadV.value=a.colorAdjustementValue,this._u.ucadSat.value=a.colorAdjustementSat,this._u.ucadLum.value=a.colorAdjustementLum,this._u.ucadSl.value=a.colorAdjustementScale,this._u.ucadV2.value=a.colorAdjustementValue2,this._u.ucadSl2.value=a.colorAdjustementScale2,this._u.uA.value.set(s.alpha.min,s.alpha.max),this._u.uAPower.value=s.alphaPower,this._u.uApplyAlpha.value=s.applyAlpha,t&&super.render()}}var ma="uniform _v2 uRes;uniform _f uBoost;in _v3 position;in _v2 uv;out _v2 vUv;out _v2 vnw;out _v2 vne;out _v2 vsw;out _v2 vse;out _v2 vbm;void texcoords(_v2 fc,_v2 res,out _v2 vnw,out _v2 vne,out _v2 vsw,out _v2 vse,out _v2 vbm){_v2 ivp=1.0/res.xy;vnw=(fc+_v2(-1.0,-1.0))*ivp;vne=(fc+_v2(1.0,-1.0))*ivp;vsw=(fc+_v2(-1.0,1.0))*ivp;vse=(fc+_v2(1.0,1.0))*ivp;vbm=_v2(fc*ivp);}_vmvUv=uv;_v2 resolution=uRes*uBoost;_v2 fragCoord=vUv*resolution;texcoords(fragCoord,resolution,vnw,vne,vsw,vse,vbm);gl_Position=vec4(position*2.,1.);}",xa=`#define TC {texcount} _u _s2 _ts[{texcount}];_u _v2 uRes;_u _f uBoost;in _v2 vnw;in _v2 vne;in _v2 vsw;in _v2 vse;in _v2 vbm;in _v2 vUv;_lay0)out _v4 oc0; #if TC > 1 _lay1)out _v4 oc1; #endif #if TC > 2 _lay2)out _v4 oc2; #endif #if TC > 3 _lay3)out _v4 oc3; #endif #ifndef FRM #define FRM (1.0/ 128.0) #endif #ifndef FRMU #define FRMU (1.0 / 8.0) #endif #ifndef FSM #define FSM 8.0 #endif _v4 fxaa(_s2 tex,_v2 fc,_v2 res,_v2 vnw,_v2 vne,_v2 vsw,_v2 vse,_v2 vbm){_v4 color;mediump _v2 ivp=_v2(1.0/res.x,1.0/res.y);_v3 rgbNW=_t(tex,vnw).xyz;_v3 rgbNE=_t(tex,vne).xyz;_v3 rgbSW=_t(tex,vsw).xyz;_v3 rgbSE=_t(tex,vse).xyz;_v4 tc=_t(tex,vbm);_v3 rgbM=tc.xyz;_v3 l=_v3(0.299,0.587,0.114);_f lNW=dot(rgbNW,l);_f lNE=dot(rgbNE,l);_f lSW=dot(rgbSW,l);_f lSE=dot(rgbSE,l);_f lM=dot(rgbM,l);_f lMin=min(lM,min(min(lNW,lNE),min(lSW,lSE)));_f lMax=max(lM,max(max(lNW,lNE),max(lSW,lSE)));mediump _v2 dir;dir.x=-((lNW+lNE)-(lSW+lSE));dir.y=((lNW+lSW)-(lNE+lSE));_f dr=max((lNW+lNE+lSW+lSE)*(0.25*FRMU),FRM);_f rc=1.0/(min(abs(dir.x),abs(dir.y))+dr);dir=min(_v2(FSM,FSM),max(_v2(-FSM,-FSM),dir*rc))*ivp;_v3 rgbA=0.5*(_t(tex,fc*ivp+dir*(1.0/3.0-0.5)).xyz+_t(tex,fc*ivp+dir*(2.0/3.0-0.5)).xyz);_v3 rgbB=rgbA*0.5+0.25*(_t(tex,fc*ivp+dir*-0.5).xyz+_t(tex,fc*ivp+dir*0.5).xyz);_f lB=dot(rgbB,l);if((lB<lMin)||(lB>lMax))color=_v4(rgbA,tc.a);else color=_v4(rgbB,tc.a);return color;}_vm_v2 r=uRes*uBoost;_v2 fc=vUv*r;oc0=fxaa(_ts[0],fc,r,vnw,vne,vsw,vse,vbm); #if TC > 1 oc1=fxaa(_ts[1],fc,r,vnw,vne,vsw,vse,vbm); #endif #if TC > 2 oc2=fxaa(_ts[2],fc,r,vnw,vne,vsw,vse,vbm); #endif #if TC > 3 oc3=fxaa(_ts[3],fc,r,vnw,vne,vsw,vse,vbm); #endif }`;const Ca=z(ma);class wa extends ft{constructor({textures:t=null,resolution:e=new L(u.size.width,u.size.height),boost:s=1}={}){super(t.length,!1),this._UNF={textures:{value:t},uRes:{value:u.resolution},uBoost:{value:s}};let i=z(xa);i=i.replaceAll("{texcount}",t.length),this.mesh=new yt(u.gl,{geometry:new At(u.gl,{width:1,height:1}),_pr:new wt(u.gl,{vertex:Ca,fragment:i,UNF:this._UNF,transparent:!0})}),this.addChild(this.mesh)}}var ya=`#i_ noiseUtils #i_ snoise3d #i_ pnoise2d #i_ pnoise3d #i_ blendmodes #i_ edge #i_ contrast #i_ khwr #i_ hueShift #i_ brightness #i_ saturation #i_ grain #iu_ _u _s2 tp;_u _s2 tl;_u _s2 tb;_u _s2 tbe;_u _s2 tn;_u _s2 tne;_u _s2 tne2;_u _s2 tve;_u _s2 tze;_u _v2 uRes;_u _f uSeed;in _v2 vUv;_lay0)out _v4 oc0;_v4 perm(_v4 x){return mod289(((x*34.0)+1.0)*x);}_f ns(_v3 p){_v3 a=floor(p);_v3 d=p-a;d=d*d*(3.0-2.0*d);_v4 b=a.xxyy+_v4(0.0,1.0,0.0,1.0);_v4 k1=perm(b.xyxy);_v4 k2=perm(k1.xyxy+b.zzww);_v4 c=k2+a.zzzz;_v4 k3=perm(c);_v4 k4=perm(c+1.0);_v4 o1=fract(k3*(1.0/41.0));_v4 o2=fract(k4*(1.0/41.0));_v4 o3=o2*d.z+o1*(1.0-d.z);_v2 o4=o3.yw*d.x+o3.xz*(1.0-d.x);return o4.y*d.y+o4.x*(1.0-d.y);}_f gtstns(_v2 o){_f st=1.-_v3(grain(vUv+_v2(0.,o.x),uRes*uGrainScale*.0025)).r;st=_smst(.8,.6,st);st=clamp(st,0.,1.);return st;}_v3 gtgrn(float gs){_f gp=ns(_v3(vUv*_v2(80.,4.),0.));_v3 cn=_v3(grain(vUv,uRes*gs+gp*uGrainPerturb+uSeed*.1));return cn;}_vm_v4 ptt=_t(tp,vUv);_v4 lines=_t(tl,vUv);_v4 noise=_t(tn,vUv);_v3 iNoise=_v3(1.-noise.rgb);_f noiseValue=(iNoise.r+iNoise.g+iNoise.b)/3.;_v3 noiseValueBoosted=_v4(bmx(-.43)*ctmx(1.45)*_v4(_v3(noiseValue),1.)).rgb;_v4 c=ptt;_v4 ptk1=khwr(tp,vUv,uP1,uRes);c.rgb=(1.-uP1a)*c.rgb+blmd(uP1b,c.rgb,ptk1.rgb,uP1a)*uP1a;c.rgb=(1.-uP2a)*c.rgb+blmd(uP2b,c.rgb,ptk1.rgb,uP2a)*uP2a;_v4 lk13=khwr(tl,vUv,uLs1,uRes);_v4 lk6=khwr(tl,vUv,uLs2,uRes);c.rgb=mix(c.rgb,_v3(uLinesColor),(lk13.r)*1.*uLinesAlpha);c.rgb=mix(c.rgb,_v3(uLinesColor),(lk6.r)*.575*uLinesAlpha);_f v=step(.1,lines.r);_f adjustment=max(.04,(1.-noiseValueBoosted.r));c=mix(c,_v4(uLinesColor,1.),v*0.109*uLinesAlpha*adjustment);_v4 kze=khwr(tze,vUv,3,uRes);c.rgb=mix(c.rgb,_v3(uZonesEdgesColor),kze.r*uZonesEdgesAlpha);_f edges=edge(tn,vUv,uRes);_f e=edges*1.;_v4 e4=1.-_v4(_v3(e),1.);c.rgb=blmd(12,c.rgb,e4.rgb,.087*(1.-e4.a));_v4 khe=khwr(tne,vUv,uEdgesKuwa+1,uRes);_v4 kheBlend=khwr(tne,vUv,uEk1,uRes);_v4 khe10=khwr(tne,vUv,uEdgesKuwa,uRes);_v4 khe3=khwr(tne2,vUv,3,uRes);_v4 khe4=khwr(tne2,vUv,uEk2+1,uRes);_v4 khe5=khwr(tne2,vUv,uEk2+2,uRes);_v4 khe1=khwr(tne,vUv,uEk3,uRes);c.rgb=mix(c.rgb,_v3(uEdgesColor),khe10.r*.34*uEdgesAlpha1);c.rgb=mix(c.rgb,_v3(uEdgesColor),khe.r*.42*uEdgesAlpha1);_f ae=kheBlend.r*.3*uEdgesAlpha2;_f ae3=(khe3.r+khe4.r*.5+khe5.r*.1)*uEdgesAlpha1b;_f ae2=khe1.r*uEdgesAlpha;c.rgb=blmd(uEdgesBlendMode,c.rgb,uEdgesColor3,ae2);c.rgb=blmd(uEdgesBlendMode2,c.rgb,uEdgesColor2,ae);c.rgb=blmd(uEdgesBlendMode3,c.rgb,uEdgesColorB,ae3);_v4 khse14=khwr(tbe,vUv,uSe1,uRes);_v4 khse=khwr(tbe,vUv,uSe2,uRes);c.rgb=mix(c.rgb,_v3(uSpecialEdgeColor),khse.r*uSpecialEdgeAlpha);_f ase14=khse14.r*uKuwaVoroAlpha;_f ase=khse.r*uKuwaVoroAlpha;c.rgb=blmd(uKuwaVoroBlend,c.rgb,uKuwaVoroColor,ase14);c.rgb=blmd(uKuwaVoroBlend,c.rgb,uKuwaVoroColor,ase);oc0=c;_v3 grn1=gtgrn(uGrainScale);_f stns=gtstns(grn1.rg);oc0.rgb=blmd(uNoiseBlendMode,oc0.rgb,grn1,uNoiseStr);oc0.rgb=blmd(uStainsBlendMode,oc0.rgb,_v3(stns),uStainsValue);}`,Aa=`#i_ edge #i_ contrast #i_ brightness _u _s2 tN;_u _f uEB;_u _f uEC;_u _v2 uRes;in _v2 vUv;_lay0)out _v4 outColor0;_v4 tbw(_s2 tex,_v2 co){_v4 c=texture(tex,co);c=bmx(uEB)*ctmx(uEC)*c;c.rgb=brn(c.rgb,uEB);_f bw=(c.r+c.g+c.b)/3.0;return _v4(_v3(bw),c.a);}_f edge2(in _s2 tex,in _v2 co,in _v2 rs){_f dx=1.0/rs.x;_f dy=1.0/rs.y;_v4 p[9];p[0]=_ttb_-1.0*dx,-1.0*dy));p[1]=_ttb_-1.0*dx,0.0*dy));p[2]=_ttb_-1.0*dx,1.0*dy));p[3]=_ttb_0.0*dx,-1.0*dy));p[4]=_ttb_0.0*dx,0.0*dy));p[5]=_ttb_0.0*dx,1.0*dy));p[6]=_ttb_1.0*dx,-1.0*dy));p[7]=_ttb_1.0*dx,0.0*dy));p[8]=_ttb_1.0*dx,1.0*dy));_f d=(edi(p[1],p[7])+edi(p[5],p[3])+edi(p[0],p[8])+edi(p[2],p[6]))/4.;return eth(0.25,.4,clamp(3.0*d,0.0,1.0));}void main(){_f es=edge2(tN,vUv,uRes);_f e=es*1.;_v4 e4=1.-_v4(_v3(e),1.);outColor0=_v4(1.-e4.rgb,(1.-e4.a));}`;const ka=z(Br),Sa=Aa.replace(/_ttb_/g,"tbw(tex, co + _v2(");let Ma=z(Sa);class jt extends ft{constructor(t){super(),this._u={tN:{value:t},uEB:{value:1},uEC:{value:1},uRes:{value:u.resolutionNoDPR}},this.mesh=new yt(u.gl,{geometry:new At(u.gl,{width:1,height:1}),_pr:new wt(u.gl,{vertex:ka,fragment:Ma,UNF:this._u,transparent:!0})}),this.addChild(this.mesh)}render(t,e){this._u.uEB.value=t,this._u.uEC.value=e,super.render()}}const Da=z(ya);class Ea extends ft{constructor(t={}){super(1),this._d=y.composerData,this._ne=new jt(t.tn),this._ne2=new jt(t.tn),this._se=new jt(t.tb),this._ze=new jt(t.tz);const{fs:e}=this._gufd(this._d,{fs:Da});this.init({textures:t,fs:e}),this._u.tne={value:this._ne.texture},this._u.tne2={value:this._ne2.texture},this._u.tbe={value:this._se.texture},this._u.tze={value:this._ze.texture},this.fxaaPass=new wa({textures:this._renderTarget.textures})}render(){const t=this._d;this._ne.render(1,t.edgesContrast),this._ne2.render(1,t.edgesContrast2),this._se.render(1,t.specialEdgeContrast),this._ze.render(1,t.zonesEdgeContrast),this._u.uSeed.value=u.seed,super.render(),this.fxaaPass.render()}get texture(){return this.fxaaPass.texture}get tne2(){return this._ne2.texture}}var Ba=`#i_ noiseUtils #i_ snoise3d #iu_ _u _f uSeed;_u _f uSR;in vec2 vUv;_lay0)out _v4 outColor0;_vm_v2 uvScaled=vUv*_v2(uSR,1.);_f borderWidth=uWidthImpact;_f xborder=_smst(0.,borderWidth,vUv.x)-(_smst(1.-borderWidth,1.,vUv.x));_f yborder=_smst(0.,borderWidth*uSR,vUv.y)-(_smst(1.-borderWidth*uSR,1.,vUv.y));_f border=xborder*yborder;border=1.-border;vec2 curlIQNoiseVal=(iqrep(_v3(uvScaled*uVoroUvMult,(uSeed+5.)*uVoroSeedMult))*2.-1.)*((uVoroStr+border*uVoroBorderImpact)*(1.-border));outColor0=_v4(curlIQNoiseVal,0.,1.);}`;z(Ba);u.rand;class za extends ft{constructor(){super(),this._grid=new aa(!0),this._vegeLayer=new ba(this._grid.texture),this._def=new oa({tGrid:this._grid.texture,tGridLines:this._grid.textureLines,tVeges:this._vegeLayer.textures},!1),this._cp=new Ea({tp:this._def.textures[0],tl:this._def.textures[1],tb:this._def.textures[2],tn:this._def.textures[3],tz:this._def.textures[4]}),this._orders=[{r:this._grid,data:y.gridData},{r:this._vegeLayer,data:y.vegeData},{r:this._def,data:y.deformerData},{r:this._cp,data:y.composerData}]}generate(){this._grid.generate(),this._grid.seasonize(),this._vegeLayer.generate()}render(t=!1){let e=!1;for(let s of this._orders){if(!s.data){e&&s.r?.render();continue}(t||s.data.isDirty||e)&&(s.r.render(),e=!0)}return super.render(),e}get t(){return this._cp.texture}get td(){return this._def.textures[3]}get tc(){return this._cp.tne2}}function Pa(r,t){return u.rand()*(t-r)+r}class Ta{generate(){u.rand(),y.composerData.grainPerturb=Pa(50,1e3);const t=[2,2,2,3,3,4];let e=t[u.rand()*t.length>>0];y.forceWrap&&(e=2);const s=y.deformerData,i=s.cnoise;s.noiseB.wrappingValues=e,e===4?i.cNoiseUVMult=4.046:i.cNoiseUVMult=3.046;const n=[0,2,4];e===5&&n.push(6);let l=6+n[u.rand()*n.length>>0];e===2?(l-=4,l=Math.max(l,4)):e===3&&(l-=2),s.noise.tierDivider=l}}console.log("@florianzumbrunn; Hash: ",tokenData.hash);d.shift();const W=navigator.userAgent;W.match(/Android/i)||W.match(/webOS/i)||W.match(/iPhone/i)||W.match(/iPod/i)||W.match(/BlackBerry/i)||W.match(/Windows Phone/i)?u.dpr=.4:W.match(/iPad/i)&&(u.dpr=.7);Jo.start(Ir,tokenData.hash);let La=d[d.length*u.rand()>>0];y.setPalette(La.data);new ea;const G=new Fi(u.size.width,u.size.height);G.initWebGL();u.sketch=G;const pe=new za,Va=new Ta;Va.generate();G.setBgColor(y.backgroundColor);G.renderWebGL({clear:!0});document.body.appendChild(u.gl.canvas);const Fa=()=>{G.artwork=pe.t,G.setBgColor(y.backgroundColor),G.renderWebGL({options:y.postprocessData,clear:!0})};u.seed=600+u.rand()*100;pe.generate();pe.render(y.hasBGChange);setTimeout(()=>{Fa(),u.gl.canvas.style.display="block"},10);