0xc7d7852c…e9a1sent to0x0a1bbd57…3676·#19,261,226·view on Etherscan
const uP=new URLSearchParams(window.location.search);let uS=uP.get("png")??"",uSS=uP.get("svg")??"",uSp=uP.get("speed")??"",uH=uP.get("hash")??"",uF=uP.get("full")??"",uI=uP.get("i")??"",uA=uP.get("animate")??"",uIn=uP.get("invert")??"",uC=uP.get("clock")??"",uAR=uP.get("aspect")??"",uM=uP.get("margin")??"",uRM=uP.get("spin")??"",uBB=uP.get("bboxes")??"",A_R=""!=uAR?parseFloat(uAR):1;console.log(A_R);let D_S=1e3,DIM=Math.min(window.innerWidth,window.innerHeight/A_R),S=DIM/D_S,pxDensity=2;function presetup(){canvas=createCanvas(1e3*S,1e3*S*A_R),pixelDensity(pxDensity),setupUseful(),noFill(),strokeWeight(S),strokeJoin(BEVEL),sGP()}tokenData.hash=""!=uH?uH:tokenData.hash;let gp={};function sGP(){gp.margin=""!=uM?float(uM)*W*S:100*S,gp.backgroundColor=""!=uIn?0:255,gp.strokeColor=""!=uIn?255:0,gp.mousePathLength=50,gp.i=""!=uI?int(uI):4e3,gp.distanceSqOK=100,gp.speed=""!=uSp?float(uSp):S,gp.smooth=rnd()<.1,gp.animate=""==uA,gp.n=[2],gp.angle=weightedPick([1,2,3,4],[20,5,3,1]),gp.backgroundAlpha=150,gp.numLines=weightedPick([3,4,5,6,7],[80,1,1,1,3]),gp.oddsExtraParams=rnd()<.75?.15:0,gp.hash=tokenData.hash,gp.rateMultiplier=""!=uRM?float(uRM):1,print("thank you p5.js and everyone behind it <3"),frameRate(30)}let decTime=""!=uC?0:void 0;function setup(){presetup();let e=e=>{let t,s,a,n;do{t=floor(rnd(e.shape.length)),s=rnd(),a=floor(rnd(e.shape.length)),n=rnd()}while(t==a);return new Poly([p5.Vector.lerp(e.shape[t],e.shape[(t+1)%e.shape.length],s),p5.Vector.lerp(e.shape[a],e.shape[(a+1)%e.shape.length],n)],0,0,1,0,0)};for(let t=0;t<gp.numLines;t++){let s=e(Poly.rect(W/2,H/2,W-gp.margin-10*S,H-gp.margin-10*S)),a=rtri(5,10,30);s.reseed(a*S,0);let n=vec(0,1);n.rotate(rnd(TAU));let r=s.shape;for(let e=0;e<1;e++)rnd()<gp.oddsExtraParams&&setupParams(void 0,{n:rnd([2,2,2,3,5,7]),offset:rnd(TAU),x:rnd(gp.margin/2+10*S,W-gp.margin/2-10*S),y:rnd(gp.margin/2+10*S,H-gp.margin/2-10*S)});for(let e of r)setupParams(void 0,{lineNum:t,n:rnd(gp.n),offset:n.heading(),x:e.x,y:e.y,rateMultiplier:10**t});for(let e=0;e<2;e++)rnd()<gp.oddsExtraParams&&setupParams(void 0,{n:rnd([2,2,2,3,5,7,12,24]),offset:rnd(TAU),x:rnd(gp.margin/2+10*S,W-gp.margin/2-10*S),y:rnd(gp.margin/2+10*S,H-gp.margin/2-10*S)})}mousePoly=Poly.rect(W/2,H/2,W,H)}let allParams=[];function setupParams(e,t={}){let s={};if(s.animate=gp.animate,s.x=t.x??W/2,s.y=t.y??H/2,s.colorAngle=t.colorAngle??0,s.rateMultiplier=t.rateMultiplier??gp.rateMultiplier??1,s.speed=gp.speed,s.smooth=t.smooth??gp.smooth,s.lineNum=t.lineNum??void 0,s.centers=[vec(t.x,t.y)]??[vec(s.x,s.y)],s.angle=t.angle??gp.angle,s.offset=t.offset??1234,s.sOffset=t.sOffset??t.offset,s.i=t.i??1/0,s.counter=0,s.selfreflect=t.selfreflect??1,s.n=t.n??gp.n,s.oldrays=t.rays,s.rays=[],0!=s.n)for(let t of s.centers)for(let a=0;a<TAU;a+=TAU/s.n){let n=new Poly([t.copy()],0,0,1,0,0);n.dir=vec(cos(a+s.offset),sin(a+s.offset)),n.paramIdx=e??allParams.length,n.distance=0,s.rays.push(n)}return void 0===e?allParams.push(s):allParams[e]=s,s}let mousePoly,thread,qt,q=[],rays=[],globalbboxes=[],mousePath=[];function mouseMoved(){mmAdd&&(mmAdd=0,mousePath.push(vec(mouseX,mouseY)))}let mmAdd=0;function draw(){for(""!=uF&&(resizeToFit(),uF="");mousePath.length>gp.mousePathLength;)mousePath.shift();mmAdd=1,blendMode(BLEND),background(gp.backgroundColor,gp.backgroundAlpha);let e=new Poly(mousePath,0,0,1,0,0);if(e.setColor(-1,color(gp.strokeColor,255)),e.vis=1,mousePoly=e,null==decTime){let e=millis()/1e3/60/60,t=e/60,s=t/24,a=s/7,n=[e,t,s];allParams.map(((e,t)=>{e.animate&&(null==e.lineNum||e.lineNum>3)?e.offset=e.sOffset+a*TAU:e.animate&&(e.offset=e.sOffset+n[e.lineNum]*TAU*gp.rateMultiplier)}))}else if(decTime){let e=(()=>{const e=new Date("1793-10-05T00:00:00Z"),t=new Date;return((t-e)/864e5%10+(3600*t.getHours()+60*t.getMinutes()+t.getSeconds()+t.getMilliseconds()/1e3)/86400)/10})();allParams.map(((t,s)=>{t.animate&&(null==t.lineNum||t.lineNum>3)?t.offset=e:t.animate&&(t.offset=PI/2+e*TAU*10**(3-t.lineNum-1))}))}else{let e=(()=>{const e=new Date,t=e.getDay(),s=0===t?6:t-1,a=e.getHours(),n=e.getMinutes(),r=e.getSeconds(),o=e.getMilliseconds();return[(6e4*n+1e3*r+o)/36e5,(a%12*3600+60*n+r+o/1e3)/43200,(24*s*60*60*1e3+60*a*60*1e3+60*n*1e3+1e3*r+o)/6048e5]})();allParams.map(((t,s)=>{t.animate&&(null==t.lineNum||t.lineNum>3)?t.offset=e[2]:t.animate&&(t.offset=PI/2+e[t.lineNum]*TAU)}))}let t=Poly.rect(W/2,H/2,W-gp.margin,H-gp.margin);t.vis=0,t.shape.push(t.shape[0].copy()),globalbboxes=[t,mousePoly],""!=uBB&&parseBBox(uBB).map((e=>globalbboxes.push(e))),allParams=allParams.map(((e,t)=>setupParams(t,e))),allParams.map((e=>e.counter=0)),qt=new GridQT(0,0,W,H,25*S);for(let e of globalbboxes)qt.add(e);tickRays(0).map((e=>{let t=allParams[e.paramIdx];t.smooth&&(e.shape.splice(0,0,e.shape[0].copy()),e.shape.splice(e.shape.length,0,e.shape[e.shape.length-1].copy())),e.draw(1,0,t.smooth),t.smooth&&(e.shape.splice(0,1),e.shape.splice(e.shape.length-1,1))})),globalbboxes.map((e=>{stroke(gp.strokeColor),e.closed=!1,e.vis&&e.draw()})),timeText(),""!=uS&&frameCount==int(uS)&&saveNamed(),""!=uSS&&frameCount==int(uSS)&&saveMySVG()}function tickRays(e){let t=allParams.map((e=>e.rays)).flat(),s=allParams.map((e=>e.oldrays)).flat(),a=t.map(((e,t)=>[e,s[t]]));allParams.map((e=>e.counter=0)),q=[...a];let n=0;for(;q.length&&n<gp.i;){let[s,a]=q.shift(),r=allParams[s.paramIdx];if(r.counter++,r.counter>r.i)continue;n++;let o=[...globalbboxes];r.selfreflect&&(o=[...o,...t]);let i=qt.rayIntersect(s.shape[s.shape.length-1],s.dir);