memoscan
← all memos

Memo 0x08c99172…8067fd on Ethereum

[0,()=>{console.log("Artist 41. Loren Bednar -- platform 0");class RandomAlt{constructor(){this.useA=!1;let t=function(t){let e=parseInt(t.substr(0,8),16),r=parseInt(t.substr(8,8),16),n=parseInt(t.substr(16,8),16),l=parseInt(t.substr(24,8),16);return function(){e|=0,r|=0,n|=0,l|=0;let t=(e+r|0)+l|0;return l=l+1|0,e=r^r>>>9,r=n+(n<<3)|0,n=n<<21|n>>>11,n=n+t|0,(t>>>0)/4294967296}};this.prngA=new t(tokenData.hash.substr(2,32)),this.prngB=new t(tokenData.hash.substr(34,32));for(let t=0;t<1e6;t+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}}function fr(t){return flr(R()*t)}function afr(t){return t[fr(t.length)]}function abs(t){return Math.abs(t)}function flr(t){return Math.floor(t)}function cae(t,e){canvas.addEventListener(t,e)}const urlParams=new URLSearchParams(window.location.search);let fO="false"==urlParams.get("flourish"),reactive="true"==urlParams.get("reactive"),hideUI="true"==urlParams.get("hideui"),rnd=new RandomAlt,R=function(){return rnd.random_dec()},tt=function(){return R()>.5},cx=function(){return fr(th)-fv},sdF=function(){return fr(450)+50+"."},segF=function(){return afr(segSa)};var D_S=1e3;let cDiv=document.createElement("div");cDiv.style.width=window.innerWidth+"px",cDiv.style.height=window.innerHeight+"px";var DIM=Math.max(window.innerWidth,window.innerHeight);document.body.style.backgroundColor="#000000";var bVL=.1,M=DIM/D_S,tick=0;let tS=0,tS2=0,atk=0,arsdc=0,sfo=!1,palettes=[[[249,222,89],[232,166,40],[249,131,101],[195,49,36],[161,223,251]],[[255,109,105],[254,204,80],[11,231,251],[1,11,139],[30,5,33]],[[233,255,136],[254,10,183],[229,1,133],[17,16,16],[208,204,209]],[[0,123,0],[36,224,184],[255,204,81],[255,139,118],[255,48,49]],[[169,67,0],[255,176,0],[255,223,0],[91,155,55],[21,61,2]],[[161,5,50],[255,111,169],[255,208,204],[0,183,204],[0,95,129]],[[95,165,90],[1,180,188],[246,213,31],[250,137,37],[250,84,87]],[[99,26,17],[187,96,47],[239,216,131],[203,130,20],[68,64,101]],[[48,4,61],[142,31,81],[229,64,89],[222,131,127],[253,179,106]],[[255,251,196],[182,190,246],[53,30,191],[16,1,93],[10,0,48]],[[140,7,20],[252,64,124],[27,78,136],[5,8,30],[250,240,228]],[[8,44,68],[114,234,245],[254,230,226],[255,169,76],[254,44,137]],[[1,99,141],[171,206,204],[255,242,205],[255,0,76],[97,13,75]],[[34,125,172],[68,57,136],[159,0,82],[255,63,32],[255,190,0]],[[129,237,247],[0,164,192],[2,116,143],[247,1,16],[110,5,22]],[[255,254,1],[255,134,6],[232,59,54],[96,5,56],[70,10,64]],[[51,51,51],[204,204,204],[48,48,48],[221,221,221],[0,0,0]],[[215,0,95],[215,215,0],[38,38,38],[175,0,95],[0,255,255]],[[255,85,85],[85,255,85],[255,255,85],[85,85,85],[85,255,255]],[[0,0,0],[255,85,255],[85,255,255],[255,0,255],[255,255,255]],[[15,139,141],[168,32,26],[236,154,41],[218,210,216],[20,54,66]],[[116,2,17],[208,169,160],[143,58,96],[195,90,102],[36,0,4]],[[175,212,204],[133,186,106],[26,119,73],[11,46,47],[1,18,28]],[[0,18,68],[0,80,134],[49,143,181],[176,202,199],[247,214,191]],[[140,66,25],[243,149,88],[238,200,176],[241,236,231],[247,217,109]],[[44,48,57],[107,54,56],[254,108,58],[254,219,209],[158,172,183]],[[91,91,91],[195,214,211],[217,201,167],[248,233,214],[244,163,142]]],pId=flr(R()*palettes.length),palette=palettes[pId],fv=500,currentPercent=R()*fv+fv,clrs=["c0","c1","c2","c3","c4"],clrsI=["c0","c1","c2","c3","c4"],pA=[],gls=["2","4","6","8","10","12","16"],cOs="",a0=tt(),a1=tt(),a2=tt(),a3=tt(),sq=tt(),d0X=1e3*R(),d0Y=1e3*R(),d1X=1e3*R(),d1Y=1e3*R(),hX=1e3*R(),hY=1e3*R(),clrsS=fr(15)+15;for(let t=0;t<clrsS;t++)clrsI.push(afr(clrs));for(let t=0;t<clrsI.length;t++)pA.push(currentPercent),currentPercent+=R()*fv+fv;let sT=R();sT<.2?clrsI.sort():sT<.5?clrsI.reverse():sT<.8&&(clrsI=shuffle(clrsI));let pct,clrsC=clrsI.length,loopCap=200*(50+clrsC)*10;for(let t=0;t<clrsI.length;t++)pct=Math.floor(pA[t]/currentPercent*1e3)/1e3,cOs+=(t>0?"else if ":"if ")+"(idx < loopPoint * "+pct+") {\n",cOs+=" gloss = "+afr(gls)+".;\n",cOs+=" cIn = "+t+".;\n",cOs+=" c = "+clrsI[t]+";\n",cOs+="}\n";cOs+="else {\n",cOs+=" gl_FragColor = vec4(0.,0.,0.,1.);",cOs+=" return;",cOs+="}\n";let c="";for(let t=0;t<5;t++)c+="vec3 c"+t+" = rgb2hsv(vec3("+palette[t][0]+"./255.,"+palette[t][1]+"./255.,"+palette[t][2]+"./255.));\n";const canvas=document.getElementsByTagName("canvas")[0];canvas.width=DIM,canvas.height=DIM,cDiv.style.position="absolute",cDiv.style.overflow="hidden",canvas.parentElement.appendChild(cDiv),canvas.style.left="50%",canvas.style.top="50%",canvas.style.position="relative",canvas.style.transform="translate(-50%,-50%)",cDiv.appendChild(canvas);const yCul=flr(abs(canvas.offsetTop-DIM/2)/M),xCul=flr(abs(canvas.offsetLeft-DIM/2)/M);let cft,cD=!0,hl=/\bHeadlessChrome/.test(navigator.userAgent),lft=0;const gl=canvas.getContext("webgl"),positionsData=new Float32Array([1,1,-1,1,1,-1,-1,-1]),indices=new Uint16Array([0,1,2,1,2,3]),textureData=new Float32Array([1,1,0,1,1,0,0,0]);var texture=gl.createTexture();const targetTexture=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,targetTexture),texBind();const targetTexture2=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,targetTexture2),texBind();const bT=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,bT),texBind();const cT=gl.createTexture();function texBind(){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,DIM,DIM,0,gl.RGBA,gl.UNSIGNED_BYTE,null),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR),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.bindTexture(gl.TEXTURE_2D,cT),texBind();const fb=gl.createFramebuffer();gl.bindFramebuffer(gl.FRAMEBUFFER,fb);const indexBuffer=gl.createBuffer();var attachmentPoint=gl.COLOR_ATTACHMENT0,level=0;gl.framebufferTexture2D(gl.FRAMEBUFFER,attachmentPoint,gl.TEXTURE_2D,targetTexture,level);var aDt={},bDt={},bDta={},compositeData={},fDt={};function compileShader(t,e){var r=gl.createShader(e);if(gl.shaderSource(r,t),gl.compileShader(r),!gl.getShaderParameter(r,gl.COMPILE_STATUS))throw"Shader compile failed with: "+gl.getShaderInfoLog(r);return r}function glAB(t,e){gl.activeTexture(t),gl.bindTexture(gl.TEXTURE_2D,e)}function glD(){gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,indexBuffer),gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,indices,gl.STATIC_DRAW),gl.drawElements(gl.TRIANGLES,indices.length,gl.UNSIGNED_SHORT,0)}function drawArt(){gl.useProgram(aPg),gl.bindFramebuffer(gl.FRAMEBUFFER,fb),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,targetTexture,level),gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.vertexAttribPointer(aDt.positionAttribute,2,gl.FLOAT,!1,8,0),gl.enableVertexAttribArray(aDt.positionAttribute),gl.uniform1f(aDt.tickSet,tick),glAB(gl.TEXTURE0,texture),glD()}function blurArt(t,e){gl.useProgram(blPg),gl.bindFramebuffer(gl.FRAMEBUFFER,fb),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,e,level);var r=gl.FLOAT;gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.vertexAttribPointer(bDt.positionAttribute,2,r,!1,0,0),gl.enableVertexAttribArray(bDt.positionAttribute),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(bDt.textureAttribute,2,r,!1,0,0),gl.enableVertexAttribArray(bDt.textureAttribute),glAB(gl.TEXTURE0,t),glD()}function blendArt(t,e){gl.useProgram(bldPg),gl.bindFramebuffer(gl.FRAMEBUFFER,fb),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,e,level);var r=gl.FLOAT;gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.vertexAttribPointer(bDta.positionAttribute,2,r,!1,0,0),gl.enableVertexAttribArray(bDta.positionAttribute),glAB(gl.TEXTURE0,t),gl.uniform1i(bDta.freshTexture,0),glAB(gl.TEXTURE1,cT),gl.uniform1i(bDta.cT,1),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(bDta.textureAttribute,2,r,!1,0,0),gl.enableVertexAttribArray(bDta.textureAttribute),glD()}function compositeArt(t){gl.useProgram(compositeProgram),gl.bindFramebuffer(gl.FRAMEBUFFER,fb),gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,cT,level);var e=gl.FLOAT;gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.vertexAttribPointer(bDta.positionAttribute,2,e,!1,0,0),gl.enableVertexAttribArray(bDta.positionAttribute),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(bDta.textureAttribute,2,e,!1,0,0),gl.enableVertexAttribArray(bDta.textureAttribute),glAB(gl.TEXTURE0,t),glD()}function renderFinal(t){gl.useProgram(fPg),gl.bindFramebuffer(gl.FRAMEBUFFER,null);var e=gl.FLOAT;gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.vertexAttribPointer(bDta.positionAttribute,2,e,!1,0,0),gl.enableVertexAttribArray(bDta.positionAttribute),gl.uniform1f(fDt.tickSet,tick),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(bDta.textureAttribute,2,e,!1,0,0),gl.enableVertexAttribArray(bDta.textureAttribute),glAB(gl.TEXTURE0,t),glD()}let blurFSS="\nprecision highp float;\nvarying highp vec2 vTextureCoord;\nuniform sampler2D u_texture;\nuniform float M;\n\nvoid main() {\n vec2 resultCoords = vec2(vTextureCoord.x, vTextureCoord.y);\n\n float a = texture2D(u_texture, resultCoords).a;\n vec3 tColor = texture2D(u_texture, resultCoords).rgb;\n\n for (int i = 0;i<5;i++) {\n float bV = float(i) * .075;\n vec2 d0 = vec2(0.,.1 * float(i));\n vec2 d1 = vec2(.1 * float(i),0.);\n vec2 d2 = vec2(.1 * float(i), .1 * float(i));\n vec2 d3 = vec2(.1 * float(i),-.1 * float(i));\n\n tColor += texture2D(u_texture, resultCoords + d2).rgb * bV;\n tColor += texture2D(u_texture, resultCoords - d2).rgb * bV;\n tColor += texture2D(u_texture, resultCoords + d3).rgb * bV;\n tColor += texture2D(u_texture, resultCoords - d3).rgb * bV;\n\n }\n gl_FragColor = vec4(tColor, a);\n}\n",blurFragmentShader=compileShader(blurFSS,gl.FRAGMENT_SHADER),blendFSS="\nprecision highp float;\nvarying highp vec2 vTextureCoord;\nuniform sampler2D freshTexture;\nuniform sampler2D compTexture;\nvoid main() {\n vec3 blend0 = texture2D(freshTexture, vTextureCoord).rgb;\n vec3 blend1 = texture2D(compTexture, vTextureCoord).rgb;\n vec3 compBlend = mix(blend0,blend1,.9);\n gl_FragColor = vec4(compBlend ,1.);\n}\n",blendFragmentShader=compileShader(blendFSS,gl.FRAGMENT_SHADER),finalFSS="\nprecision highp float;\nvarying highp vec2 vTextureCoord;\nuniform sampler2D u_texture;\nuniform float tick;\n\nvoid main() {\n vec2 resultCoords = vec2(vTextureCoord.x, vTextureCoord.y);\n gl_FragColor = texture2D(u_texture, resultCoords);\n}\n",finalFragmentShader=compileShader(finalFSS,gl.FRAGMENT_SHADER),baseVertexString="\nattribute vec2 position;\nattribute vec2 texcoord;\nvarying highp vec2 vTextureCoord;\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n vTextureCoord = texcoord;\n}\n",baseVertShader=compileShader(baseVertexString,gl.VERTEX_SHADER),compFragmentShaderString="\nprecision highp float;\nvarying highp vec2 vTextureCoord;\nuniform sampler2D u_texture;\nvoid main() {\n vec2 resultCoords = vec2(vTextureCoord.x, vTextureCoord.y);\n gl_FragColor = texture2D(u_texture, resultCoords);\n}\n",compFragmentShader=compileShader(compFragmentShaderString,gl.FRAGMENT_SHADER),artFragmentString=`\nprecision highp float;\nuniform float tick;\n\nvec3 hsv2rgb(vec3 c)\n{\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\nvec3 rgb2hsv(vec3 c)\n{\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}\n\nvoid main()\n{\n ${c}\n\n float w = float(${DIM});\n float M = float(${M});\n vec2 st0 = floor((gl_FragCoord.xy / M));\n vec2 st = floor(gl_FragCoord.xy / M);\n if (st.x > st.y) {\n }\n\n if (st.x > 500.) {\n }\n if (st.y < 500.) {\n }\n\n if (st.y > 1500.) {\n }\n \n if (st.x > st.y) {\n }\n else {\n }\n\n \n\nfloat stx = st.x;\n \nif (st.x > st.y) {\n}\n else {\n}\n\n\n if (st0.x < float(${xCul}) || st0.x > 1000. - float(${xCul}) || st0.y < float(${yCul}) || st0.y > 1000. - float(${yCul})) {\n return;\n }\n\n vec2 cn = vec2(float(${d0X}),float(${d0Y}));\n vec2 cn2 = vec2(float(${d1X}),float(${d1Y}));\n vec2 cn3 = vec2(-200.,500.);\n vec2 cn4 = vec2(800.,200.);\n vec2 cnC;\n vec2 cnD;\n float p;\n float rng;\n float cM;\n float cnP;\n vec2 dist = abs(st - cn);\n vec2 dist2 = abs(st - cn2);\n\n float d = (distance(cn,st));\n if(${sq}) {\n d = max(dist.x, dist.y);\n }\n float d2 = (distance(cn2,st));\n float d3 = (distance(cn3,st));\n float d4 = (distance(cn4,st));\n float d0 = (distance(cn,st0));\n\n stx = st.x;\n \n float tp;\n float dur = 2000.;\n float phase = mod((tick),dur);\n if (phase < (dur/2.)) {\n tp = phase / (dur/2.);\n }\n else {\n tp = (dur - phase) / (dur/2.);\n }\n\n tp = tp < 0.5 ? 2. * tp * tp : 1. - pow(-2. * tp + 2., 2.) / 2.;\n\n float a = ((st.x - st.y) - d) * 200.;\n float b = (abs(st.y - st.x) + d);\n\n a = d * st.y/10.;\n b = d / (st.x/st.y);\n\n a = (floor(st.x + 10.)/10.) * 10.;\n b = (floor(d + 10.)/10.) * 10.;\n\n float idx = (d < d2 ? d : d2);\nidx *= mod(st.y,.1) * 1000.;\n idx += mod(abs((d2) * d),1000.) * 100.;\n idx += (a * (1. - tp) + b * tp) * abs(100. - d) + mod(d2,10.) * 10.;\n idx /= 1000.;\n idx += (tick * .5);\n idx = floor(idx);\n\n vec3 c;\n float cIn;\n float idxO = 200.;\n\n float loopCap = 100. + ${clrsC}.;\n float loopPoint = loopCap * 16.;\n idx = mod(abs(idx),loopPoint);\n\n float gloss = 0.;\n ${cOs}\n\n gl_FragColor = vec4(hsv2rgb(vec3(c.x,c.y,c.z)),1.);\n\n\n if (st.x < 500.) {\n }\n \n}\n`;var artFragmentShader=compileShader(artFragmentString,gl.FRAGMENT_SHADER);function cpr(t){let e=gl.createProgram();return gl.attachShader(e,baseVertShader),gl.attachShader(e,t),gl.linkProgram(e),e}function gPP(t,e){if(!gl.getProgramParameter(t,gl.LINK_STATUS))throw new Error("Failed to link "+e+" program")}const aPg=cpr(artFragmentShader),blPg=cpr(blurFragmentShader),bldPg=cpr(blendFragmentShader),compositeProgram=cpr(compFragmentShader),fPg=cpr(finalFragmentShader);gPP(aPg,"art"),gPP(blPg,"blur"),gPP(bldPg,"blend"),gPP(compositeProgram,"composite"),gPP(fPg,"final");const buffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,buffer),gl.bufferData(gl.ARRAY_BUFFER,positionsData,gl.STATIC_DRAW);var texcoordBuffer=gl.createBuffer();function draw(){cft=Date.now(),cD&&(hl?(drawArt(),blendArt(targetTexture,bT),compositeArt(bT),renderFinal(cT),tick++):cft-lft<100&&(cD&&(tCa=(cft-lft)/16,drawArt(),blendArt(targetTexture,bT),compositeArt(bT),renderFinal(cT)),tick+=tCa)),lft=cft,requestAnimationFrame(draw)}function clamp(t,e,r){return t>r?r:t<e?e:t}function shuffle(t){let e,r=t.length;for(;0!=r;)e=flr(R()*r),r--,[t[r],t[e]]=[t[e],t[r]];return t}function average(t,e,r){if(r<=e)return 0;let n=0;for(let l=e;l<r;l++)n+=t[l];return n/(r-e)}gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,textureData,gl.STATIC_DRAW),aDt.positionAttribute=gl.getAttribLocation(aPg,"position"),aDt.tickSet=gl.getUniformLocation(aPg,"tick"),bDt.positionAttribute=gl.getAttribLocation(blPg,"position"),bDt.textureAttribute=gl.getAttribLocation(blPg,"texcoord"),bDt.d=gl.getUniformLocation(blPg,"d"),bDta.positionAttribute=gl.getAttribLocation(bldPg,"position"),bDta.textureAttribute=gl.getAttribLocation(bldPg,"texcoord"),bDta.cT=gl.getUniformLocation(bldPg,"compTexture"),bDta.freshTexture=gl.getUniformLocation(bldPg,"freshTexture"),fDt.positionAttribute=gl.getAttribLocation(fPg,"position"),fDt.textureAttribute=gl.getAttribLocation(fPg,"texcoord"),fDt.positionAttribute=gl.getAttribLocation(fPg,"position"),fDt.tickSet=gl.getUniformLocation(fPg,"tick"),requestAnimationFrame(draw); }],