0x865e0647…43a7sent to0x1353fd9d…e4e8·#17,119,465·view on Etherscan
const _createFramebuffer=function(e){const t=new Framebuffer(this,e),r=this._renderer.resize;return this._renderer.resize=(e,i)=>{r.call(this._renderer,e,i),t.handleResize()},t};p5.prototype.createFramebuffer=_createFramebuffer,p5.Graphics.prototype.createFramebuffer=_createFramebuffer,p5.RendererGL.prototype._initContext=function(){try{if(Framebuffer.forceWebGL1||(this.drawingContext=this.canvas.getContext("webgl2",this._pInst._glAttributes)),this.hasWebGL2=!!this.drawingContext,this.drawingContext||(this.drawingContext=this.canvas.getContext("webgl",this._pInst._glAttributes)||this.canvas.getContext("experimental-webgl",this._pInst._glAttributes)),null===this.drawingContext)throw new Error("Error creating webgl context");{const e=this.drawingContext;e.enable(e.DEPTH_TEST),e.depthFunc(e.LEQUAL),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),this._viewport=this.drawingContext.getParameter(this.drawingContext.VIEWPORT)}}catch(e){throw e}};const parentGetTexture=p5.RendererGL.prototype.getTexture;p5.RendererGL.prototype.getTexture=function(e){return e instanceof p5.Texture?e:parentGetTexture.call(this,e)};class RawTextureWrapper extends p5.Texture{constructor(e,t,r,i,a){return super(e,t,r),this.width=i,this.height=a,this}_getTextureDataFromSource(){return this.src}init(e){this._renderer.GL;this.glTex=e,this.glWrapS=this._renderer.textureWrapX,this.glWrapT=this._renderer.textureWrapY,this.setWrapMode(this.glWrapS,this.glWrapT),this.setInterpolation(this.glMinFilter,this.glMagFilter)}update(){return!1}}class FramebufferCamera extends p5.Camera{constructor(e){super(e._renderer),this.fbo=e}_computeCameraDefaultSettings(){super._computeCameraDefaultSettings(),this.defaultAspectRatio=this.fbo.width/this.fbo.height,this.defaultEyeZ=this.fbo.height/2/Math.tan(this.defaultCameraFOV/2),this.defaultCameraNear=.1*this.defaultEyeZ,this.defaultCameraFar=10*this.defaultEyeZ}resize(){"default"===this.cameraType?(this._computeCameraDefaultSettings(),this._setDefaultCamera()):this.perspective(this.cameraFOV,this.fbo.width/this.fbo.height)}}class Framebuffer{static forceWebGL1=!1;constructor(e,t={}){this.canvas=e,this._renderer=e._renderer;const r=this._renderer.GL;if(!this._renderer.hasWebGL2&&!r.getExtension("WEBGL_depth_texture"))throw new Error("Unable to create depth textures in this environment");const i=t.size;this.autoSized=!i,i&&(this.width=i.width||400,this.height=i.height||400,this.density=i.pixelDensity||e.pixelDensity()),this.antialias=t.antialias||!1,this.colorFormat=this.glColorFormat(t.colorFormat),this.depthFormat=this.glDepthFormat(t.depthFormat),"float"!==t.colorFormat&&"float"!==t.depthFormat||(this._renderer.hasWebGL2?r.getExtension("EXT_color_buffer_float"):r.getExtension("OES_texture_float")&&r.getExtension("OES_texture_float_linear")&&r.getExtension("WEBGL_color_buffer_float"))||("float"===t.colorFormat&&(this.colorFormat=this.glColorFormat()),"float"===t.depthFormat&&(this.depthFormat=this.glDepthFormat()),console.warn("Warning: Unable to create floating point textures in this environment. Falling back to integers"));const a=r.createFramebuffer();if(!a)throw new Error("Unable to create a framebuffer");if(this.framebuffer=a,this.antialias&&this._renderer.hasWebGL2&&(this.aaFramebuffer=r.createFramebuffer(),!this.aaFramebuffer))throw new Error("Unable to create a framebuffer");this.recreateTextures();const s=this._renderer._curCamera;this.cam=this.createCamera(),e.setCamera(s)}createCamera(){const e=new FramebufferCamera(this);return e._computeCameraDefaultSettings(),e._setDefaultCamera(),this._renderer._curCamera=e,e}defaultCamera(){return this.cam}resizeCanvas(e,t){this.autoSized=!1,this.width=e,this.height=t,this.handleResize()}pixelDensity(e){if(!e)return this.density*this.aaDensity;this.autoSized=!1,this.density=e,this.handleResize()}autoSized(e){if(void 0===e)return this.autoSized;this.autoSized=e,this.handleResize()}glColorFormat(e){const t=this._renderer.GL;return"float"===e?t.FLOAT:t.UNSIGNED_BYTE}glDepthFormat(e){const t=this._renderer.GL;return"float"===e?t.FLOAT:t.UNSIGNED_INT}glInternalFormat(e){if(this.antialias&&this._renderer.hasWebGL2)return this.glInternalRenderbufferFormat(e);const t=this._renderer.GL;return this._renderer.hasWebGL2&&this.colorFormat===t.FLOAT?e?t.RGBA16F:t.RGB16F:e?t.RGBA:t.RGB}glInternalRenderbufferFormat(e){const t=this._renderer.GL;if(this.colorFormat===t.FLOAT){if(this._renderer.hasWebGL2)return t.RGBA16F;throw new Error("Antialiased floating point values are not available in WebGL 1 mode")}return e?t.RGBA4:t.RGB565}glDepthInternalFormat(){const e=this._renderer.GL;return this._renderer.hasWebGL2?e.DEPTH_COMPONENT24:e.DEPTH_COMPONENT}glDepthInternalRenderbufferFormat(){const e=this._renderer.GL;return this._renderer.hasWebGL2?e.DEPTH_COMPONENT24:e.DEPTH_COMPONENT16}glFormat(e){const t=this._renderer.GL;return e?t.RGBA:t.RGB}handleResize(){this.cam.resize();const e=this.colorTexture,t=this.depthTexture,r=this.colorRenderbuffer,i=this.depthRenderbuffer;this.recreateTextures(),this.deleteTexture(e),this.deleteTexture(t);const a=this._renderer.GL;r&&a.deleteRenderbuffer(r),i&&a.deleteRenderbuffer(i)}updateSize(){this.autoSized&&(this.width=this._renderer.width,this.height=this._renderer.height,this.density=this._renderer._pInst._pixelDensity),this.aaDensity=this.antialias&&!this._renderer.hasWebGL2?2:1}recreateTextures(){const e=this._renderer.GL;this.updateSize();const t=this._renderer._pInst._glAttributes.alpha,r=e.getParameter(e.TEXTURE_BINDING_2D),i=e.getParameter(e.FRAMEBUFFER_BINDING),a=e.createTexture();if(!a)throw new Error("Unable to create color texture");e.bindTexture(e.TEXTURE_2D,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,this.glInternalFormat(t),this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,0,this.glFormat(t),this.colorFormat,null);const s=e.createTexture();if(!s)throw new Error("Unable to create depth texture");e.bindTexture(e.TEXTURE_2D,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,this.glDepthInternalFormat(),this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,0,e.DEPTH_COMPONENT,this.depthFormat,null),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0),e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,s,0),this.antialias&&this._renderer.hasWebGL2&&(this.colorRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,this.colorRenderbuffer),this._renderer.hasWebGL2?e.renderbufferStorageMultisample(e.RENDERBUFFER,4,this.glInternalRenderbufferFormat(t),this.width*this.density,this.height*this.density):e.renderbufferStorage(e.RENDERBUFFER,Math.min(4,e.getParameter(e.MAX_SAMPLES)),this.glInternalRenderbufferFormat(t),this.width*this.density,this.height*this.density),this.depthRenderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,this.depthRenderbuffer),this._renderer.hasWebGL2?e.renderbufferStorageMultisample(e.RENDERBUFFER,Math.min(4,e.getParameter(e.MAX_SAMPLES)),this.glDepthInternalRenderbufferFormat(),this.width*this.density,this.height*this.density):e.renderbufferStorage(e.RENDERBUFFER,e.getParameter(e.MAX_SAMPLES),this.glDepthInternalRenderbufferFormat(),this.width*this.density,this.height*this.density),e.bindFramebuffer(e.FRAMEBUFFER,this.aaFramebuffer),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.RENDERBUFFER,this.colorRenderbuffer),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthRenderbuffer));const h=new RawTextureWrapper(this._renderer,s,{minFilter:"nearest",magFilter:"nearest"},this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity);this._renderer.textures.push(h);const n=new RawTextureWrapper(this._renderer,a,{glMinFilter:"nearest",glMagFilter:"nearest"},this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity);this._renderer.textures.push(n),e.bindTexture(e.TEXTURE_2D,r),e.bindFramebuffer(e.FRAMEBUFFER,i),this.depthTexture=s,this.depth=h,this.colorTexture=a,this.color=n}deleteTexture(e){this._renderer.GL.deleteTexture(e);const t=this._renderer.textures.findIndex((t=>t.src===e));-1!==t&&this._renderer.textures.splice(t,1)}draw(e){const t=this._renderer.GL,r=t.getParameter(t.FRAMEBUFFER_BINDING);this.antialias&&this._renderer.hasWebGL2?t.bindFramebuffer(t.FRAMEBUFFER,this.aaFramebuffer):t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer);const i=t.getParameter(t.VIEWPORT);if(t.viewport(0,0,this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity),this.canvas.push(),this.canvas.setCamera(this.cam),this._renderer.uMVMatrix.set(this._renderer._curCamera.cameraMatrix.mat4[0],this._renderer._curCamera.cameraMatrix.mat4[1],this._renderer._curCamera.cameraMatrix.mat4[2],this._renderer._curCamera.cameraMatrix.mat4[3],this._renderer._curCamera.cameraMatrix.mat4[4],this._renderer._curCamera.cameraMatrix.mat4[5],this._renderer._curCamera.cameraMatrix.mat4[6],this._renderer._curCamera.cameraMatrix.mat4[7],this._renderer._curCamera.cameraMatrix.mat4[8],this._renderer._curCamera.cameraMatrix.mat4[9],this._renderer._curCamera.cameraMatrix.mat4[10],this._renderer._curCamera.cameraMatrix.mat4[11],this._renderer._curCamera.cameraMatrix.mat4[12],this._renderer._curCamera.cameraMatrix.mat4[13],this._renderer._curCamera.cameraMatrix.mat4[14],this._renderer._curCamera.cameraMatrix.mat4[15]),e(),this.antialias&&this._renderer.hasWebGL2){t.bindFramebuffer(t.READ_FRAMEBUFFER,this.aaFramebuffer),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,this.framebuffer);for(const[e,r]of[[t.COLOR_BUFFER_BIT,t.LINEAR],[t.DEPTH_BUFFER_BIT,t.NEAREST]])t.blitFramebuffer(0,0,this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,0,0,this.width*this.density*this.aaDensity,this.height*this.density*this.aaDensity,e,r)}t.bindFramebuffer(t.FRAMEBUFFER,r),t.viewport(...i),this.canvas.pop()}remove(){const e=this._renderer.GL;this.deleteTexture(this.colorTexture),this.deleteTexture(this.depthTexture),e.deleteFramebuffer(this.framebuffer),this.aaFramebuffer&&e.deleteFramebuffer(this.aaFramebuffer),this.depthRenderbuffer&&e.deleteRenderbuffer(this.depthRenderbuffer),this.colorRenderbuffer&&e.deleteRenderbuffer(this.colorRenderbuffer)}}
var tD=tokenData,nmR=0,gCcount=0,g1=1,hC=!0;class Random{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substring(0,8),16),s=parseInt(e.substring(8,16),16),d=parseInt(e.substring(16,24),16),r=parseInt(e.substring(24,32),16);return function(){let e=((t|=0)+(s|=0)|0)+(r|=0)|0;return r=r+1|0,t=s^s>>>9,s=(d|=0)+(d<<3)|0,d=(d=d<<21|d>>>11)+e|0,(e>>>0)/4294967296}};this.pA=new e(tokenData.hash.substring(2,34)),this.pB=new e(tokenData.hash.substring(34,66));for(let e=0;e<1e6;e+=2)this.pA(),this.pB()}d(){return nmR++,this.uA=!this.uA,this.uA?this.pA():this.pB()}dd(){return 2*this.d()-1}n(e,t){return e+(t-e)*this.d()}b(e){return this.d()<e}i(e,t){return Math.floor(this.n(e,t+1))}c(e){return e[this.i(0,e.length-1)]}rmM(e){return this.n(e[0],e[1])}rSign(){return(-1)**this.c([0,1])}rNd(){let e=this.d();return Math.sqrt(-2*Math.log(e))*Math.cos(2*Math.PI*e)}}let R=new Random;var tyty=!1;function gC(e,t=255,s="rand",d=0,r=.1,n=!0,o=pltArr,i=0){gCcount++,pn=R.c(e),tp=o[pn];let a=Math.abs(Math.round(R.rNd()+d))%tp.length;cS="rand"==s?R.c(tp):1==i?tp[a]:tp[d%tp.length];let c=p.color("#"+cS+p.hex(p.int(t)).slice(-2));return p.color(p.red(c)*(1+R.n(-r,r)),p.green(c)*(1+R.n(-r,r)),p.blue(c)*(1+R.n(-r,r)),t)}function gCwN(e,t=0,s=1){return p.color(p.red(e)*(1+R.n(-t,t)),p.green(e)*(1+R.n(-t,t)),p.blue(e)*(1+R.n(-t,t)),p.alpha(e)*s)}const pltArrBG={bgColors:["fef9ea"]},pltArr={marine:["e63946","f1faee","a8dadc","457b9d","1d3557"],gold:["ffdc73","ffcf40","ffbf00","bf9b30","a67c00","FFF9CB"],"in between scales":["3c91e6","9BC8F2","38608f","99B0C6","fafffd","342e37","653C2F","954927","f56416","ee902c","EBA637","e7bb41"],"warm tones":["e53d00","f29300","f9be00","ffe900","fef47c","fcfff7","8fd0cc","21a0a0","046865"],"c-2":["e6c229","f17105","d11149","6610f2","1a8fe3"],"c-3":["e6c229","f17105","d11111","274d70","0f803d","374007"],"c-4":["e6c229","fffbda","fff4cc","d11111","274d70","0f803d","374007","201510"],"c-6":["fbfef9","8a8c8e","191923","14496b","0e79b2","67468b","bf1363","d9534d","e67342","f39237"],"c-7":["ffe74c","ffa058","ff7d5e","ff5964","ffacb2","ffffff","b5f8bc","6bf178","50ccbc","35a7ff"]},pltLines={a:["fef9ea","303030","303030","303030","3445ca","303030","fef9ea","fef9ea","fef9ea","3445ca"]};class aP{constructor(e,t,s,d,r,n,o,i,a,c,u,h){this.n=e,this.c1=t,this.c2=s,this.sW=d,this.dF=r,this.nK=R.n(.01,.1),this.cP=n,this.w=o,this.rot=i,this.rot2=this.cP.angleBetween(dP.fP),this.dS=u,this.distN=this.cP.dist(dP.fP),this.paintN=h,this.wK=a,this.wKT=c,this.accents=[];let l=R.n(1,p.min(5,this.n/2));l=1;for(let e=0;e<1;e++)this.accents.push(R.i(0,this.n))}draw(e,t,s=this.c1,d=this.c2){let r,n=this.nK,o=0,i=2*p.PI/this.n;p.push(),p.translate(this.cP.x,this.cP.y,0),dP.ea&&R.b(dP.rndArr[32])&&p.rotateY(this.rot2),this.dF?p.fill(gCwN(s,.1,10*Math.abs(p.sin(nmR/2e3)))):p.noFill(),this.dS?(p.stroke(gCwN(d,.1,1)),p.strokeWeight(this.sW)):p.noStroke();this.wK;for(let e=0;e<this.paintN;e++){p.push(),p.translate(R.n(-10,10)*this.distN/100,R.n(-10,10)*this.distN/100,2*R.dd()),0==t&&p.beginShape(),o=.01*R.d();for(let e=0;e<this.n+1;e++)r=o,o+=i*(1+.02*n*R.d()),0==t&&dP.ea&&R.b(dP.rndArr[14])&&p.vertex(this.w*p.sin(o)+Math.sqrt(10*R.d()*dP.sW/this.distN),this.w*p.cos(o)+Math.sqrt(10*R.d()*dP.sH/this.distN));0==t&&p.endShape(),p.pop(),0==t&&R.b(.992503)&&(p.push(),p.translate(R.n(-1,1)*R.n(1,10),R.n(-1,1)*R.n(1,10),2*R.dd()),p.strokeWeight(this.sW*(1+.15*R.dd())),p.stroke(gCwN(this.c2,.25,3*Math.abs(p.sin(nmR/150+e/10)))),dP.ea&&R.b(dP.rndArr[22])&&p.rotateZ(this.rot2*(1+.1*R.dd())),p.line(2*R.d(),2*R.d(),this.w*(1+R.d())+2*R.d(),0+2*R.d()),p.pop())}p.pop()}}function q(e,t){return Math.floor(e*t)/t}class aRect{constructor(e,t,s,d,r){this.a=e,this.b=t,this.c=s,this.d=d,this.recursionLevel=r,this.w=Math.abs(this.b.x-this.a.x),this.h=Math.abs(this.c.y-this.a.y),this.cP=cV((this.a.x+this.b.x+this.c.x+this.d.x)/4,(this.a.y+this.b.y+this.c.y+this.d.y)/4),this.ar=this.w*this.h,this.col=R.c(pltArr)}divide(e,t){let s=this.a,d=this.b,r=this.c,n=this.d;return t>0?[new aRect(s,d,cV(r.x,s.y+this.h*e),cV(n.x,d.y+this.h*e),this.recursionLevel+1),new aRect(cV(r.x,s.y+this.h*e),cV(n.x,d.y+this.h*e),r,n,this.recursionLevel+1)]:[new aRect(s,cV(s.x+this.w*e,d.y),r,cV(r.x+this.w*e,n.y),this.recursionLevel+1),new aRect(cV(s.x+this.w*e,d.y),d,cV(r.x+this.w*e,n.y),n,this.recursionLevel+1)]}mult(e){this.a=this.a*e,this.b*=e,this.c*=e,this.d*=e,this.w*=e,this.h*=e,this.cP.x*=e,this.cP.y*=e,this.ar*=e*e}}function qt(e,t,s,d,r,n=0,o=[.5]){if(0==s)return[e];if(t>s||R.d()<r)return[e];let i=[],a=[];if(1==(a=e.divide(o,d)).length)return[e];for(let e=0;e<a.length;e++){let r=[];r=qt(a[e],t+1,s,-d,dP.baseGridProbSplit,n),i.push(...r)}return i}function readURLParams(e){const t=window.location.search,s=new URLSearchParams(t);for(var d of s.entries())e[d[0]]=p.float(d[1])}function drawOne(){let e=1e3*dP.gAR*dP.gameMarginPct.x*dP.yK,t=1e3*dP.gameMarginPct.y*dP.yK,s=dP.gOSK*dP.bOS,d=dP.gAR*dP.yK,r=1-2*dP.gameMarginPct.x,n=1-2*dP.gameMarginPct.y,o=cV(e+dP.gamePosCount*s%(1e3*d*r),t+dP.gameUD*(1e3*dP.yK*n)+(1==dP.gameUD?-1:1)*(dP.bOS*Math.floor(dP.gamePosCount*s/(1e3*d*r))%(1e3*dP.yK*n)),0);p.push(),p.translate(o),paintOnePos(),p.pop()}function paintOnePos(){let e=["#ee5544","#4455ee","#55ee44","#eeee22"];e=[];for(let t=0;t<6;t++)e.push(gC(dP.palettes,R.n(210,250),"i",t,.1,!0));let t=dP.gSDV,s=dP.gCDV,d=p.color(e[(s-1)%e.length]);p.noFill();let r=R.n(1,dP.maxNumOnePosDraw),n=dP.bOS*dP.gOSK;for(let e=0;e<r;e++)p.push(),p.strokeWeight(dP.yK*dP.gOWK*3*(1+R.dd())),p.stroke(gCwN(d,.15,1.5/r)),p.translate(cV(R.dd(),R.dd(),R.dd())),1==t?p.line(0+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise):2==t?p.line(0+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise):3==t?p.line(0+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise):4==t?p.line(n+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise):5==t?p.rect(0+R.d()*dP.basicObjNoise,0+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise):6==t&&p.circle(n/2+R.d()*dP.basicObjNoise,n/2+R.d()*dP.basicObjNoise,n+R.d()*dP.basicObjNoise),p.pop()}var sh_fs,sh_vs,sh,fboA,fboB,fboC,fboD,theObjects=[],dP={},lt=[];sh_fs="\nprecision mediump float;varying vec2 vTexCoord;uniform sampler2D tex0, tex1,tex2,gtex;uniform vec2 tS, u_dir,u_res;uniform bool u_aB, u_bw, u_sS, u_f,gameOn;uniform float u_time, u_pA, u_pB, u_pC, u_g, u_br, u_con,u_cK;uniform float u_rndArr[50];uniform int o;float rd(vec2 st) { return fract(sin(dot(st.xy, vec2(12.9898, 78.233))) * 43758.5453123);}vec3 gB(sampler2D t, vec2 texUV, vec2 sS) { vec3 colOut=vec3(0.0); const int sC=9; float gW[sC]; gW[0]=0.10855; gW[1]=0.13135; gW[2]=0.10406; gW[3]=0.07216; gW[4]=0.04380; gW[5]=0.02328; gW[6]=0.01083; gW[7]=0.00441; gW[8]=0.00157; float gO[sC]; gO[0]=0.66293; gO[1]=2.47904; gO[2]=4.46232; gO[3]=6.44568; gO[4]=8.42917; gO[5]=10.41281; gO[6]=12.39664; gO[7]=14.38070; gO[8]=16.36501; for(int i=0; i < sC; i++) { vec2 tCO=gO[i] * sS; vec3 col=texture2D(t, texUV + tCO).xyz + texture2D(t, texUV - tCO).xyz; col *= gW[i]; colOut += col; } return colOut;}float dc(vec2 c, float r) { return step(length(c), r);}vec3 g(vec3 v, float p) { return vec3(pow(abs(v.r), p), pow(abs(v.g), p), pow(abs(v.b), p));}vec3 bC(vec3 v, float b, float c) { return (v - 0.5) * c + 0.5 + b;}float modm(float x, float y) { return x - y * floor(x / y);}float q(float x,float s) { return floor(x*s)/s;}void main() { vec2 uv=vTexCoord; float multK=3000.*150.*u_rndArr[17]; float resK=100.5; float resK2=2300.; vec2 uvN=vec2(float(int(multK*uv.x/resK)),float(int(multK*uv.y/resK))); vec2 uvN2=vec2(float(int(multK*uv.x/resK2)),float(int(multK*uv.y/resK2))); vec2 uv2=uv; vec2 uv3=uv; float q1=.105*u_rndArr[10],q2=.105*u_rndArr[12],q3=.105*u_rndArr[13]; float xk=u_rndArr[41]*1.591*abs(10.*q(sin(0.25*20.*(uv.x+uv.y*0.175)*u_rndArr[10]+u_rndArr[32]*10.),q1)+2.525*q(cos(0.25*10.*(uv.x*2.*u_rndArr[12])+u_rndArr[34]*10.),q2)+4.*q(sin(0.25*5.*(uv.x*0.05+uv.y*0.05)+u_rndArr[26]*10.),q3)); float yk=u_rndArr[42]*1.591*abs(10.*q(sin(0.25*18.*(uv.y+uv.x*0.075)*u_rndArr[11]+u_rndArr[33]*10.),q1)+2.525*q(cos(0.25*12.*(uv.y*2.*u_rndArr[21])+u_rndArr[32]*10.),q2)+4.*q(sin(0.25*8.*(uv.y*0.05+uv.x*0.10)+u_rndArr[27]*10.),q3)); uv3.x=floor(uv.x*xk)/xk; uv3.y=floor(uv.y*yk)/yk; uv3.x += modm(uv3.x,u_rndArr[5]*u_rndArr[2]*u_rndArr[0]); uv3.y += modm(uv3.y,u_rndArr[4]*u_rndArr[3]*u_rndArr[1]); uv3.x += u_rndArr[15]*uv3.y +u_rndArr[44]*uv3.x/2.; uv2.x=uv.x+0.21432*fract(uv.x)/2.; uv2.x=uv.x+0.15*modm(uv.x,5.); uv2.y=uv.x+0.171432*fract(uv.y)/3.; uv2.y=uv.x+0.15*modm(uv.y,4.); vec2 uvCh=vec2(1. - uv.x - sin(u_time / 2.), 1. - uv.y - sin(u_time / 2.)); float rnd=rd(uv * u_time); float rnd2=rd( (1.-uvN)*u_time*0.00001*u_rndArr[2]*u_rndArr[0]); vec3 tN=vec3(0.5, 0.5, 0.5) * rnd; vec3 tN2=vec3(0.5, 0.5, 0.5) * rnd2; tN=tN2; vec3 tI,tI3,tI2; tI=0.995*texture2D(tex0, vec2(uv.x, 1. - uv.y)).xyz; tI3=texture2D(tex2, vec2(uv.x, 1. - uv.y)).xyz; tI += 0.325*texture2D(tex0, vec2(uv2.x, 1. - uv2.y)).xyz; tI2=texture2D(tex0, vec2(uv3.x, 1. - uv3.y)).xyz; tI *= (vec3(.4505)+0.95*tI2); tI *=(0.15+.95*tI3 +u_cK*.85*(tI2*tI3)); vec3 cOut; if(u_aB) { vec3 b1=gB(tex0, vec2(uv.x, 1. - uv.y), tS * u_dir); vec3 b2=gB(tex0, vec2(uv.x, 1. - uv.y), tS * vec2(u_dir.x, u_dir.x)); vec3 b3=gB(tex0, vec2(uv.x, 1. - uv.y), tS * vec2((u_dir.y + u_dir.x) / 2., (u_dir.y + u_dir.x) / 2.)); b1=0.6 * b1 + 0.42 * b2 + 0.42 * b3; cOut=0.75 * bC(tI * (b1 * u_pA + u_pB) + tN * u_pC + 0.03 * tN * (0.5 + b1), u_br, u_con); b1=gB(tex1, vec2(uv.x, 1. - uv.y), tS * u_dir); b2=gB(tex1, vec2(uv.x, 1. - uv.y), tS * vec2(u_dir.x, u_dir.x)); b3=gB(tex1, vec2(uv.x, 1. - uv.y), tS * vec2((u_dir.y + u_dir.x) / 2., (u_dir.y + u_dir.x) / 2.)); b1=0.6 * b1 + 0.42 * b2 + 0.42 * b3; cOut += 0.25 * bC(tI2 * (b1 * u_pA + u_pB) + tN * u_pC + 0.03 * tN * (0.5 + b1), u_br, u_con); } else { cOut=0.99 * tI + tN * u_pC; } bool doBW=u_bw; if(doBW) { float tot=u_rndArr[23]+u_rndArr[6]+u_rndArr[16]; cOut=vec3(u_rndArr[23] * cOut.r +u_rndArr[6] * cOut.g + u_rndArr[16] * cOut.b)/vec3(tot); if (gl_FragCoord.x > (0.5+u_rndArr[26]+0.25*u_rndArr[27])*u_res[0]) cOut=1. - cOut; } cOut=g(cOut, u_g); if (o==1) { cOut=texture2D(tex0, vec2(uv.x, 1. - uv.y)).xyz; } else if (o==2) { cOut=tI2; } else if (o==3) { cOut=tI3; } if (gameOn) { vec3 tg=texture2D(gtex, vec2(uv.x, 1.-uv.y)).xyz; vec3 b1=gB(gtex, vec2(uv.x, 1. - uv.y), 0.25*tS * u_dir); vec3 b2=gB(gtex, vec2(uv.x, 1. - uv.y), 0.25*tS * vec2(u_dir.x, u_dir.x)); vec3 b3=gB(gtex, vec2(uv.x, 1. - uv.y), 0.25*tS * vec2((u_dir.y + u_dir.x) / 2., (u_dir.y + u_dir.x) / 2.)); b1=0.6 * b1 + 0.42 * b2 + 0.42 * b3; tg=g(0.5*b1+0.7*tg+0.25*tN,u_g/1.15); cOut *= (0.5+0.75*tg); cOut += 0.75*tg; } gl_FragColor=vec4(cOut, 1.0);}\n",sh_vs="precision highp float; attribute vec3 aPosition; varying vec2 vTexCoord; void main() { vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0-1.; positionVec4.y = -positionVec4.y; vTexCoord = vec2(aPosition); gl_Position = positionVec4; }";let sketch=function(e){e.sAP=function(){dP.ea=1,dP.oT=0,dP.gSDV=0,dP.gCDV=0,dP.gOSK=.95,dP.gOWK=1,dP.gameInitPos=R.i(25,250),dP.gameUD=R.c([0,1,1]),dP.gamePosCount=0,dP.yK=dP.sH/1e3,dP.bOS=1e3*R.n(.025,.05)*dP.gAR*dP.yK,dP.oneMove={color:0,type:0,direction:0},dP.gameMarginPct=cV(R.c([.01,.05,.1,.2]),R.c([.01,.05,.1,.2])),dP.basicObjNoise=5,dP.maxNumOnePosDraw=R.i(3,8),dP.gameOn=!1,dP.pd=e.pixelDensity(),dP.pdA=dP.pd,dP.pdB=dP.pd,dP.pdC=dP.pd,dP.baseGridMaxIter=R.i(3,8),dP.baseGridProbSplit=R.n(.15,.25),dP.baseGridProbSkipThis=R.n(0,.15),dP.qtT=R.c([.33,.5,.66]);let t=new aRect(cV(0,0),cV(660,0),cV(0,1e3),cV(660,1e3),0);dP.fP=cV(R.d()*dP.sW,R.d()*dP.sH,0);let s=R.rSign();dP.grid=[],dP.grid=qt(t,0,dP.baseGridMaxIter,s,0,dP.baseGridProbSkipThis,dP.qtT);for(let e=0;e<dP.grid.length;e++)dP.grid[e].mult(dP.yK);dP.objSides=R.c([[3,4,5,6,10,20],[3,4,10],[3,4,6],[3,4]]),dP.paintNmM=R.c([[1,1],[1,20],[10,20]]),dP.wKmM=R.c([[1,1],[.5,2],[.25,4],[.75,1.5]]),dP.wKTmM=R.c([[.1,.25],[.5,1]]),dP.objSizemM=[10,50],dP.bgC=gC(["bgColors"],255,"rand",0,.1,!0,pltArrBG),dP.cK=1;let d=(e.red(dP.bgC)+e.green(dP.bgC)+e.blue(dP.bgC))/765;d>600/765?dP.cK=(1/d)**2:d<300/765&&(dP.cK=(1/d)**1.5),dP.cK=(3.5-2*Math.exp(.45*d))**4,dP.cK=Math.cos(d*e.PI/2),dP.palettes=[R.c(Object.keys(pltArr))],dP.prodDF=R.n(.25,1),dP.prodDS=R.n(.15,1),dP.sWmM=R.c([[.5,.75],[.5,2],[2,4],[1,10]]),dP.hmM=R.c([[.01,.02],[.025,.1],[.05,.2],[.1,.25],[.21,.5]]),dP.tLR=[],dP.theLineT=R.c([205,235]),dP.theLineColoursN=R.c([1,R.i(1,dP.palettes[0].length)]),dP.theLineColoursN=dP.palettes[0].length,dP.lineStartK=R.c([0,.15,.3]),dP.lineEndK=R.c([0,.1,.5]),dP.lineSinK=R.c([1,5,5,10,25]),dP.theLineRot=R.dd()*e.PI,dP.lineI=R.c([.01,.1,.05]),dP.lineI=.1,dP.numLmM=R.c([[20,60],[30,80],[10,100],[50,250]]),dP.hmM[0]>.2&&(dP.numLmM=[3,50]);let r,n=0,o=0,i=0;for(;n<1e3;)oLK=R.n(1,1.35)*dP.hmM[0]>.28?1.15:1,r=R.n(.25,.95),i=R.rmM(dP.numLmM),dP.tLR.push({thePosH:n*dP.yK,oLK:oLK,dd:r,numL:i,sW:r*dP.sW/i,offset:R.c([0,0,0,-dP.sW*R.n(.05,.5),dP.sW*R.n(.05,.5)]),inc:R.n(-1,1)*dP.line