memoscan
← all memos

Memo 0xc4115218…c9ae42 on Ethereum

:this.gl.texImage2D(this.target,this.level,this.internalFormat,this.format,this.type,this.image),this.onUpdate&&this.onUpdate()):this.width?this.gl.texImage2D(this.target,this.level,this.internalFormat,this.width,this.height,0,this.format,this.type,null):this.gl.texImage2D(this.target,0,this.gl.RGBA,1,1,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,ri),this.store.image=this.image)}}class se{constructor(t,{width:e=t.canvas.width,height:s=t.canvas.height,target:i=t.FRAMEBUFFER,color:n=1,depth:a=!0,stencil:l=!1,depthTexture:h=!1,wrapS:c=t.CLAMP_TO_EDGE,wrapT:_=t.CLAMP_TO_EDGE,minFilter:v=t.LINEAR,magFilter:f=v,type:A=t.UNSIGNED_BYTE,format:b=t.RGBA,internalFormat:C=b,unpackAlignment:g,premultiplyAlpha:p}={}){this.gl=t,this.width=e,this.height=s,this.depth=a,this.buffer=this.gl.createFramebuffer(),this.target=i,this.gl.renderer.bindFramebuffer(this),this.textures=[];const m=[];for(let P=0;P<n;P++)this.textures.push(new Qt(t,{width:e,height:s,wrapS:c,wrapT:_,minFilter:v,magFilter:f,type:A,format:b,internalFormat:C,unpackAlignment:g,premultiplyAlpha:p,flipY:!1,generateMipmaps:!1})),this.textures[P].update(),this.gl.framebufferTexture2D(this.target,this.gl.COLOR_ATTACHMENT0+P,this.gl.TEXTURE_2D,this.textures[P].texture,0),m.push(this.gl.COLOR_ATTACHMENT0+P);m.length>1&&this.gl.renderer.drawBuffers(m),this.texture=this.textures[0],this.gl.renderer.bindFramebuffer({target:this.target})}setSize(t,e){if(!(this.width===t&&this.height===e)){this.width=t,this.height=e,this.gl.renderer.bindFramebuffer(this);for(let s=0;s<this.textures.length;s++)this.textures[s].width=t,this.textures[s].height=e,this.textures[s].needsUpdate=!0,this.textures[s].update(),this.gl.framebufferTexture2D(this.target,this.gl.COLOR_ATTACHMENT0+s,this.gl.TEXTURE_2D,this.textures[s].texture,0);this.gl.renderer.bindFramebuffer({target:this.target})}}}const Ce={black:"#000000",white:"#ffffff"};function we(r){r.length===4&&(r=r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(r);return[parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255]}function ni(r){return r=parseInt(r),[(r>>16&255)/255,(r>>8&255)/255,(r&255)/255]}function ye(r){return r===void 0?[0,0,0]:arguments.length===3?arguments:isNaN(r)?r[0]==="#"?we(r):Ce[r.toLowerCase()]?we(Ce[r.toLowerCase()]):[0,0,0]:ni(r)}class $ extends Array{constructor(t){return Array.isArray(t)?super(...t):super(...ye(...arguments))}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}set r(t){this[0]=t}set g(t){this[1]=t}set b(t){this[2]=t}set(t){return Array.isArray(t)?this.copy(t):this.copy(ye(...arguments))}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this}}function oi(r,t){return r[0]=t[0],r[1]=t[1],r}function ai(r,t,e){return r[0]=t,r[1]=e,r}class L extends Array{constructor(t=0,e=t){return super(t,e),this}get x(){return this[0]}get y(){return this[1]}set x(t){this[0]=t}set y(t){this[1]=t}set(t,e=t){return t.length?this.copy(t):(ai(this,t,e),this)}copy(t){return oi(this,t),this}}class At extends ne{constructor(t,{width:e=1,height:s=1,widthSegments:i=1,heightSegments:n=1,attributes:a={}}={}){const l=i,h=n,c=(l+1)*(h+1),_=l*h*6,v=new Float32Array(c*3),f=new Float32Array(c*3),A=new Float32Array(c*2),b=_>65536?new Uint32Array(_):new Uint16Array(_);At.buildPlane(v,f,A,b,e,s,0,l,h),Object.assign(a,{position:{size:3,data:v},normal:{size:3,data:f},uv:{size:2,data:A},index:{data:b}}),super(t,a)}static buildPlane(t,e,s,i,n,a,l,h,c,_=0,v=1,f=2,A=1,b=-1,C=0,g=0){const p=C,m=n/h,P=a/c;for(let k=0;k<=c;k++){let te=k*P-a/2;for(let B=0;B<=h;B++,C++){let Pr=B*m-n/2;if(t[C*3+_]=Pr*A,t[C*3+v]=te*b,t[C*3+f]=l/2,e[C*3+_]=0,e[C*3+v]=0,e[C*3+f]=l>=0?1:-1,s[C*2]=B/h,s[C*2+1]=1-k/c,k===c||B===h)continue;let Tr=p+B+k*(h+1),fe=p+B+(k+1)*(h+1),Lr=p+B+(k+1)*(h+1)+1,ge=p+B+k*(h+1)+1;i[g*6]=Tr,i[g*6+1]=fe,i[g*6+2]=ge,i[g*6+3]=fe,i[g*6+4]=Lr,i[g*6+5]=ge,g++}}}}class li extends ne{constructor(t,{attributes:e={}}={}){Object.assign(e,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(t,e)}}class hi{constructor(t,{width:e,height:s,dpr:i,wrapS:n=t.CLAMP_TO_EDGE,wrapT:a=t.CLAMP_TO_EDGE,minFilter:l=t.LINEAR,magFilter:h=t.LINEAR,geometry:c=new li(t),targetOnly:_=null}={}){this.gl=t,this.options={wrapS:n,wrapT:a,minFilter:l,magFilter:h},this.passes=[],this.geometry=c,this.uniform={value:null},this.targetOnly=_;const v=this.fbo={read:null,write:null,swap:()=>{let f=v.read;v.read=v.write,v.write=f}};this.resize({width:e,height:s,dpr:i})}addPass({vertex:t="",fragment:e="",UNF:s={},textureUniform:i="tMap",enabled:n=!0}={}){s[i]={value:this.fbo.read.texture};const a=new wt(this.gl,{vertex:t,fragment:e,UNF:s}),h={mesh:new yt(this.gl,{geometry:this.geometry,_pr:a}),_pr:a,UNF:s,enabled:n,textureUniform:i};return this.passes.push(h),h}resize({width:t,height:e,dpr:s}={}){s&&(this.dpr=s),t&&(this.width=t,this.height=e||t),s=this.dpr||this.gl.renderer.dpr,t=Math.floor((this.width||this.gl.renderer.width)*s),e=Math.floor((this.height||this.gl.renderer.height)*s),this.options.width=t,this.options.height=e,this.fbo.read=new se(this.gl,this.options),this.fbo.write=new se(this.gl,this.options)}render({scene:t,camera:e,texture:s,target:i=null,update:n=!0,sort:a=!0,frustumCull:l=!0,beforePostCallbacks:h}){const c=this.passes.filter(_=>_.enabled);s||(this.gl.renderer.render({scene:t,camera:e,target:c.length||!i&&this.targetOnly?this.fbo.write:i,update:n,sort:a,frustumCull:l}),this.fbo.swap(),h&&h.forEach(_=>_&&_())),c.forEach((_,v)=>{_.mesh._pr.UNF[_.textureUniform].value=!v&&s?s:this.fbo.read.texture,this.gl.renderer.render({scene:_.mesh,target:v===c.length-1&&(i||!this.targetOnly)?i:this.fbo.write,clear:!0}),this.fbo.swap()}),this.uniform.value=this.fbo.read.texture}}var ui="_m4 bmx(_f b){return _m4(1,0,0,0,0,1,0,0,0,0,1,0,b,b,b,1);}_v3 brn(_v3 c,_f v){return c+v;}",ci="_m4 ctmx(_f contrast){_f t=(1.0-contrast)/2.0;return _m4(contrast,0,0,0,0,contrast,0,0,0,0,contrast,0,t,t,t,1);}_v3 contrast(_v3 color,_f value){return 0.5+value*(color-0.5);}",_i="_v3 hueshift(_v3 color,_f hue){const _v3 k=_v3(0.57735,0.57735,0.57735);_f cosAngle=cos(hue);return _v3(color*cosAngle+cross(k,color)*sin(hue)+k*dot(k,color)*(1.0-cosAngle));}_v3 hueshift2(_v3 color,_f shift){_v3 P=_v3(0.55735)*dot(_v3(0.55735),color);_v3 U=color-P;_v3 V=cross(_v3(0.55735),U);color=U*cos(shift*6.2832)+V*sin(shift*6.2832)+P;return color;}",vi="_v3 saturation(_v3 rgb,_f adjustment){const _v3 W=_v3(0.2125,0.7154,0.0721);_v3 intensity=_v3(dot(rgb,W));return mix(intensity,rgb,adjustment);}_v3 saturation2(_v3 rgb,_f adjustment){const _v3 W=_v3(0.2125,0.7154,0.0721);_v3 intensity=_v3(dot(rgb,W));return mix(rgb,intensity,adjustment);}",di="_f blOv(_f b,_f bl){return b<0.5 ?(2.0*b*bl):(1.0-2.0*(1.0-b)*(1.0-bl));}_v3 blOv(_v3 b,_v3 bl){return _v3(blOv(b.r,bl.r),blOv(b.g,bl.g),blOv(b.b,bl.b));}_v3 blOv(_v3 b,_v3 bl,_f o){return(blOv(b,bl)*o+b*(1.0-o));}_f blCB(_f b,_f bl){return(bl==0.0)? bl : max((1.0-((1.0-b)/bl)),0.0);}_v3 blCB(_v3 b,_v3 bl){return _v3(blCB(b.r,bl.r),blCB(b.g,bl.g),blCB(b.b,bl.b));}_v3 blCB(_v3 b,_v3 bl,_f o){return(blCB(b,bl)*o+b*(1.0-o));}_f blCD(_f b,_f bl){return(bl==1.0)? bl : min(b/(1.0-bl),1.0);}_v3 blCD(_v3 b,_v3 bl){return _v3(blCD(b.r,bl.r),blCD(b.g,bl.g),blCD(b.b,bl.b));}_v3 blCD(_v3 b,_v3 bl,_f o){return(blCD(b,bl)*o+b*(1.0-o));}_f blVL(_f b,_f bl){return(bl<0.5)? blCB(b,(2.0*bl)): blCD(b,(2.0*(bl-0.5)));}_v3 blVL(_v3 b,_v3 bl){return _v3(blVL(b.r,bl.r),blVL(b.g,bl.g),blVL(b.b,bl.b));}_v3 blVL(_v3 b,_v3 bl,_f o){return(blVL(b,bl)*o+b*(1.0-o));}_f blAdd(_f b,_f bl){return min(b+bl,1.0);}_v3 blAdd(_v3 b,_v3 bl){return min(b+bl,_v3(1.0));}_v3 blAdd(_v3 b,_v3 bl,_f o){return(blAdd(b,bl)*o+b*(1.0-o));}_v3 blav(_v3 b,_v3 bl){return(b+bl)/2.0;}_v3 blav(_v3 b,_v3 bl,_f o){return(blav(b,bl)*o+b*(1.0-o));}_f blD(_f b,_f bl){return min(bl,b);}_v3 blD(_v3 b,_v3 bl){return _v3(blD(b.r,bl.r),blD(b.g,bl.g),blD(b.b,bl.b));}_v3 blD(_v3 b,_v3 bl,_f o){return(blD(b,bl)*o+b*(1.0-o));}_v3 blHL(_v3 b,_v3 bl){return blOv(bl,b);}_v3 blHL(_v3 b,_v3 bl,_f o){return(blHL(b,bl)*o+b*(1.0-o));}_f blHM(_f b,_f bl){return(blVL(b,bl)<0.5)? 0.0 : 1.0;}_v3 blHM(_v3 b,_v3 bl){return _v3(blHM(b.r,bl.r),blHM(b.g,bl.g),blHM(b.b,bl.b));}_v3 blHM(_v3 b,_v3 bl,_f o){return(blHM(b,bl)*o+b*(1.0-o));}_f blLi(_f b,_f bl){return max(bl,b);}_v3 blLi(_v3 b,_v3 bl){return _v3(blLi(b.r,bl.r),blLi(b.g,bl.g),blLi(b.b,bl.b));}_v3 blLi(_v3 b,_v3 bl,_f o){return(blLi(b,bl)*o+b*(1.0-o));}_f blLB(_f b,_f bl){return max(b+bl-1.0,0.0);}_v3 blLB(_v3 b,_v3 bl){return max(b+bl-_v3(1.0),_v3(0.0));}_v3 blLB(_v3 b,_v3 bl,_f o){return(blLB(b,bl)*o+b*(1.0-o));}_f blLD(_f b,_f bl){return min(b+bl,1.0);}_v3 blLD(_v3 b,_v3 bl){return min(b+bl,_v3(1.0));}_v3 blLD(_v3 b,_v3 bl,_f o){return(blLD(b,bl)*o+b*(1.0-o));}_f blll(_f b,_f bl){return bl<0.5 ? blLB(b,(2.0*bl)): blLD(b,(2.0*(bl-0.5)));}_v3 blll(_v3 b,_v3 bl){return _v3(blll(b.r,bl.r),blll(b.g,bl.g),blll(b.b,bl.b));}_v3 blll(_v3 b,_v3 bl,_f o){return(blll(b,bl)*o+b*(1.0-o));}_v3 blM(_v3 b,_v3 bl){return b*bl;}_v3 blM(_v3 b,_v3 bl,_f o){return(blM(b,bl)*o+b*(1.0-o));}_v3 blN(_v3 b,_v3 bl){return bl;}_v3 blN(_v3 b,_v3 bl,_f o){return(blN(b,bl)*o+b*(1.0-o));}_f blPL(_f b,_f bl){return(bl<0.5)? blD(b,(2.0*bl)): blLi(b,(2.0*(bl-0.5)));}_v3 blPL(_v3 b,_v3 bl){return _v3(blPL(b.r,bl.r),blPL(b.g,bl.g),blPL(b.b,bl.b));}_v3 blPL(_v3 b,_v3 bl,_f o){return(blPL(b,bl)*o+b*(1.0-o));}_f blSc(_f b,_f bl){return 1.0-((1.0-b)*(1.0-bl));}_v3 blSc(_v3 b,_v3 bl){return _v3(blSc(b.r,bl.r),blSc(b.g,bl.g),blSc(b.b,bl.b));}_v3 blSc(_v3 b,_v3 bl,_f o){return(blSc(b,bl)*o+b*(1.0-o));}_f blSL(_f b,_f bl){return(bl<0.5)?(2.0*b*bl+b*b*(1.0-2.0*bl)):(sqrt(b)*(2.0*bl-1.0)+2.0*b*(1.0-bl));}_v3 blSL(_v3 b,_v3 bl){return _v3(blSL(b.r,bl.r),blSL(b.g,bl.g),blSL(b.b,bl.b));}_v3 blSL(_v3 b,_v3 bl,_f o){return(blSL(b,bl)*o+b*(1.0-o));}_v3 blmd(_i mode,_v3 b,_v3 bl,_f o){if(mode==1){return blAdd(b,bl,o);}else if(mode==2){return blav(b,bl,o);}else if(mode==3){return blCB(b,bl,o);}else if(mode==4){return blCD(b,bl,o);}else if(mode==5){return blD(b,bl,o);}else if(mode==9){return blHL(b,bl,o);}else if(mode==10){return blHM(b,bl,o);}else if(mode==11){return blLi(b,bl,o);}else if(mode==12){return blLB(b,bl,o);}else if(mode==13){return blLD(b,bl,o);}else if(mode==14){return blll(b,bl,o);}else if(mode==15){return blM(b,bl,o);}else if(mode==17){return blN(b,bl,o);}else if(mode==18){return blOv(b,bl,o);}else if(mode==20){return blPL(b,bl,o);}else if(mode==22){return blSc(b,bl,o);}else if(mode==23){return blSL(b,bl,o);}else if(mode==25){return blVL(b,bl,o);}}",pi="_v4 sharpen(in _s2 tex,in _v2 coords,in _v2 renderSize){_f dx=1.0/renderSize.x;_f dy=1.0/renderSize.y;_v4 sum=_v4(0.0);sum+=-1.*_t(tex,coords+_v2(-1.0*dx,0.0*dy));sum+=-1.*_t(tex,coords+_v2(0.0*dx,-1.0*dy));sum+=5.*_t(tex,coords+_v2(0.0*dx,0.0*dy));sum+=-1.*_t(tex,coords+_v2(0.0*dx,1.0*dy));sum+=-1.*_t(tex,coords+_v2(1.0*dx,0.0*dy));return sum;}",fi="_v4 changeHSVForChannel(_v3 origin,_v3 channel,_v3 hsv,_f threshold){_v4 color=_v4(origin,0.);_v3 c1=rgb2hsv(origin);_v3 c2=rgb2hsv(channel);if(distance(c1,c2)<=threshold){color.rgb=hueshift2(color.rgb,hsv.x);color.rgb=saturation(color.rgb,hsv.y);color.rgb=brn(color.rgb,hsv.z);color.a=1.;}return color;}",gi="_f eth(in _f thr1,in _f thr2,in _f val){if(val<thr1){return 0.0;}if(val>thr2){return 1.0;}return val;}_f edi(in _v4 p1,in _v4 p2){return(abs(p1.r-p2.r)+abs(p1.g-p2.g)+abs(p1.b-p2.b))/3.0;}_f edge(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]=_ee_-1.0*dx,-1.0*dy));p[1]=_ee_-1.0*dx,0.0*dy));p[2]=_ee_-1.0*dx,1.0*dy));p[3]=_ee_0.0*dx,-1.0*dy));p[4]=_ee_0.0*dx,0.0*dy));p[5]=_ee_0.0*dx,1.0*dy));p[6]=_ee_1.0*dx,-1.0*dy));p[7]=_ee_1.0*dx,0.0*dy));p[8]=_ee_1.0*dx,1.0*dy));_f delta=(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*delta,0.0,1.0));}",bi="_v4 khwr(_s2 src,_v2 uv,_i rad,_v2 res){_f n=_f((rad+1)*(rad+1));_v3 m[4];_v3 s[4];for(_i k=0;k<4;++k){m[k]=_v3(0.);s[k]=_v3(0.);}for(_i j=-rad;j<=0;++j){for(_i i=-rad;i<=0;++i){_v3 c=_t(src,uv+_v2(i,j)/res).rgb;m[0]+=c;s[0]+=c*c;}}for(_i j=-rad;j<=0;++j){for(_i i=0;i<=rad;++i){_v3 c=_t(src,uv+_v2(i,j)/res).rgb;m[1]+=c;s[1]+=c*c;}}for(_i j=0;j<=rad;++j){for(_i i=0;i<=rad;++i){_v3 c=_t(src,uv+_v2(i,j)/res).rgb;m[2]+=c;s[2]+=c*c;}}for(_i j=0;j<=rad;++j){for(_i i=-rad;i<=0;++i){_v3 c=_t(src,uv+_v2(i,j)/res).rgb;m[3]+=c;s[3]+=c*c;}}_v4 color=_v4(0.);_f min=100.;for(_i k=0;k<4;++k){m[k]/=n;s[k]=abs(s[k]/n-m[k]*m[k]);_f nv=s[k].r+s[k].g+s[k].b;if(nv<min){min=nv;color=_v4(m[k],1.0);}}return color;}",mi="_f hue2rgb(_f f1,_f f2,_f hue){if(hue<0.0)hue+=1.0;else if(hue>1.0)hue-=1.0;_f res;if((6.0*hue)<1.0)res=f1+(f2-f1)*6.0*hue;else if((2.0*hue)<1.0)res=f2;else if((3.0*hue)<2.0)res=f1+(f2-f1)*((2.0/3.0)-hue)*6.0;else res=f1;return res;}_v3 hsl2rgb(_v3 hsl){_v3 rgb;if(hsl.y==0.0){rgb=_v3(hsl.z);}else{_f f2;if(hsl.z<0.5)f2=hsl.z*(1.0+hsl.y);else f2=hsl.z+hsl.y-hsl.y*hsl.z;_f f1=2.0*hsl.z-f2;rgb.r=hue2rgb(f1,f2,hsl.x+(1.0/3.0));rgb.g=hue2rgb(f1,f2,hsl.x);rgb.b=hue2rgb(f1,f2,hsl.x-(1.0/3.0));}return rgb;}_v3 hsl2rgb(_f h,_f s,_f l){return hsl2rgb(_v3(h,s,l));}",xi="vec3 rgb2hsl(vec3 c){float cMin=min(min(c.r,c.g),c.b),cMax=max(max(c.r,c.g),c.b),delta=cMax-cMin;vec3 hsl=vec3(0.,0.,(cMax+cMin)/2.);if(delta!=0.0){if(hsl.z<.5){hsl.y=delta/(cMax+cMin);}else{hsl.y=delta/(2.-cMax-cMin);}float deltaR=(((cMax-c.r)/6.)+(delta/2.))/delta,deltaG=(((cMax-c.g)/6.)+(delta/2.))/delta,deltaB=(((cMax-c.b)/6.)+(delta/2.))/delta;if(c.r==cMax){hsl.x=deltaB-deltaG;}else if(c.g==cMax){hsl.x=(1./3.)+deltaR-deltaB;}else{hsl.x=(2./3.)+deltaG-deltaR;}hsl.x=fract(hsl.x);}return hsl;}",Ci="const _v4 C=_v4(0.21,0.36,-0.57,0.02);_f snoise2d(_v2 v){_v2 i=floor(v+dot(v,C.yy));_v2 x0=v-i+dot(i,C.xx);_v2 i1;i1=(x0.x>x0.y)? _v2(1.0,0.0): _v2(0.0,1.0);_v4 x12=x0.xyxy+C.xxzz;x12.xy-=i1;i=mod(i,289.0);_v3 p=permute(permute(i.y+_v3(0.0,i1.y,1.0))+i.x+_v3(0.0,i1.x,1.0));_v3 m=max(0.5-_v3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.0);m=m*m;m=m*m;_v3 x=2.0*fract(p*C.www)-1.0;_v3 h=abs(x)-0.5;_v3 ox=floor(x+0.5);_v3 a0=x-ox;m*=1.792-0.853*(a0*a0+h*h);_v3 g;g.x=a0.x*x0.x+h.x*x0.y;g.yz=a0.yz*x12.xz+h.yz*x12.yw;return 130.0*dot(m,g);}",wi=`const float PI=3.14;const float PI2=PI*2.;_f snoise3d(_v3 v){ #i_ snoise3dpart _v4 norm=tisq(_v4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;_v4 m=max(0.6-_v4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m*m;return 42.0*dot(m,_v4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}_v3 snoise_v3(_v3 x){_f s=snoise3d(_v3(x));_f s1=snoise3d(_v3(x.y-9.07,x.z+31.2,x.x+23.12));_f s2=snoise3d(_v3(x.z+74.2,x.x-130.2,x.y+99.4));_v3 c=_v3(s,s1,s2);return c;}_v3 curlNoise(_v3 p){const _f e=.1;_v3 dx=_v3(e,0.0,0.0);_v3 dy=_v3(0.0,e,0.0);_v3 dz=_v3(0.0,0.0,e);_v3 p_x0=snoise_v3(p-dx);_v3 p_x1=snoise_v3(p+dx);_v3 p_y0=snoise_v3(p-dy);_v3 p_y1=snoise_v3(p+dy);_v3 p_z0=snoise_v3(p-dz);_v3 p_z1=snoise_v3(p+dz);_f x=p_y1.z-p_y0.z-p_z1.y+p_z0.y;_f y=p_z1.x-p_z0.x-p_x1.z+p_x0.z;_f z=p_x1.y-p_x0.y-p_y1.x+p_y0.x;const _f divisor=1.0/(2.0*e);return normalize(_v3(x,y,z)*divisor);}_v2 nsin(_v2 val){return sin(val)*.5+.5;}_v3 nsin(_v3 val){return sin(val)*.5+.5;}_v3 hh3(_v2 p,_f s){_v3 q=_v3(dot(p,_v2(127.1,311.7)),dot(p,_v2(269.5+pow(s,1.3),183.3+s)),dot(p,_v2(419.2,371.9+s)));return nsin(q+s);}_f iq(in _v2 x,_f u,_f v,_f s){_v2 p=floor(x);_v2 f=nsin(x*PI2*u);_f k=1.0+(63.0*.01)*pow(1.0-v,4.0);_f va=0.0;_f wt=0.0;for(_i j=-2;j<=2;j++)for(_i i=-2;i<=2;i++){_v2 g=_v2(_f(i),_f(j));_v3 o=hh3(p+g,s)*_v3(u,u,1.0);_v2 r=g-f+o.xy;_f d=dot(r,r);_f ww=pow(1.0-_smst(0.0,1.414,sqrt(d)),k);va+=o.z*ww;wt+=ww;}return va/wt;}_v2 crliq(_v2 p,_f u,_f v,_f s){const _f e=.1;_v2 dx=_v2(e,0.0);_v2 dy=_v2(0.0,e);_v2 dz=_v2(e,0.);_f p_x0=iq(p-dx,u,v,s);_f p_x1=iq(p+dx,u,v,s);_f p_y0=iq(p-dy,u,v,s);_f p_y1=iq(p+dy,u,v,s);_f p_z0=iq(p-dz,u,v,s);_f p_z1=iq(p+dz,u,v,s);_f x=p_y1-p_y0-p_z1+p_z0;_f y=p_z1-p_z0-p_x1+p_x0;_f z=p_x1-p_x0-p_y1+p_y0;const _f divisor=1.0/(2.0*e);return normalize(_v2(x,y)*divisor);}_v2 iqrep(_v3 p){return crliq(p.xy,1.1,.7,p.z);}`,yi="_v2 fade(_v2 t){return t*t*t*(t*(t*6.0-15.0)+10.0);}_f cnoise(_v2 P){_v4 Pi=floor(P.xyxy)+_v4(0.0,0.0,1.0,1.0);_v4 Pf=fract(P.xyxy)-_v4(0.0,0.0,1.0,1.0);Pi=mod(Pi,289.0);_v4 ix=Pi.xzxz;_v4 iy=Pi.yyww;_v4 fx=Pf.xzxz;_v4 fy=Pf.yyww;_v4 i=permute(permute(ix)+iy);_v4 gx=2.0*fract(i*0.024)-1.0;_v4 gy=abs(gx)-0.5;_v4 tx=floor(gx+0.5);gx=gx-tx;_v2 g00=_v2(gx.x,gy.x);_v2 g10=_v2(gx.y,gy.y);_v2 g01=_v2(gx.z,gy.z);_v2 g11=_v2(gx.w,gy.w);_v4 norm=1.793-0.853*_v4(dot(g00,g00),dot(g01,g01),dot(g10,g10),dot(g11,g11));g00*=norm.x;g01*=norm.y;g10*=norm.z;g11*=norm.w;_f n00=dot(g00,_v2(fx.x,fy.x));_f n10=dot(g10,_v2(fx.y,fy.y));_f n01=dot(g01,_v2(fx.z,fy.z));_f n11=dot(g11,_v2(fx.w,fy.w));_v2 fade_xy=fade(Pf.xy);_v2 n_x=mix(_v2(n00,n01),_v2(n10,n11),fade_xy.x);_f n_xy=mix(n_x.x,n_x.y,fade_xy.y);return 2.3*n_xy;}_v2 curlNoiseC(_v2 p){const _f e=.1;_v2 dx=_v2(e,0.0);_v2 dy=_v2(0.0,e);_v2 dz=_v2(0.0,0.0);_f p_x0=cnoise(p-dx);_f p_x1=cnoise(p+dx);_f p_y0=cnoise(p-dy);_f p_y1=cnoise(p+dy);_f p_z0=cnoise(p-dz);_f p_z1=cnoise(p+dz);_f x=p_y1-p_y0-p_z1+p_z0;_f y=p_z1-p_z0-p_x1+p_x0;const _f divisor=1.0/(2.0*e);return normalize(_v2(x,y)*divisor);}",Ai="_f pnoise3D(_v3 P,_v3 rep){_v3 Pi0=mod(floor(P),rep);_v3 Pi1=mod(Pi0+_v3(1.0),rep);Pi0=mod289(Pi0);Pi1=mod289(Pi1);_v3 Pf0=fract(P);_v3 Pf1=Pf0-_v3(1.0);_v4 ix=_v4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);_v4 iy=_v4(Pi0.yy,Pi1.yy);_v4 iz0=Pi0.zzzz;_v4 iz1=Pi1.zzzz;_v4 ixy=permute(permute(ix)+iy);_v4 ixy0=permute(ixy+iz0);_v4 ixy1=permute(ixy+iz1);_v4 gx0=ixy0*(1.0/7.0);_v4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;gx0=fract(gx0);_v4 gz0=_v4(0.5)-abs(gx0)-abs(gy0);_v4 sz0=step(gz0,_v4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);_v4 gx1=ixy1*(1.0/7.0);_v4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;gx1=fract(gx1);_v4 gz1=_v4(0.5)-abs(gx1)-abs(gy1);_v4 sz1=step(gz1,_v4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);_v3 g000=_v3(gx0.x,gy0.x,gz0.x);_v3 g100=_v3(gx0.y,gy0.y,gz0.y);_v3 g010=_v3(gx0.z,gy0.z,gz0.z);_v3 g110=_v3(gx0.w,gy0.w,gz0.w);_v3 g001=_v3(gx1.x,gy1.x,gz1.x);_v3 g101=_v3(gx1.y,gy1.y,gz1.y);_v3 g011=_v3(gx1.z,gy1.z,gz1.z);_v3 g111=_v3(gx1.w,gy1.w,gz1.w);_v4 norm0=tisq(_v4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;_v4 norm1=tisq(_v4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;_f n000=dot(g000,Pf0);_f n100=dot(g100,_v3(Pf1.x,Pf0.yz));_f n010=dot(g010,_v3(Pf0.x,Pf1.y,Pf0.z));_f n110=dot(g110,_v3(Pf1.xy,Pf0.z));_f n001=dot(g001,_v3(Pf0.xy,Pf1.z));_f n101=dot(g101,_v3(Pf1.x,Pf0.y,Pf1.z));_f n011=dot(g011,_v3(Pf0.x,Pf1.yz));_f n111=dot(g111,Pf1);_v3 fade_xyz=fade(Pf0);_v4 n_z=mix(_v4(n000,n100,n010,n110),_v4(n001,n101,n011,n111),fade_xyz.z);vec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);_f n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return 2.2*n_xyz;}",ki="const _v2 C=_v2(1.0/6.0,1.0/3.0);const _v4 D=_v4(0.0,0.5,1.0,2.0);_v3 i=floor(v+dot(v,C.yyy));_v3 x0=v-i+dot(i,C.xxx);_v3 g=step(x0.yzx,x0.xyz);_v3 l=1.0-g;_v3 i1=min(g.xyz,l.zxy);_v3 i2=max(g.xyz,l.zxy);_v3 x1=x0-i1+C.xxx;_v3 x2=x0-i2+C.yyy;_v3 x3=x0-D.yyy;i=mod289(i);_v4 p=permute(permute(permute(i.z+_v4(0.0,i1.z,i2.z,1.0))+i.y+_v4(0.0,i1.y,i2.y,1.0))+i.x+_v4(0.0,i1.x,i2.x,1.0));_v3 ns=0.1428*D.wyz-D.xzx;_v4 j=p-49.0*floor(p*ns.z*ns.z);_v4 x_=floor(j*ns.z);_v4 y_=floor(j-7.0*x_);_v4 x=x_*ns.x+ns.yyyy;_v4 y=y_*ns.x+ns.yyyy;_v4 h=1.0-abs(x)-abs(y);_v4 b0=_v4(x.xy,y.xy);_v4 b1=_v4(x.zw,y.zw);_v4 s0=floor(b0)*2.0+1.0;_v4 s1=floor(b1)*2.0+1.0;_v4 sh=-step(h,_v4(0.));_v4 a0=b0.xzyw+s0.xzyw*sh.xxyy;_v4 a1=b1.xzyw+s1.xzyw*sh.zzww;_v3 p0=_v3(a0.xy,h.x);_v3 p1=_v3(a0.zw,h.y);_v3 p2=_v3(a1.xy,h.z);_v3 p3=_v3(a1.zw,h.w);",Si="vec2 mod289(vec2 x){return x-floor(x*(1.0/289.0))*289.0;}vec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec3 mod7(vec3 x){return x-floor(x*(1.0/7.0))*7.0;}vec3 permute(vec3 x){return mod289(((x*34.0)+10.0)*x);}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 tisq(vec4 r){return 1.792-0.853*r;}vec3 fade(vec3 t){return t*t*t*(t*(t*6.0-15.0)+10.0);}",Mi="_f grain(_v2 tc,_v2 r,_f f,_f m){_v2 mt=tc*r;_f offset=snoise3d(vec3(mt/m,f));_f n1=pnoise3D(vec3(mt,offset),vec3(1.0/tc*r,1.0));return n1/2.0+0.5;}_f grain(_v2 tc,_v2 r,_f f){return grain(tc,r,f,2.5);}_f grain(_v2 tc,_v2 r){return grain(tc,r,0.0);}";const Ae=/(#i_ .*)/gi,br={snoise3dpart:S(ki),brightness:S(ui),contrast:S(ci),hueShift:S(_i),saturation:S(vi),blendmodes:S(di),sharpen:S(pi),changeHSVForChannel:S(fi),edge:S(gi.replace(/_ee_/g,"_t(tex, co + _v2(")),khwr:S(bi),hsl2rgb:S(mi),rgb2hsl:xi,pnoise2d:S(yi),snoise2d:S(Ci),pnoise3d:S(Ai),noiseUtils:S(Si),grain:S(Mi)};br.snoise3d=S(mr(wi));function z(r){return r=mr(r),r=S(r),r=`#version 300 es precision highp float; `+r,r}function S(r){return r=r.replace(/_i/g,"int"),r=r.replace(/_f/g,"float"),r=r.replace(/_v2/g,"vec2"),r=r.replace(/_v3/g,"vec3"),r=r.replace(/_v4/g,"vec4"),r=r.replace(/_m2/g,"mat2"),r=r.replace(/_m3/g,"mat3"),r=r.replace(/_m4/g,"mat4"),r=r.replace(/_4/g,"mat4"),r=r.replace(/_s2/g,"sampler2D"),r=r.replace(/_t/g,"texture"),r=r.replace(/_u/g,"uniform"),r=r.replace(/_gte/g,"greaterThanEqual"),r=r.replace(/_lte/g,"lessThanEqual"),r=r.replace(/_smst/g,"smoothstep"),r=r.replace(/_lay/g,"layout(location = "),r=r.replace(/_vm/g,"void main() {"),r}function mr(r){const t=Di(r);for(const e of t){const s=Ei(e);let i=br[s];i=i.replace("#define GLSLIFY 1",""),r=r.replace(e,i)}return r}function Di(r){Ae.lastIndex=0;let t=null,e=0;const s=[];for(;(t=Ae.exec(r))&&e<100;)s.push(t[0]);return s}function Ei(r){return r.replace("#i_","").replace(/ /g,"")}var Bi=`_u _v2 uArtworkSize;_u _s2 tArtwork;_u _v3 uBgColor;_u _f uBrt;_u _f uCst;_u _f uStr;_u _f uHlgt;_u _f uSh;_u _f uHa;_u _f uShb;_u _f uShs;_u _f uNs;_u _v2 uLp;_u _f uLs;_u _f uRA;_u _i uK1;_u _f uK1a;_u _i uK1b;_u _i uK2;_u _f uK2a;_u _i uK2b;in _v2 vUv;out _v4 fc; #i_ contrast #i_ brightness #i_ blendmodes #i_ sharpen #i_ khwr _v2 stdNormalMap(_f h){return-_v2(dFdx(h),dFdy(h));}_f Lum(_v3 c){return 0.299*c.r+0.587*c.g+0.114*c.b;}_v3 ClipColor(_v3 c){_f l=Lum(c);_f n=min(min(c.r,c.g),c.b);_f x=max(max(c.r,c.g),c.b);if(n<0.0)c=max((c-l)*l/(l-n)+l,0.0);if(x>1.0)c=min((c-l)*(1.0-l)/(x-l)+l,1.0);return c;}_v3 SetLum(_v3 c,_f l){c+=l-Lum(c);return ClipColor(c);}_f Sat(_v3 c){_f n=min(min(c.r,c.g),c.b);_f x=max(max(c.r,c.g),c.b);return x-n;}_v3 SetSat(_v3 c,_f s){_f ci=min(min(c.r,c.g),c.b);_f ca=max(max(c.r,c.g),c.b);_v3 r=_v3(0.0);if(ca>ci){if(c.r==ci&&c.b==ca){r.r=0.0;r.g=((c.g-ci)*s)/(ca-ci);r.b=s;}else if(c.r==ci&&c.g==ca){r.r=0.0;r.b=((c.b-ci)*s)/(ca-ci);r.g=s;}else if(c.g==ci&&c.b==ca){r.g=0.0;r.r=((c.r-ci)*s)/(ca-ci);r.b=s;}else if(c.g==ci&&c.r==ca){r.g=0.0;r.b=((c.b-ci)*s)/(ca-ci);r.r=s;}else if(c.b==ci&&c.r==ca){r.b=0.0;r.g=((c.g-ci)*s)/(ca-ci);r.r=s;}else{r.b=0.0;r.r=((c.r-ci)*s)/(ca-ci);r.g=s;}}return r;}_v3 applyHue(_v3 col,_f h){_v3 k=_v3(0.57735,0.57735,0.57735);_f ca=cos(h);return col*ca+cross(k,col)*sin(h)+k*dot(k,col)*(1.0-ca);}_vm_v2 uv=vUv;_v4 at=_t(tArtwork,uv).rgba;at.rgb=mix(uBgColor,at.rgb,at.a);at.rgba=at.rgba*uRA+(1.0-uRA)*_v4(uBgColor,1.0);_v4 kw1=khwr(tArtwork,uv,uK1,uArtworkSize);_v4 kw2=khwr(tArtwork,uv,uK2,uArtworkSize);at.rgb=blmd(uK1b,at.rgb,kw1.rgb,uK1a);at.rgb=blmd(uK2b,at.rgb,kw2.rgb,uK2a);_v3 s=sharpen(tArtwork,uv,uArtworkSize*uShs).rgb;at.rgb=blmd(2,at.rgb,s.rgb,uShb*uRA);at=bmx(uBrt)*ctmx(uCst)*at;_f amt=mix(uHlgt,uSh,1.0-Lum(at.rgb))*at.a;if(amt<0.0)amt*=2.0;_v3 res=mix(at.rgb,_v3(1.0),amt);_v3 blend=mix(_v3(1.0),pow(at.rgb,_v3(1.0/0.7)),amt);res=max(1.0-((1.0-res)/blend),0.0);res=SetLum(SetSat(at.rgb,Sat(res)),Lum(res));res=applyHue(res,uHa);const _v3 W=_v3(0.2125,0.7154,0.0721);_v3 intensity=_v3(dot(res,W));res=mix(intensity,res,uStr);at.rgb=res;_f h=(at.r+at.g+at.b)/3.;_v2 n=stdNormalMap(h);n*=uNs;