memoscan
← all memos

Memo 0x102cc2bc…69e6d2 on Ethereum

let hash=tokenData.hash;class Random{constructor(){this.useA=!1;let e=function(e){let o=parseInt(e.substring(0,8),16),t=parseInt(e.substring(8,16),16),r=parseInt(e.substring(16,24),16),i=parseInt(e.substring(24,32),16);return function(){r|=0;let e=((o|=0)+(t|=0)|0)+(i|=0)|0;return i=i+1|0,o=t^t>>>9,t=r+(r<<3)|0,r=(r=r<<21|r>>>11)+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substring(2,34)),this.prngB=new e(tokenData.hash.substring(34,66));for(let o=0;o<1e6;o+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(e,o){return e+(o-e)*this.random_dec()}random_int(e,o){return Math.floor(this.random_num(e,o+1))}}const vertexShader=` attribute vec3 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main() { vTexCoord = aTexCoord; vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0 - 1.0; gl_Position = positionVec4; } `,fragmentShader=` precision mediump float; varying vec2 vTexCoord; uniform sampler2D u_tex0; uniform float mouseX; float random(vec2 uv) { return fract(sin(dot(uv.xy ,vec2(532.1231,1378.3453))) * 53211.1223); } float valueNoise(vec2 uv) { // uv += u_random*40.0; vec2 localUv = fract(uv); vec2 cellID = floor(uv); localUv = localUv*localUv*(3.0 - 2.0*localUv); localUv = smoothstep(0.0, 1.0, localUv); float bottomLeft = random(cellID); float bottomRight = random(cellID+vec2(1.0, 0.0)); float bottom = mix(bottomLeft, bottomRight, localUv.x); float topLeft = random(cellID + vec2(0.0, 1.0)); float topRight = random(cellID + vec2(1.0, 1.0)); float top = mix(topLeft, topRight, localUv.x); float center = mix(bottom, top, localUv.y); return center; } float fractalValueNoise(vec2 uv) { float c = valueNoise(uv*4.0); c += valueNoise(uv*8.2)*.5; c += valueNoise(uv*16.7)*.25; c += valueNoise(uv*32.4)*.125; c += valueNoise(uv*64.5)*.0625; c /= 2.0; return c; } void main() { vec2 uv = vTexCoord; uv.y = 1.0 - uv.y; uv.x += fractalValueNoise(uv*30.5)*0.0008; uv.y += fractalValueNoise(uv*35.3)*0.0008; vec4 buff = texture2D(u_tex0, uv); vec3 color = vec3(buff.r, buff.g, buff.b); color += random(uv)/10.0; gl_FragColor = vec4(color, 1.0); } `;class Particle{constructor(e,o){this.pos=createVector(e,o),this.vel=createVector(0,0),this.acc=createVector(0,0),this.maxSpeed=options.maxSpeed,this.maxForce=options.maxForce,this.length=getRandomBetween(options.lengthMin,options.lengthMax),this.lineType=floor(random(options.lineTypeNumber))}getRepelled(e){let o=p5.Vector.sub(e,this.pos),t=o.mag(),r=-options.repelG/(t*t);if(t<options.repelRadius){let i=map(r,100,0,r/4,r);o.setMag(i),this.acc.add(o)}}seek(e){let o=p5.Vector.sub(e.pos,this.pos);o.setMag(this.maxSpeed),o.sub(this.vel),o.limit(this.maxForce),this.applyForce(o)}follow(e){let o=p5.Vector.sub(e.pos,this.pos),t=this.maxSpeed,r=options.slowRadius,i=o.mag();i<r&&(t=map(i,0,r,0,this.maxSpeed)),o.setMag(t),o.sub(this.vel),o.limit(this.maxForce),this.applyForce(o)}applyForce(e){this.acc.add(e)}update(){this.prevPos=this.pos.copy(),this.vel.add(this.acc),this.vel.limit(this.maxSpeed),this.pos.add(this.vel),this.acc.set(0,0)}show(){if(options.drawingWithLines){if(buff.stroke(this.color),buff.strokeWeight(options.thickness),buff.noFill(),buff.push(),buff.translate(this.pos.x,this.pos.y),options.rotateLines){let e=this.vel.heading();buff.rotate(e)}1==this.lineType?buff.line(-this.length/2,0,this.length/2,0):buff.line(0,-this.length/2,0,this.length/2),buff.pop()}else buff.noStroke(),buff.fill(this.color),buff.rect(this.pos.x,this.pos.y,options.thickness,options.thickness)}edges(){this.pos.x>buff.width-options.border?this.pos.x=options.border:this.pos.x<options.border&&(this.pos.x=buff.width-options.border),this.pos.y>buff.height-options.border?this.pos.y=options.border:this.pos.y<options.border&&(this.pos.y=buff.height-options.border)}}let R=new Random,options;const colors0=["#BFB3A8","#0D0000","#8C7E72","#594B3F","#0D0000","#70778b","#0D0000","#11204b"],colors2=["#a69c90","#0E0E0E","#0e0e0e"],colors3=["#a69c90","#0E0E0E","#0E0E0E","#5a0101","#01093e"],colors5=["#3d130f","#a69c90","#a69c90"],colors7=["#09091f","#b8b2ab","#b8b2ab"],colors8=["#0E0E0E","#a69c90","#a69c90"],colors9=["#0E0E0E","#8C7C68","#8C7C68","#A69580","#D9CBBA","#F2E5D5","##0D0000"],colors10=["#a69c90","#4b0101","#4b0101"],dots={pCount:17,iters:50,thickness:2.3,opac:70,border:10,maxSpeed:.9,maxForce:3,initialSpeed:1,zeroParticleOffset:13,zeroParticleNoiseFactor:5e3,drawingWithLines:!1,rotateLines:!1,lengthMin:1,lengthMax:10,lineTypeNumber:200,circleRadius:150,slowRadius:400},var0={varID:"var0",pCount:200,iters:2e3,pursueType:"follow",generation:"random",thickness:.7,opac:30,border:20,maxSpeed:90,maxForce:150,initialSpeed:10,zeroParticleOffset:1,zeroParticleNoiseFactor:5e3,drawingWithLines:!0,rotateLines:!0,lengthMin:2,lengthMax:80,lineTypeNumber:200,circleRadius:2e3,slowRadius:300,repellers:!1,repellerCount:50,repelG:1e3,repelRadius:250,colors:[colors8,colors2,colors3,colors5,colors7,colors8,colors10]},var0_1={varID:"var0",pCount:200,iters:2e3,pursueType:"seek",generation:"circle",thickness:.7,opac:40,border:20,maxSpeed:.8,maxForce:60,initialSpeed:10,zeroParticleOffset:1,zeroParticleNoiseFactor:50,drawingWithLines:!0,rotateLines:!0,lengthMin:2,lengthMax:25,lineTypeNumber:2,circleRadius:700,slowRadius:400,repellers:!0,repellerCount:30,repelG:3e3,repelRadius:200,colors:[colors8,colors0,colors2,colors3,colors5,colors7,colors8,colors9,colors10]},var1={varID:"var1",pCount:300,iters:3e3,pursueType:"follow",generation:"random",thickness:1.2,opac:20,border:20,maxSpeed:20,maxForce:30,initialSpeed:2,zeroParticleOffset:2,zeroParticleNoiseFactor:50,drawingWithLines:!0,rotateLines:!0,lengthMin:5,lengthMax:100,lineTypeNumber:2,circleRadius:200,slowRadius:100,repellers:!1,repellerCount:50,repelG:1e3,repelRadius:250,colors:[colors2,colors8,colors3,colors5,colors7,colors8]},var2={varID:"var2",pCount:300,iters:3e3,pursueType:"follow",generation:"random",thickness:.2,opac:90,border:20,maxSpeed:40,maxForce:20,initialSpeed:2,zeroParticleOffset:2,zeroParticleNoiseFactor:50,drawingWithLines:1,rotateLines:!0,lengthMin:1,lengthMax:15,lineTypeNumber:2,circleRadius:2e4,slowRadius:300,repellers:!1,repellerCount:1,repelG:7e3,repelRadius:11250,colors:[colors2,colors8,colors3,colors5,colors7,colors8]},var3={varID:"var3",pCount:200,iters:2e3,pursueType:"follow",generation:"random",thickness:.9,opac:30,border:20,maxSpeed:100,maxForce:25,initialSpeed:2,zeroParticleOffset:2,zeroParticleNoiseFactor:5e5,drawingWithLines:!0,rotateLines:!0,lengthMin:5,lengthMax:40,lineTypeNumber:2,circleRadius:2e4,slowRadius:280,repellers:!1,repellerCount:50,repelG:1e3,repelRadius:250,colors:[colors2,colors8,colors3,colors5,colors7,colors8]},var4={varID:"var3",pCount:200,iters:2e3,pursueType:"seek",generation:"circle",thickness:.2,opac:20,border:12,maxSpeed:5,maxForce:.6,initialSpeed:2,zeroParticleOffset:2,zeroParticleNoiseFactor:500,drawingWithLines:!0,rotateLines:!0,lengthMin:5,lengthMax:300,lineTypeNumber:2,circleRadius:350,slowRadius:50,repellers:!0,repellerCount:50,repelG:3e3,repelRadius:250,colors:[colors0,colors8,colors2,colors3,colors8,colors9,colors10]},var5={varID:"var5",pCount:200,iters:2e3,pursueType:"seek",generation:"random",thickness:.3,opac:30,border:70,maxSpeed:5,maxForce:1,initialSpeed:2,zeroParticleOffset:2,zeroParticleNoiseFactor:500,drawingWithLines:!0,rotateLines:1,lengthMin:5,lengthMax:250,lineTypeNumber:200,circleRadius:550,slowRadius:50,repellers:!0,repellerCount:50,repelG:7e3,repelRadius:70,colors:[colors8,colors0,colors2,colors8,colors10]},var6={varID:"var5",pCount:600,iters:600,pursueType:"follow",generation:"point",thickness:.7,opac:20,border:70,maxSpeed:320,maxForce:100,initialSpeed:1,zeroParticleOffset:1,zeroParticleNoiseFactor:50,drawingWithLines:1,rotateLines:1,lengthMin:5,lengthMax:50,lineTypeNumber:2,circleRadius:200,slowRadius:400,repellers:!1,repellerCount:30,repelG:2e3,repelRadius:1950,colors:[colors8,colors2,colors8,colors10]},var7={varID:"var1",pCount:150,iters:1500,pursueType:"follow",generation:"circle",thickness:.7,opac:30,border:10,maxSpeed:30,maxForce:1,initialSpeed:2,zeroParticleOffset:2,zeroParticleNoiseFactor:50,drawingWithLines:!0,rotateLines:!0,lengthMin:5,lengthMax:70,lineTypeNumber:3,circleRadius:420,slowRadius:350,repellers:!0,repellerCount:70,repelG:7e3,repelRadius:100,colors:[colors2,colors8,colors3,colors5,colors7,colors8]},variations=[var0,var0_1,var1,var2,var3,var4,var5,var6,var7];let particles=[],buff,centerX,centerY,start,seed,colorInd,dotsColor,theShader;const repellers=[];function drawDots(){options=dots,particles=[],centerX=buff.width/2+random(-100,100),centerY=buff.height/2+random(-100,100),createRandomParticles();for(let e=0;e<particles.length;e++)particles[e].color=transparentColor(dotsColor,options.opac);let o=options.zeroParticleOffset,t=options.zeroParticleNoiseFactor;for(let r=0;r<particles.length;r++)for(let i=0;i<options.iters;i++)0==r?(particles[r].vel.x+=map(noise(particles[0].pos.y/t),0,1,-o,o),particles[r].vel.y+=map(noise((particles[0].pos.x+1e3)/t),0,1,-o,o),particles[r].update(),particles[r].edges()):(particles[r].follow(particles[r-1]),particles[r].edges(),particles[r].update(),particles[r].show())}function drawBack(){options=randomVariation(variations),particles=[],setRepellers(options.repellerCount),colorInd=R.random_int(0,options.colors.length-1),centerX=buff.width/2+random(-100,100),centerY=buff.height/2+random(-100,100),buff.background(options.colors[colorInd][0]),dotsColor=options.colors[colorInd][1],"line"===options.generation?createLinedParticles(random(550,700)):"point"===options.generation?createCenteredParticles(centerX,centerY):"random"===options.generation?createRandomParticles():"circle"===options.generation&&createCircularParticles(options.circleRadius),colorizeParticles(options.colors[colorInd],particles),"follow"==options.pursueType?followParticles():seekParticles()}function drawEverything(e){start=Date.now(),pixelDensity(e),randomSeed(seed),noiseSeed(seed),windowWidth<windowHeight/1.4?createCanvas(windowWidth,1.4*windowWidth,WEBGL):createCanvas(windowHeight/1.4,windowHeight,WEBGL),(buff=createGraphics(750,1050)).pixelDensity(e),buff.rectMode(CENTER),theShader=createShader(vertexShader,fragmentShader),drawBack(),drawDots()}function setup(){seed=floor(999999999*R.random_dec()),drawEverything(3.5)}function draw(){shader(theShader),theShader.setUniform("u_tex0",buff),rect(-width/2,-height/2,width,height),noLoop()}function keyPressed(){("s"===key||"S"===key)&&save("Chaos_Control.png")}function followParticles(){for(let e=0;e<options.iters;e++){particles[0].vel.x+=map(noise(particles[0].pos.y/options.zeroParticleNoiseFactor),0,1,-options.zeroParticleOffset,options.zeroParticleOffset),particles[0].vel.y+=map(noise((particles[0].pos.x+1e3)/options.zeroParticleNoiseFactor),0,1,-options.zeroParticleOffset,options.zeroParticleOffset),particles[0].update(),particles[0].edges();for(let o=1;o<particles.length;o++)particles[o].follow(particles[o-1]),particles[o].edges(),particles[o].update(),particles[o].show()}}function seekParticles(){for(let e=0;e<options.iters;e++){particles[0].vel.x+=map(noise(particles[0].pos.y/options.zeroParticleNoiseFactor),0,1,-options.zeroParticleOffset,options.zeroParticleOffset),particles[0].vel.y+=map(noise((particles[0].pos.x+1e3)/options.zeroParticleNoiseFactor),0,1,-options.zeroParticleOffset,options.zeroParticleOffset),particles[0].update(),particles[0].edges();for(let o=1;o<particles.length;o++){if(options.repellers)for(let t of repellers)particles[o].getRepelled(t);particles[o].seek(particles[o-1]),particles[o].edges(),particles[o].update(),particles[o].show()}}}function setRepellers(e){for(let o=0;o<e;o++){let t=createVector(random(options.border,buff.width-options.border),random(options.border,buff.height-options.border));buff.stroke(255),buff.strokeWeight(1),buff.noFill(),buff.circle(t.x,t.y,10),repellers.push(t)}}function createCenteredParticles(e,o){for(let t=0;t<options.pCount;t++){let r=new Particle(e,o);r.vel=randomizedVector(),r.vel.mult(options.initialSpeed),particles.push(r)}particles[0].vel=createVector(0,0)}function createRandomParticles(){for(let e=0;e<options.pCount;e++){let o=new Particle(random(buff.width),random(buff.height));o.vel=randomizedVector(),o.vel.mult(options.initialSpeed),particles.push(o)}particles[0].vel=createVector(0,0)}function createCircularParticles(e){let o=TWO_PI/options.pCount,t=random(TWO_PI);for(let r=t;r<t+TWO_PI;r+=o){let i=r,s=buff.width/2+e*cos(i),l=buff.height/2+e*sin(i),a=new Particle(s,l);a.vel=randomizedVector(),a.vel.mult(options.initialSpeed),particles.push(a)}particles[0].vel=createVector(0,0)}function createLinedParticles(e){let o=(buff.width-2*options.border)/options.pCount;for(let t=options.border;t<buff.width-options.border;t+=o){let r=new Particle(t,e);r.vel=randomizedVector(),r.vel.mult(options.initialSpeed),particles.push(r)}particles[0].vel=createVector(0,0)}function colorizeParticles(e,o){let t=ceil(o.length/(e.length-2));for(let r=0;r<o.length;r++){let i=floor(r/t)+2;o[r].color=transparentColor(e[i],options.opac)}}function transparentColor(e,o){let t=red(e),r=green(e),i=blue(e);return color(t,r,i,o)}function randomVariation(e){return e[R.random_int(0,e.length-1)]}function getRandomBetween(e,o){return random()*(o-e)+e}function randomizedVector(){let e=random(TWO_PI),o=1*cos(e),t=1*sin(e);return createVector(o,t)}function windowResized(){windowWidth<windowHeight/1.4?resizeCanvas(windowWidth,1.4*windowWidth):resizeCanvas(windowHeight/1.4,windowHeight)}