memoscan
← all memos

Memo 0xf6e4e67f…66d2be on Ethereum

class Random{constructor(){this.useA=!1;let t=function(t){let r=parseInt(t.substr(0,8),16),n=parseInt(t.substr(8,8),16),s=parseInt(t.substr(16,8),16),e=parseInt(t.substr(24,8),16);return function(){r|=0,n|=0,s|=0,e|=0;let t=(r+n|0)+e|0;return e=e+1|0,r=n^n>>>9,n=s+(s<<3)|0,s=s<<21|s>>>11,s=s+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()}random_num(t,r){return t+(r-t)*this.random_dec()}random_int(t,r){return Math.floor(this.random_num(t,r+1))}random_choice(t){return t[this.random_int(0,t.length-1)]}} const Easing={Linear:t=>t,InQuad:t=>(t/=1)*t,OutQuad:t=>-1*(t/=1)*(t-2),InOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),InCubic:t=>(t/=1)*t*t,OutCubic:t=>(t=t/1-1)*t*t+1,InOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),InQuart:t=>(t/=1)*t*t*t,OutQuart:t=>-1*((t=t/1-1)*t*t*t-1),InOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),InQuint:t=>(t/=1)*t*t*t*t,OutQuint:t=>(t=t/1-1)*t*t*t*t+1,InOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),InSine:t=>-1*Math.cos(t/1*(Math.PI/2))+1,OutSine:t=>Math.sin(t/1*(Math.PI/2)),InOutSine:t=>-.5*(Math.cos(Math.PI*t/1)-1),OutExpo:t=>1==t?2:1*(1-Math.pow(2,-10*t/1)),InOutExpo:t=>0==t?0:1==t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t)),InCirc:t=>-1*(Math.sqrt(1-(t/=1)*t)-1),OutCirc:t=>Math.sqrt(1-(t=t/1-1)*t),InOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),InBack:t=>{let u=1.70158;return(t/=1)*t*((u+1)*t-u)},OutBack:t=>{let u=1.70158;return(t=t/1-1)*t*((u+1)*t+u)+1},InOutBack:t=>{let u=1.70158;return(t/=.5)<1?t*t*((1+(u*=1.525))*t-u)*.5:.5*((t-=2)*t*((1+(u*=1.525))*t+u)+2)},InBounce:t=>1-Easing.OutBounce(1-t),OutBounce:t=>(t/=1)<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,InOutBounce:t=>t<.5?.5*Easing.InBounce(2*t):.5*Easing.OutBounce(2*t-1)+.5}; const Algorithms=[(r,n,a,s)=>{const i=map(s.a,0,1,-.125,.125),t=map(s.b,0,1,-.125,.125),o=map(s.c,0,1,.11,.45);return cos((r+a*i)*o)*cos((n+a*t)*o)*.1+.5*a},(r,n,a,s)=>{const i=map(s.a,0,1,5,grid.x/2),t=map(s.b,0,1,1,20),o=map(s.c,0,1,-2*a,2*a),d=map(s.d,0,1,-2*a,2*a);return abs(sin(r/i+o)+1*cos(n/i+d)+1*t)},(r,n,a,s)=>{const i=map(s.b,0,1,1,5),t=map(s.c,0,1,1,5),o=sin(r/i/grid.x+a),d=sin(n/t/grid.y+a);switch(floor(3*s.a)){case 0:return o;case 1:return d;default:return o*d}},(r,n,a,s)=>{const i=map(s.a,0,1,15,40),t=map(s.b,0,1,15,40);return cos(r/i+a)+sin(n/t+a)+a},(r,n,a,s)=>{const i=s.a<.5?r:n,t=s.b<.5?grid.x:grid.y,o=map(s.c,0,1,1,6);return sin(i/t/o+a)},(r,n,a,s)=>{const i=map(s.a,0,1,.06,.3),t=map(s.b,0,1,.1,.5);return sin(a-sqrt((r*r+n*n)*t)*i)},(r,n,a,s)=>{const i=map(s.a,0,1,.05,.1);return a%grid.x-Math.hypot(r-grid.x/2,n-grid.y/2)*i},(r,n,a)=>(r+1)/(n+1)/(r+1)-a,(r,n,a)=>(r-grid.x/2)*(n-grid.y/2)-sin(a),(r,n,a,s)=>{const i=map(sin(a),-1,1,.5,1),t=map(s.b,0,1,1,4),o=s.c<.5?-1:1;return sin(2*atan((n-grid.y/2)/(r-grid.x/2))+t*o*a)*i},(r,n,a)=>sin(n%2+a)*sin(r%2+a)/sin(n%1+a)*sin(r%1+a),(r,n,a)=>sin(a),(r,n,a)=>a,(r,n,a)=>r%2==0&&n%2==0?a:0,(r,n,a,s)=>{let i=n,t=grid.y;s.a<.5&&(i=r,t=grid.x);const o=s.b<.5?t-i:i;return Math.log(o+1)+a},(r,n,a)=>abs(r/2)+a,(r,n,a,s)=>{const i=s.a<.5?r-n:r+n,t=s.b<.5?-a:a;return i/(s.c<.5?grid.x:grid.y)+t},(r,n,a,s)=>{const i=3*(round(3*s.a)+1),t=map(s.b,0,1,-200,200),o=map(s.c,0,1,-200,200);return cos((r+a/t)*i)*sin((n+a/o)*i)*sin(a)*.5+a},(r,n,a,s)=>{const i=map(s.a,0,1,2,5),t=s.b<.5?a:-a;return n/grid.y/i+t},(r,n,a,s)=>{const i=.13*map(s.a,0,1,.05,.3),t=map(s.b,0,1,1.2,3);return floor(r+n)*i/t*HALF_PI+a},(r,n,a,s)=>{const i=map(s.a,0,1,1,3),t=map(s.b,0,1,1,3);return cos(a+r/grid.x/i)+sin(a+n/grid.y/t)},(r,n,a,s)=>(s.a<.5?grid.y/(n+1):grid.x/(r+1))/map(s.b,0,1,1,5)+(s.c<.5?a:-a),(r,n,a,s)=>{const i=s.a<.5?a:-a,t=s.b<.5?r+n:r-n;return cos(i+t/(grid.x+random(10)))},(r,n,a,s)=>{const i=round(10*map(s.a,0,1,1.5,3))/10;return(s.b>.5?n:r)/i%grid.y+a},(r,n,a,s)=>{const i=map(s.a,0,1,.2,.4),t=map(s.b,0,1,.2,.4);return sin(a-sqrt(2*(r-grid.x/i)+(n-grid.y/t)**2))},(r,n,a,s)=>{const i=map(s.a,0,1,50,120);return.1*abs(sin(r*i))+a},(r,n,a,s)=>{const i=round(map(s.a,0,1,5,8)+a/100),t=round(map(s.b,0,1,5,7)+a/100),o=round(1.3*map(s.c,0,1,70,99)),d=s.d<.5?grid.y:grid.y+1;return(r-grid.x/2)**i+(n-d/2)**t-o*sin(a/50)},(r,n,a,s)=>{const i=round(grid.x/map(s.a,0,1,3,6)),t=round(grid.y/map(s.b,0,1,3,5));return(r%i&&n%t/HALF_PI)+a},(r,n,a,s)=>{const i=map(s.a,0,1,1,2.5);return round(r-grid.x/2)*round(n-grid.y/2)-sin(a)*i},(r,n,a,s)=>{const i=floor(map(s.a,0,1,4,grid.x-4)),t=floor(map(s.b,0,1,2,grid.y-2)),o=grid.x/2-i/2,d=grid.y/2-t/2;return(r>=o&n>=d&r<o+i&n<d+t)*PI+a},(r,n,a,s)=>{const i=map(s.a,0,1,-a,a),t=map(s.b,0,1,-a,a),o=map(s.c,0,1,-a,a),d=map(s.d,0,1,5,15);return map(constrain(10*noise(r/d+i,n/d+t,o),3.5,6),3.5,6,0,1)}]; const R=new Random;let timer=0;const blockAspectRatio=Math.sqrt(2);function invertEasing(r){return(r+.5)%1}const params={seed:0,speed:0,algorithm:0,gridCount:0,easing:0,rotationX:0,rotationY:0,rotationZ:0,modifierA:0,modifierB:0,modifierC:0,modifierD:0,chaos:!1,invert:!1},grid={border:{x:75,y:0},size:{},block:{border:{},size:{}}},defaultWidth=1280,defaultHeight=720;function calculateCanvasSize(){const r=1280/720,a=window.innerWidth,i=window.innerHeight;return i<a/r?{w:i*r,h:i}:{w:a,h:a/r}}function setup(){const r=calculateCanvasSize();createCanvas(r.w,r.h,WEBGL);perspective(PI/3,width/height,.1,1e3),frameRate(60),pixelDensity(2),params.seed=R.random_num(0,1e4),params.speed=R.random_num(.003,.007),params.algorithm=floor(Easing.InQuad(R.random_dec())*Algorithms.length);let a=Easing.InOutQuad(R.random_dec());a=invertEasing(a),a=round(55*a+9),params.gridCount=a,R.random_num(0,100)<1&&(params.gridCount=R.random_int(3,6)),params.easing=R.random_int(0,Object.keys(Easing).length-1),params.rotationX=TWO_PI,params.rotationY=R.random_choice([0,PI,TWO_PI]),params.rotationZ=0,R.random_int(0,50)<1&&(params.rotationZ=R.random_choice([0,PI,TWO_PI])),params.modifierA=R.random_dec(),params.modifierB=R.random_dec(),params.modifierC=R.random_dec(),params.modifierD=R.random_dec(),calculateGrid()}function draw(){randomSeed(params.seed),background(29),stroke(39),fill(249),params.invert&&(stroke(249),fill(29)),translate(-.5*width+grid.block.border.x,-.5*height+grid.block.border.y);for(let r=0;r<grid.x;r++)for(let a=0;a<grid.y;a++)params.chaos&&magic(r,a),params.gridCount>40?strokeWeight(1.5):params.gridCount<10?strokeWeight(10.5):strokeWeight(3.5),push(),translate(r*grid.size.x,a*grid.size.y),rotateX(HALF_PI),magic(r,a),box(grid.block.size.x,.2*grid.block.size.x,grid.block.size.y),pop();timer+=params.speed}function magic(r,a){const i={a:params.modifierA,b:params.modifierB,c:params.modifierC,d:params.modifierD};let e=Algorithms[params.algorithm](r,a,timer,i);e=abs(e),e%=1;const o=pickEasing(e);rotateX(o*params.rotationX),rotateY(o*params.rotationY),rotateZ(o*params.rotationZ)}function pickEasing(r){return Easing[Object.keys(Easing)[params.easing]](r)}function calculateGrid(){grid.border.x=width*(grid.border.x/1280),grid.x=params.gridCount,grid.border.y=grid.border.x/blockAspectRatio,grid.size.x=(width-grid.border.x)/(grid.x+1),grid.size.y=grid.size.x*blockAspectRatio,grid.y=max(floor((height-grid.border.y)/grid.size.y),1),grid.block.border.x=grid.size.x+grid.border.x/2,grid.block.border.y=.5*grid.size.y+.5*(height-grid.size.y*grid.y),grid.block.size.x=.7*grid.size.x,grid.block.size.y=.7*grid.size.y}function keyReleased(r){switch(r.keyCode){case 83:save(`Balletic-Motus_Art-${tokenData.hash}`);break;case 80:0!=params.speed?(params.speedOriginal=params.speed,params.speed=0):params.speed=params.speedOriginal;break;case 67:params.chaos=!params.chaos;break;case 73:params.invert=!params.invert}}