memoscan
← all memos

Memo 0xe1a4fb87…f9004e on Ethereum

let{abs:_,ceil:e,floor:$,sin:r,sqrt:i,max:c,min:n,cos:l}=Math;class Random{constructor(){this.useA=!1;let _=function(_){let e=parseInt(_.substr(0,8),16),$=parseInt(_.substr(8,8),16),r=parseInt(_.substr(16,8),16),i=parseInt(_.substr(24,8),16);return function(){r|=0;let _=((e|=0)+($|=0)|0)+(i|=0)|0;return i=i+1|0,e=$^$>>>9,$=r+(r<<3)|0,r=(r=r<<21|r>>>11)+_|0,(_>>>0)/4294967296}};this.prngA=new _(tokenData.hash.substr(2,32)),this.prngB=new _(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}g(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}}const R=new Random;colorPick=pick_color(colorSets=[{name:"Dg",cBg:[.0888,.0888,.0888,1],cF:[.8,.8,.8,1],cH:[[.8,.8,.8,1],[.7,.7,.7,1],[.6,.6,.6,1],[.5,.5,.5,1],[.4,.4,.4,1]],cR:.1,w:7},{name:"D0",cBg:[.0588,.0588,.0588,1],cF:[.6,.6,.6,1],cH:[[.8,.8,.8,1]],cR:.85,w:2},{name:"D0",cBg:[.1215,.1215,.1215,1],cF:[1,1,1,1],cH:[[.8,.8,.8,1]],cR:.85,w:2},{name:"D1",cBg:[.1215,.1215,.1608,1],cF:[1,1,1,1],cH:[[.8,.8,.8,1]],cR:.85,w:2},{name:"D2",cBg:[.1215,.1608,.1215,1],cF:[1,1,1,1],cH:[[.8352,.7843,.7098,1]],cR:.85,w:2},{name:"DX",cBg:[.149,.1569,.1804,1],cF:[.6745,.6627,.6392,1],cH:[[.0784,.0314,.0431,1]],cR:.85,w:2},{name:"C1",cBg:[.2667,.298,.3334,1],cF:[.85,.85,.85,1],cH:[[1,1,1,1],[.8,.8,.8,1],[.6,.6,.6,1]],cR:.25,w:4},{name:"Ci",cBg:[.85,.85,.85,1],cF:[.2667,.298,.3334,1],cH:[[.4,.4,.4,1],[.5,.5,.5,1],[.6,.6,.6,1]],cR:.25,w:3},{name:"L0",cBg:[.8353,.8039,.7372,1],cF:[.149,.1569,.1804,1],cH:[[.0588,.1412,.5686,1]],cR:.85,w:2},{name:"L1",cBg:[.8824,.8706,.8431,1],cF:[.149,.1569,.1804,1],cH:[[.2588,.051,.1569,1]],cR:.85,w:1.5},{name:"Salmon",cBg:[.9829,.4049,.3573,1],cF:[.455,.175,.346,1],cH:[[.355,.075,.246,1]],cR:.85,w:1},{name:"Rouge",cBg:[.2157,.0196,.0784,1],cF:[.5176,.251,.3334,1],cH:[[.9099,.8196,.8156,1]],cR:.85,w:.5},{name:"Ernok",cBg:[.8118,.1255,.1451,1],cF:[.0667,.098,.1529,1],cH:[[.8275,.7099,.345,1]],cR:.85,w:1.5},{name:"Royal Blue",cBg:[.0392,.0471,.0902,1],cF:[.9099,.8706,.651,1],cH:[[.7255,.6627,.3216,1]],cR:.85,w:1},{name:"Blue",cBg:[.2074,.6388,.877,1],cF:[.1,.1,.1,1],cH:[[.3334,.1451,.0392,1]],cR:.85,w:.75},{name:"Cold Blue",cBg:[.5294,.8902,.8784,1],cF:[.1176,.0471,.0196,1],cH:[[.9216,.9216,.8588,1]],cR:.85,w:1.25},{name:"Radium",cBg:[.9099,.5059,.3608,1],cF:[.2,.1922,.1961,1],cH:[[.9216,.9216,.8588,1]],cR:.85,w:1},{name:"Beast",cBg:[.3882,.4235,.4549,1],cF:[.7804,.5059,.6275,1],cH:[[.1882,.1922,.2039,1]],cR:.85,w:.5},{name:"Bracco di Ferro",cBg:[.1529,.1451,.1412,1],cF:[.9529,.8588,.2863,1],cH:[[.2588,.3255,.1765,1]],cR:.85,w:.8},{name:"Kuao",cBg:[.1334,.1412,.1804,1],cF:[.6784,.149,.1608,1],cH:[[.1373,.302,.3608,1]],cR:.85,w:1.2},{name:"Hard",cBg:[.1255,0,.902,1],cF:[.9,.9,.9,1],cH:[[.1,.1,.1,1]],cR:.85,w:.5},{name:"Bowie",cBg:[.9334,.898,.2667,1],cF:[0,0,0,1],cH:[[.098,.3725,.7137,1]],cR:.85,w:1},]);let width,height,xc=$(70*R.g())+60,yc=$(1.333*xc),cBg=colorPick.cBg,cF=colorPick.cF,cH=colorPick.cH,cR=colorPick.cR,ns=1e5*R.g(),nrx=5+10*R.g(),nry=5+10*R.g(),nScale=5,gS=R.g()/6+.05,pl=25,animationDuration=15,smudge=R.g()/5+.05,borderWidth=[.75,.75,1,1,1.5][$(5*R.g())],lineRep=$(6*R.g())+2,sketchRate=[10,15,25][$(3*R.g())],hSketchRate=sketchRate,doodleMap=[...Array(15)].map((_,e)=>e).sort(()=>.5-R.g()).slice(0,4),grid=[],scl,cvs,ctx,gl,verShader,fragShader,bufferShader,vBuf,pShader,pBuffer,img,fBufs,fBufId=0,uC=0;function init(){for(let _ in document.body.style.background="#000000",(rr=document.createElement("canvas")).id="ref",document.body.append(rr),(gl=(cvs=document.getElementsByTagName("canvas")[0]).getContext("webgl2")).clearColor(0,0,0,1),vBuf=gBuffer(),pShader=cProgram(verShader,fragShader),pBuffer=cProgram(verShader,bufferShader),scl=1,""!=window.location.hash&&(scl=parseInt(window.location.hash.replace("#",""))),width=((ww=window.innerWidth)<.75*(wh=window.innerHeight)?ww:wh/4*3)*scl,height=(ww<.75*wh?ww/3*4:wh)*scl,cvs.width=width,cvs.height=height,noise.seed(1e4*R.g()),gGrid(),fBufs)gl.deleteFramebuffer(_.buf),gl.deleteTexture(_.texture);let e=gBase(width,height);img=gTexture(width,height,e),(fBufs=[]).push(cFBuffer(width,height,e)),fBufs.push(cFBuffer(width,height,null)),fBufId=0,run()}function run(){p=uPixels(),gl.deleteTexture(img),img=uTexture(width,height,p),uC+=1,rVisual(),rBuffer(),uC<grid.length*(pl+animationDuration)?setTimeout(()=>{document.title="Encore ("+$(uC/(grid.length*(pl+animationDuration))*100)+"%)",requestAnimationFrame(run)},16):(document.title="Encore",ref&&ref.remove())}function sProgram(_){gl.useProgram(_),_.vertexPosAttrib=gl.getAttribLocation(_,"pos"),gl.enableVertexAttribArray(_.vertexPosAttrib),gl.bindBuffer(gl.ARRAY_BUFFER,vBuf),gl.vertexAttribPointer(_.vertexPosAttrib,3,gl.FLOAT,!1,0,0)}function rVisual(){let _=fBufId,e=fBufId^=1;dirx=grid[$((uC-1)/(pl+animationDuration))].dx,diry=grid[$((uC-1)/(pl+animationDuration))].dy,sProgram(pShader),gl.bindFramebuffer(gl.FRAMEBUFFER,fBufs[e].buf),gl.viewport(0,0,width,height),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT),gl.activeTexture(gl.TEXTURE0+_),gl.bindTexture(gl.TEXTURE_2D,fBufs[_].tex),gl.activeTexture(gl.TEXTURE2),gl.bindTexture(gl.TEXTURE_2D,img),gl.uniform1i(gl.getUniformLocation(pShader,"buf"),_),gl.uniform1i(gl.getUniformLocation(pShader,"img"),2),gl.uniform1f(gl.getUniformLocation(pShader,"dirx"),dirx),gl.uniform1f(gl.getUniformLocation(pShader,"diry"),diry),gl.uniform1f(gl.getUniformLocation(pShader,"frame"),uC),bg=cBg,grid[$((uC-1)/(pl+animationDuration))].t>.5&&(t=grid[$((uC-1)/(pl+animationDuration))].t/20-.025,bg=[cBg[0]+t,cBg[1]+t,cBg[2]+t,1]),coll=grid[$((uC-1)/(pl+animationDuration))].c,gl.uniform4fv(gl.getUniformLocation(pShader,"cBg"),bg),gl.uniform4fv(gl.getUniformLocation(pShader,"cF"),coll),gl.drawArrays(gl.TRIANGLE_STRIP,0,4)}function rBuffer(){sProgram(pBuffer),gl.bindFramebuffer(gl.FRAMEBUFFER,null),gl.viewport(0,0,cvs.width,cvs.height),gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT),gl.activeTexture(gl.TEXTURE0),gl.bindTexture(gl.TEXTURE_2D,fBufs[fBufId].tex),gl.uniform1i(gl.getUniformLocation(pBuffer,"buffer"),0),gl.drawArrays(gl.TRIANGLE_STRIP,0,4)}function cProgram(_,e){let $=gl.createProgram(),r=cShader(decodeURIComponent("%23version 300 es%0A")+_,gl.VERTEX_SHADER),i=cShader(decodeURIComponent("%23version 300 es%0Aprecision highp float;")+e,gl.FRAGMENT_SHADER);return gl.attachShader($,r),gl.attachShader($,i),gl.linkProgram($),$}function cShader(_,e){let $=gl.createShader(e);return gl.shaderSource($,_),gl.compileShader($),$}function cFBuffer(_,e,$){let r=gl.createFramebuffer(),i=gTexture(_,e,$);return gl.bindFramebuffer(gl.FRAMEBUFFER,r),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,i,0),{buf:r,tex:i}}function gTexture(_,e,$){let r=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,r),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,_,e,0,gl.RGBA,gl.UNSIGNED_BYTE,$),r}function uTexture(_,e,$){let r=gl.createTexture();return gl.bindTexture(gl.TEXTURE_2D,r),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,_,e,0,gl.RGBA,gl.UNSIGNED_BYTE,$),r}function gBuffer(_){let e=gl.createBuffer();return gl.bindBuffer(gl.ARRAY_BUFFER,e),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,1,0,-1,-1,0,1,1,0,1,-1,0]),gl.STATIC_DRAW),e}function uPixels(_,r){if(ref=document.getElementById("ref"),ctx.clearRect(0,0,width,height),ctx.beginPath(),ctx.rect(0,0,width,height),ctx.fillStyle="black",ctx.fill(),ctx.closePath(),x1=(g=grid[$(uC/(pl+animationDuration))]).x*width,y1=g.y*height,wi=g.w*width,he=g.h*height,(fR=c(0,(frameRotate=uC/(pl+animationDuration)*(pl+animationDuration)-$(uC/(pl+animationDuration))*(pl+animationDuration))-(pl-1)))>0&&(yRC=e(yc/animationDuration)),uC/(pl+animationDuration)*(pl+animationDuration)-$(uC/(pl+animationDuration))*(pl+animationDuration)>pl-1){if(x1=0,y1=0,wi=width,he=height,wii=width/xc,hee=height/yc,g.t>-1)for(let i=0;i<xc;i++)for(let n=0;n<yc;n++)n>=(fR-1)*yRC&&n<fR*yRC&&g.polys.map(_=>{inside([x1+(i+.5)*wii+noise.simplex2(x1/width/nrx,y1/height/nry)*sc(nScale),y1+(n+.5)*hee+noise.simplex2(x1/width/nrx,y1/height/nry)*sc(nScale)],_)&&dScrawl(x1+i*wii,y1+n*hee,wii,hee,doodleMap[$(g.t*doodleMap.length)],"#ff0000",lineRep)})}else g.polys.map(_=>{ctx.beginPath(),_.map(_=>{ctx.lineTo(_[0]*width,_[1]*height)}),ctx.fillStyle="#00ff00",ctx.fill(),ctx.closePath()});return ref}function gBase(_,e){(ref=document.getElementById("ref")).width=width,ref.height=height,ref.style.display="none",(ctx=ref.getContext("2d")).beginPath(),ctx.rect(0,0,width,height),ctx.fillStyle="rgb("+$(255*cBg[0])+","+$(255*cBg[1])+","+$(255*cBg[2])+")",ctx.fill(),ctx.closePath(),x1=0,y1=0,wi=width,he=height,wii=width/xc,hee=height/yc,type=doodleMap[$(R.g()*doodleMap.length)];for(let r=0;r<xc;r++)for(let i=0;i<yc;i++)dScrawl(x1+r*wii,y1+i*hee,wii,hee,type,"rgb("+$(255*cF[0])+","+$(255*cF[1])+","+$(255*cF[2])+")",lineRep);return ref}function sc(_){return width/1500*_}function dScrawl(_,e,$,r,i=0,c,n=1){for(let l=0;l<n;l++)ctx.beginPath(),noii=noise.simplex2(_/width/nrx,e/height/nry)*sc(nScale),bv=1-2*gS,0===i&&(sBase=[{x:_+$*gS,y:e+r*gS,d:0},{x:_+.497*$,y:e+.503*r,d:0},{x:_+$*(1-gS),y:e+r*(1-gS),d:0},]),1===i&&(sBase=[{x:_+$*(1-gS),y:e+r*gS,d:0},{x:_+$*(.502*bv+gS),y:e+r*(.496*bv+gS),d:0},{x:_+$*gS,y:e+r*(1-gS),d:0},]),2===i&&(sBase=[{x:_+$*(1-gS),y:e+r*gS,d:0},{x:_+$*(.495*bv+gS),y:e+r*(.498*bv+gS),d:0},{x:_+$*(1-gS),y:e+r*(1-gS),d:0},]),3===i&&(sBase=[{x:_+$*gS,y:e+r*gS,d:0},{x:_+$*(.488*bv+gS),y:e+r*(.511*bv+gS),d:0},{x:_+$*gS,y:e+r*(1-gS),d:0},]),4===i&&(sBase=[{x:_+$*(.197*bv+gS),y:e+r*gS,d:0},{x:_+$*(.498*bv+gS),y:e+r*(.802*bv+gS),d:0},{x:_+$*(.802*bv+gS),y:e+r*gS,d:0},]),5===i&&(sBase=[{x:_+$*(.2*bv+gS),y:e+r*(1-gS),d:0},{x:_+$*(.512*bv+gS),y:e+r*(.202*bv+gS),d:0},{x:_+$*(.804*bv+gS),y:e+r*(1-gS),d:0},]),6===i&&(sBase=[{x:_+$*(.301*bv+gS),y:e+r*gS,d:0},{x:_+$*(.301*bv+gS),y:e+r*(.41*bv+gS),d:0},{x:_+$*(.687*bv+gS),y:e+r*gS,d:1},{x:_+$*(.702*bv+gS),y:e+r*(.4*bv+gS),d:0},{x:_+$*gS,y:e+r*(.5*bv+gS),d:1},{x:_+$*(.5*bv+gS),y:e+r*(1-gS),d:0},{x:_+$*(1-gS),y:e+r*(.5*bv+gS),d:0}]),7===i&&(sBase=[{x:_+$*(.304*bv+gS),y:e+r*gS,d:0},{x:_+$*(.302*bv+gS),y:e+r*(.401*bv+gS),d:0},{x:_+$*(.698*bv+gS),y:e+r*gS,d:1},{x:_+$*(.698*bv+gS),y:e+r*(.397*bv+gS),d:0},{x:_+$*gS,y:e+r*(1-gS),d:1},{x:_+$*(.5*bv+gS),y:e+r*(.75*bv+gS),d:0},{x:_+$*(1-gS),y:e+r*(1-gS),d:0}]),8===i&&(sBase=[{x:_+$*(.351*bv+gS),y:e+r*gS,d:0},{x:_+$*(.351*bv+gS),y:e+r*(.502*bv+gS),d:0},{x:_+$*(.648*bv+gS),y:e+r*gS,d:1},{x:_+$*(.648*bv+gS),y:e+r*(.4*bv+gS),d:0},{x:_+$*(.294*bv+gS),y:e+r*(.65*bv+gS),d:1},{x:_+$*(.551*bv+gS),y:e+r*(.706*bv+gS),d:0},{x:_+$*(1-gS),y:e+r*(.448*bv+gS),d:0}]),9===i&&(sBase=[{x:_+$*(.502*bv+gS),y:e+r*gS,d:0},{x:_+$*(.503*bv+gS),y:e+r*(1-gS),d:0},{x:_+$*gS,y:e+r*(.351*bv+gS),d:1},{x:_+$*(1-gS),y:e+r*(.348*bv+gS),d:0},]),10===i&&(sBase=[{x:_+$*(.502*bv+gS),y:e+r*gS,d:0},{x:_+$*(.496*bv+gS),y:e+r*(.52*bv+gS),d:0},{x:_+$*(.497*bv+gS),y:e+r*(1-gS),d:0},]),11===i&&(sBase=[{x:_+$*gS,y:e+r*(.502*bv+gS),d:0},{x:_+$*(.499*bv+gS),y:e+r*(.498*bv+gS),d:0},{x:_+$*(1-gS),y:e+r*(.499*bv+gS),d:0},]),12===i&&(sBase=[{x:_+$*(.2*bv+gS),y:e+r*(.101*bv+gS),d:0},{x:_+$*(.512*bv+gS),y:e+r*(.397*bv+gS),d:0},{x:_+$*(.798*bv+gS),y:e+r*(.103*bv+gS),d:0},{x:_+$*(.22*bv+gS),y:e+r*(.902*bv+gS),d:1},{x:_+$*(.5*bv+gS),y:e+r*(.598*bv+gS),d:0},{x:_+$*(.799*bv+gS),y:e+r*(.904*bv+gS),d:0},]),13===i&&(sBase=[{x:_+$*(.502*bv+gS),y:e+r*gS,d:0},{x:_+$*(.496*bv+gS),y:e+r*(.52*bv+gS),d:0},{x:_+$*(.497*bv+gS),y:e+r*(1-gS),d:0},]),14===i&&(sBase=[{x:_+$*gS,y:e+r*(.502*bv+gS),d:0},{x:_+$*(.499*bv+gS),y:e+r*(.498*bv+gS),d:0},{x:_+$*(1-gS),y:e+r*(.499*bv+gS),d:0},]),sBase.map((_,e)=>{0===(d=_.d?_.d:0)?ctx.lineTo(_.x+noise.simplex3(_.x/width*100,_.y/height*100,l/4)*$/sketchRate-$/hSketchRate+noii,_.y+noise.simplex3(_.x/width*100,_.y/height*100,4*l)*r/sketchRate-r/hSketchRate+noii):ctx.moveTo(_.x+noise.simplex3(_.x/width*100,_.y/height*100,l/4)*$/sketchRate-$/hSketchRate+noii,_.y+noise.simplex3(_.x/width*100,_.y/height*100,4*l)*r/sketchRate-r/hSketchRate+noii)}),ctx.strokeStyle=c,ctx.lineWidth=sc(borderWidth),ctx.stroke(),ctx.closePath()}function inside(_,e){for(var $=_[0],r=_[1],i=!1,c=0,n=e.length-1;c<e.length;n=c++){var l=e[c][0]*width,a=e[c][1]*height,o=e[n][0]*width,u=e[n][1]*height;a>r!=u>r&&$<(o-l)*(r-a)/(u-a)+l&&(i=!i)}return i}function gGrid(){for(let _=0;_<$(7*R.g())+5;_++)len=$(8*R.g())+2,padding=0,div=1,R.g()>.9&&(padding=R.g()/5,div=2),grid.push({t:R.g(),s:R.g()/div,dx:2*R.g()-1,dy:2*R.g()-1,c:R.g()>cR?cH[$(R.g()*cH.length)]:cF,polys:[...Array(len)].map((_,e)=>(hh=1/(2*len+1),comp=R.g()>.6?.05*R.g()-.025:0,ccomp=R.g()>.85&&0===padding?.0125*R.g()-.00625:0,R.g()>.95)?[]:[[padding,e*hh*2+hh+comp-ccomp],[1-padding,e*hh*2+hh+comp+ccomp],[1-padding,e*hh*2+2*hh+comp+ccomp],[padding,e*hh*2+2*hh+comp-ccomp],])});for(let e=0;e<$(7*R.g())+5;e++)padding=0,div=1,R.g()>.9&&(padding=R.g()/5*.75,div=2),len=$(8*R.g())+2,grid.push({t:R.g(),s:R.g()/div,dx:2*R.g()-1,dy:2*R.g()-1,c:R.g()>cR?cH[$(R.g()*cH.length)]:cF,polys:[...Array(len)].map((_,e)=>(hh=1/(2*len+1),comp=R.g()>.6?.05*R.g()-.025:0,ccomp2=R.g()>.85&&0===padding?.0125*R.g()-.00625:0,R.g()>.95)?[]:[[e*hh*2+hh+comp-ccomp2,padding],[e*hh*2+2*hh+comp-ccomp2,padding],[e*hh*2+2*hh+comp+ccomp2,1-padding],[e*hh*2+hh+comp+ccomp2,1-padding],])});(grid=grid.sort((_,e)=>_.s-e.s))[grid.length-1].c=cF,grid.push({t:-1,s:0,dx:0,dy:0,c:cF,polys:[[[0,0],[.025,0],[.025,1],[0,1]],[[.975,0],[1,0],[1,1],[.975,1]],[[0,0],[1,0],[1,.025*.75],[0,.025*.75]],[[0,1-.025*.75],[1,1-.025*.75],[1,1],[0,1]],]})}function pick_color(_){let e,$=[];for(e=0;e<_.length;e++)$[e]=_[e].w+($[e-1]||0);let r=R.g()*$[$.length-1];for(e=0;e<$.length&&!($[e]>r);e++);return _[e]}verShader="in vec3 pos;out vec2 vUv;void main(){gl_Position=vec4(pos,1.);vUv=(pos.xy+1.)/2.;}",fragShader=`uniform sampler2D buf,img;uniform float dirx,diry,frame;uniform vec4 cBg,cF;in vec2 vUv;out vec4 col;vec3 random3(vec3 c) {float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));vec3 r;r.z = fract(512.0*j);j *= .125;r.x = fract(512.0*j);j *= .125;r.y = fract(512.0*j);return r-0.5;}const float F3 = 0.3333333;const float G3 = 0.1666667;float sim3(vec3 p) {vec3 s = floor(p + dot(p, vec3(F3)));vec3 x = p - s + dot(s, vec3(G3));vec3 e = step(vec3(0.0), x - x.yzx);vec3 i1 = e*(1.0 - e.zxy);vec3 i2 = 1.0 - e.zxy*(1.0 - e);vec3 x1 = x - i1 + G3;vec3 x2 = x - i2 + 2.0*G3;vec3 x3 = x - 1.0 + 3.0*G3;vec4 w, d;w.x = dot(x, x);w.y = dot(x1, x1);w.z = dot(x2, x2);w.w = dot(x3, x3);w = max(0.6 - w, 0.0);d.x = dot(random3(s), x);d.y = dot(random3(s + i1), x1);d.z = dot(random3(s + i2), x2);d.w = dot(random3(s + 1.0), x3);w *= w;w *= w;d *= w;return dot(d, vec4(52.0));}void main(){vec4 ref = texture(img,vUv);vec4 buffer = texture(buf,vUv);float rnd = sim3(vec3((vUv.x+frame/100.)*500.,(vUv.y-frame/100.)*500.,${ns}));col = buffer;vec4 bgColor = mix(buffer,cBg,.25+rnd/2.);vec4 textureBG = mix(cBg,vec4(vec3(cBg.rgb-vec3(sim3(vec3((vUv.x+frame/1000.)*500.,(vUv.y-frame/1000.)*500.,${ns}))/4.)),1.),sim3(vec3((vUv.x+frame/1000.)*50000.,(vUv.y-frame/1000.)/4.,${ns})));if(ref.g>.0) {col = mix(textureBG,buffer,sim3(vec3((vUv.x+frame/100.)*5.,(vUv.y-frame/100.)*5.,${ns}))/1.);if(rnd<${smudge}) {col = mix(texture(buf,vec2(vUv.x+.005*dirx,vUv.y+.005*diry)),textureBG,rnd/4.);}}if(ref.r>.0) {col = mix(cBg,cF,ref.r);}}`,bufferShader="uniform sampler2D buffer;in vec2 vUv;out vec4 col;void main(){col=texture(buffer,vec2(vUv.x,1.-vUv.y));}",window.onload=init,function(_){var e=_.noise={};function r(_,e,$){this.x=_,this.y=e,this.z=$}r.prototype.dot2=function(_,e){return this.x*_+this.y*e},r.prototype.dot3=function(_,e,$){return this.x*_+this.y*e+this.z*$};var c=[new r(1,1,0),new r(-1,1,0),new r(1,-1,0),new r(-1,-1,0),new r(1,0,1),new r(-1,0,1),new r(1,0,-1),new r(-1,0,-1),new r(0,1,1),new r(0,-1,1),new r(0,1,-1),new r(0,-1,-1)],n=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],l=Array(512),a=Array(512);e.seed=function(_){_>0&&_<1&&(_*=65536),(_=$(_))<256&&(_|=_<<8);for(var e,r=0;r<256;r++)e=1&r?n[r]^255&_:n[r]^_>>8&255,l[r]=l[r+256]=e,a[r]=a[r+256]=c[e%12]},e.seed(0);var o=.5*(i(3)-1),u=(3-i(3))/6,x=1/3,f=1/6;e.simplex2=function(_,e){var r,i,c,n,x,f=(_+e)*o,h=$(_+f),S=$(e+f),s=(h+S)*u,m=_-h+s,y=e-S+s;m>y?(n=1,x=0):(n=0,x=1);var v=m-n+u,E=y-x+u,T=m-1+2*u,B=y-1+2*u,w=a[(h&=255)+l[S&=255]],F=a[h+n+l[S+x]],U=a[h+1+l[S+1]],b=.5-m*m-y*y;b<0?r=0:(b*=b,r=b*b*w.dot2(m,y));var D=.5-v*v-E*E;D<0?i=0:(D*=D,i=D*D*F.dot2(v,E));var A=.5-T*T-B*B;return A<0?c=0:(A*=A,c=A*A*U.dot2(T,B)),70*(r+i+c)},e.simplex3=function(_,e,r){var i,c,n,o,u,h,S,s,m,y,v=(_+e+r)*x,E=$(_+v),T=$(e+v),B=$(r+v),w=(E+T+B)*f,F=_-E+w,U=e-T+w,b=r-B+w;F>=U?U>=b?(u=1,h=0,S=0,s=1,m=1,y=0):F>=b?(u=1,h=0,S=0,s=1,m=0,y=1):(u=0,h=0,S=1,s=1,m=0,y=1):U<b?(u=0,h=0,S=1,s=0,m=1,y=1):F<b?(u=0,h=1,S=0,s=0,m=1,y=1):(u=0,h=1,S=0,s=1,m=1,y=0);var D=F-u+f,A=U-h+f,P=b-S+f,H=F-s+2*f,C=U-m+2*f,X=b-y+2*f,I=F-1+3*f,G=U-1+3*f,L=b-1+3*f,k=a[(E&=255)+l[(T&=255)+l[B&=255]]],M=a[E+u+l[T+h+l[B+S]]],N=a[E+s+l[T+m+l[B+y]]],O=a[E+1+l[T+1+l[B+1]]],W=.6-F*F-U*U-b*b;W<0?i=0:(W*=W,i=W*W*k.dot3(F,U,b));var z=.6-D*D-A*A-P*P;z<0?c=0:(z*=z,c=z*z*M.dot3(D,A,P));var j=.6-H*H-C*C-X*X;j<0?n=0:(j*=j,n=j*j*N.dot3(H,C,X));var Y=.6-I*I-G*G-L*L;return Y<0?o=0:(Y*=Y,o=Y*Y*O.dot3(I,G,L)),32*(i+c+n+o)}}(this);