0xad39…6684

All memos sent from and to 0xad39…6684.

const colors=["#BF0413","#023E73","#02733E","#F29F05","#F24405","#000"];class Random{constructor(n){this.useA=!1;const t=function(n){let t=parseInt(n.substr(0,8),16),e=parseInt(n.substr(8,8),16),r=parseInt(n.substr(16,8),16),o=parseInt(n.substr(24,8),16);return function(){let n=((t|=0)+(e|=0)|0)+(o|=0)|0;return o=o+1|0,t=e^e>>>9,e=(r|=0)+(r<<3)|0,r=(r=r<<21|r>>>11)+n|0,(n>>>0)/4294967296}};this.prngA=new t(n.substr(2,32)),this.prngB=new t(n.substr(34,32));for(let n=0;n<1e6;n+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(n,t){return n+(t-n)*this.random_dec()}random_int(n,t){return Math.floor(this.random_num(n,t+1))}random_bool(n){return this.random_dec()<n}random_choice(n){return n[this.random_int(0,n.length-1)]}}let _=new Random(tokenData.hash);function dpt(n,t){const e=.0011*(width-2*t);for(let t=0;t<516;t++){const r=t/516,o=map(r,0,1,0,width);for(let s=0;s<516;s++){const a=s/516,i=map(a,0,1,0,height),m=noise(20*r,20*a);n.erase(100*m),n.rect(o,i,e,e),n.noErase(),t%12==0&&s%12==0&&(n.erase(50*m),n.rect(o,i,e,e),n.noErase())}}}function ppprt(n){loadPixels();for(let t=0;t<pixels.length;t+=4){let e=_.random_int(-n,n);pixels[t]=pixels[t]+e,pixels[t+1]=pixels[t+1]+e,pixels[t+2]=pixels[t+2]+e}updatePixels()}const bezPt=(n,t,e)=>{const r=n=>n*(n=>pow(n,2))(n)+(1-n)*(n=>1.7*pow(n,2))(n),o=n=>n*(n=>1.7*-pow(1-n,2)+1)(n)+(1-n)*(n=>1-pow(n-1,2))(n);return bezierPoint(0,r(n),o(t),1,bezierPoint(0,r(n),o(t),1,bezierPoint(0,r(n),o(t),1,e)))},cosNorm=n=>(cos(n)+1)/2;function nearest(n,t,e,r){var o=Math.round((n-t)*r/(e-t))/r;return(o=Math.min(Math.max(o,0),1))*(e-t)+t}function dtri(n,t,e=0){n.beginShape();for(let r=0;r<3;r++){let{x:o,y:s}=t[(r+e)%4];n.vertex(o,s)}n.endShape(CLOSE)}function dar(n,t,e=0,r=0){e=(e+1)%4;const o=p5.Vector.sub(t[0],t[2]).mult(2).sub(-r,-r),{x:s,y:a}=t[e];n.arc(s,a,o.x,o.y,HALF_PI*e,HALF_PI+HALF_PI*e,PIE)}function darInv(n,t,e,r=50){e=(e+1)%4,n.beginShape();const o=t[e%t.length],s=t[(e+1)%t.length],a=t[(e+3)%t.length],i=t[(e+2)%t.length],m=p5.Vector.sub(o,i);n.vertex(a.x,a.y),n.vertex(o.x,o.y),n.vertex(s.x,s.y);for(let t=0;t<r;t++){const o=t/(r-1)*HALF_PI;let s=cos(o)*m.x+i.x,a=sin(o)*m.y+i.y;e%2==0&&(s=sin(o)*m.x+i.x,a=cos(o)*m.y+i.y),n.vertex(s,a)}n.endShape(CLOSE)}function setup(){let n=window.innerWidth,t=window.innerHeight;1.385*n<t?t=round(1.385*n):n=round(t/1.385),sz=min(n,t),canv=createCanvas(n,t),mrgn=.07*sz,noiseDetail(3,.5),noLoop(),noiseSeed(_.random_int(0,1e4)),noStroke(),cg=createGraphics(width,height),cg.noStroke();const e=createGraphics(width,height);e.noStroke();const r=_.random_choice(["light","light","light","light","light","dark","dark","dark","dark","chroma"]),o=color("dark"===r?40:[232,224,209]);background(o),document.body.style=`background: rgba(${o.levels})`;const s=_.random_int(0,1)>.25?"x":"y",a=_.random_int(3,37),i=_.random_num(0,2)*TAU*2,m=HALF_PI+_.random_num(0,1)*TAU,c=_.random_num(0,1),h=_.random_num(0,2)*TAU*2,d=HALF_PI+_.random_num(0,1)*TAU,u=_.random_num(0,1),l=_.random_num(.25,.75),g=_.random_num(.25,.75),p="x"===s?.85:.65,x=_.random_num(0,Math.PI),f=_.random_num(0,Math.PI),b=(n,t,e,r,o)=>{const s=t>.5||e>20?cosNorm(PI+n*PI+r):1;return.5+(cosNorm(n*e+o)-.5)*t*p*s},w=(n,t)=>bezPt(b(t,c,i,x,m),b(t,u,h,f,d),n),P=n=>.5+1*(n-.5),I=n=>bezPt(P(l),P(g),n),A=floor(_.random_num(0,4)),k=a>7&&_.random_num(0,1)>.25,v=a>7&&_.random_num(0,1)>.25,y=[];for(let n=0;n<a;n++){const t=nearest(I(n/a),0,1,200),e=nearest(I((n+1)/a),0,1,200);if(t===e)continue;const o=ceil(1/(e-t)*("x"===s?min(width,height)/max(width,height):max(width,height)/min(width,height)));for(let l=0;l<o;l++){const g=(n,e,r)=>n>.5||e>20?cosNorm(PI+t*PI+r):1;let p=1;(u>.5||h>20)&&(p=cosNorm(PI+t*PI+f));const _=k?cosNorm(t*i+m)*c*g(c,i,x)*.2:0,b=v?cosNorm(t*h+d)*u*g(u,h,f)*.2:0,P=l/o,I=4*floor(1/(e-t)),S=nearest(w(P,t),_,1-b,I),z=nearest(w((l+1)/o,t),_,1-b,I);if(t===e||S===z)continue;let L,E,H,N;"x"===s?(L=map(S,0,1,mrgn,width-mrgn),E=map(z,0,1,mrgn,width-mrgn),H=map(t,0,1,mrgn,height-mrgn),N=map(e,0,1,mrgn,height-mrgn)):(H=map(S,0,1,mrgn,height-mrgn),N=map(z,0,1,mrgn,height-mrgn),L=map(t,0,1,mrgn,width-mrgn),E=map(e,0,1,mrgn,width-mrgn));let M=[createVector(L-.35,H-.35),createVector(E+.35,H-.35),createVector(E+.35,N+.35),createVector(L-.35,N+.35)];k||v||(M=M.map(n=>{const e=o<14?.04:.009,r=(noise(3*t,0)*noise(3+10*t,0)-.5)*sz*e;return"x"===s?n.add(r,0):n.add(0,r)}));const T=[dtri,dar],V=abs(z-S),B=abs(e-t);min(V,B)/max(V,B)>.1&&T.push(darInv),a>20&&T.unshift(dtri,dar);const C=T[round(noise(.75*S,10*t)*(T.length-1))],U=()=>{const e=A+n+floor(2*P)+round(2*noise(10*t)),r=[0,1,2,3];return noise(2*S,2*t)>.5&&r.reverse(),r[e%4]};function F(t){"chroma"===r?t.fill(colors[(1+A+floor(noise(n/colors.length)*n)+floor(2*P))%colors.length]):t.fill("dark"===r?[232,224,209]:[25])}const D=noise(0,2*t)>.75?n=>{F(n),darInv(n,M,abs(U()))}:n=>{F(n),C(n,M,abs(U()))};y.push(D)}}const S=/\bHeadlessChrome/.test(navigator.userAgent),z=1e3/y.length;background(o);const L=()=>{dpt(cg,mrgn),e.background(o),e.image(cg,0,0),image(e,0,0),ppprt("dark"===r?13:10)};shuffle(y).forEach((n,t)=>{const e=()=>{n(this),n(cg)};S?e():((n,t)=>{setTimeout(()=>{t(),n===y.length-1&&setTimeout(()=>L(),30)},n*z)})(t,e)}),S&&L()}
const colors=["#BF0413","#023E73","#02733E","#F29F05","#F24405","#000"];class Random{constructor(n){this.useA=!1;const t=function(n){let t=parseInt(n.substr(0,8),16),e=parseInt(n.substr(8,8),16),r=parseInt(n.substr(16,8),16),o=parseInt(n.substr(24,8),16);return function(){let n=((t|=0)+(e|=0)|0)+(o|=0)|0;return o=o+1|0,t=e^e>>>9,e=(r|=0)+(r<<3)|0,r=(r=r<<21|r>>>11)+n|0,(n>>>0)/4294967296}};this.prngA=new t(n.substr(2,32)),this.prngB=new t(n.substr(34,32));for(let n=0;n<1e6;n+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(n,t){return n+(t-n)*this.random_dec()}random_int(n,t){return Math.floor(this.random_num(n,t+1))}random_bool(n){return this.random_dec()<n}random_choice(n){return n[this.random_int(0,n.length-1)]}}let _=new Random(tokenData.hash);function dpt(n,t){const e=.0011*(width-2*t);for(let t=0;t<516;t++){const r=t/516,o=map(r,0,1,0,width);for(let s=0;s<516;s++){const a=s/516,i=map(a,0,1,0,height);n.erase(noise(20*r,20*a)*noise(1+20*r/2,1+20*a/2)*200),n.rect(o,i,e,e),n.noErase(),t%12==0&&s%12==0&&(n.erase(30*noise(20*r,20*a)),n.rect(o,i,e,e),n.noErase())}}n.erase(40);for(let t=0;t<100;t++)n.rect(_.random_int(0,width),_.random_int(0,height),1,1);n.noErase()}function ppprt(n){loadPixels();for(let t=0;t<pixels.length;t+=4){let e=_.random_int(-n,n);pixels[t]=pixels[t]+e,pixels[t+1]=pixels[t+1]+e,pixels[t+2]=pixels[t+2]+e}updatePixels()}const bezPt=(n,t,e)=>{const r=n=>n*(n=>pow(n,2))(n)+(1-n)*(n=>1.7*pow(n,2))(n),o=n=>n*(n=>1.7*-pow(1-n,2)+1)(n)+(1-n)*(n=>1-pow(n-1,2))(n);return bezierPoint(0,r(n),o(t),1,bezierPoint(0,r(n),o(t),1,bezierPoint(0,r(n),o(t),1,e)))},cosNorm=n=>(cos(n)+1)/2;function nearest(n,t,e,r){var o=Math.round((n-t)*r/(e-t))/r;return(o=Math.min(Math.max(o,0),1))*(e-t)+t}function dtri(n,t,e=0){n.beginShape();for(let r=0;r<3;r++){let{x:o,y:s}=t[(r+e)%4];n.vertex(o,s)}n.endShape(CLOSE)}function dar(n,t,e=0,r=0){e=(e+1)%4;const o=p5.Vector.sub(t[0],t[2]).mult(2).sub(-r,-r),{x:s,y:a}=t[e];n.arc(s,a,o.x,o.y,HALF_PI*e,HALF_PI+HALF_PI*e,PIE)}function darInv(n,t,e,r=50){e=(e+1)%4,n.beginShape();const o=t[e%t.length],s=t[(e+1)%t.length],a=t[(e+3)%t.length],i=t[(e+2)%t.length],m=p5.Vector.sub(o,i);n.vertex(a.x,a.y),n.vertex(o.x,o.y),n.vertex(s.x,s.y);for(let t=0;t<r;t++){const o=t/(r-1)*HALF_PI;let s=cos(o)*m.x+i.x,a=sin(o)*m.y+i.y;e%2==0&&(s=sin(o)*m.x+i.x,a=cos(o)*m.y+i.y),n.vertex(s,a)}n.endShape(CLOSE)}function setup(){let n=window.innerWidth,t=window.innerHeight;n<t?t=round(1.385*n):n=round(t/1.385),sz=min(n,t),createCanvas(n,t),mrgn=.07*sz,noiseDetail(3,.5),noLoop(),noiseSeed(_.random_int(0,1e4)),noStroke(),cg=createGraphics(width,height);const e=createGraphics(width,height);e.noStroke();const r=_.random_choice(["light","light","light","light","light","dark","dark","dark","dark","chroma"]);background("dark"===r?40:[232,224,209]),e.fill("dark"===r?[232,224,209]:[25]);const o=_.random_int(0,1)>.25?"x":"y",s=_.random_int(3,37),a=_.random_num(0,2)*TAU*2,i=HALF_PI+_.random_num(0,1)*TAU,m=_.random_num(0,1),c=_.random_num(0,2)*TAU*2,h=HALF_PI+_.random_num(0,1)*TAU,d=_.random_num(0,1),u=_.random_num(.25,.75),g=_.random_num(.25,.75),l="x"===o?.85:.65,p=_.random_num(0,Math.PI),f=_.random_num(0,Math.PI),x=(n,t,e,r,o)=>{const s=t>.5||e>20?cosNorm(PI+n*PI+r):1;return.5+(cosNorm(n*e+o)-.5)*t*l*s},b=(n,t)=>bezPt(x(t,m,a,p,i),x(t,d,c,f,h),n),w=n=>.5+1*(n-.5),P=n=>bezPt(w(u),w(g),n),I=floor(_.random_num(0,4)),A=s>7&&_.random_num(0,1)>.25,k=s>7&&_.random_num(0,1)>.25,v=[];for(let n=0;n<s;n++){const t=nearest(P(n/s),0,1,200),u=nearest(P((n+1)/s),0,1,200);if(t===u)continue;const g=ceil(1/(u-t)*("x"===o?min(width,height)/max(width,height):max(width,height)/min(width,height)));for(let l=0;l<g;l++){const _=(n,e,r)=>n>.5||e>20?cosNorm(PI+t*PI+r):1;let x=1;(d>.5||c>20)&&(x=cosNorm(PI+t*PI+f));const w=A?cosNorm(t*a+i)*m*_(m,a,p)*.2:0,P=k?cosNorm(t*c+h)*d*_(d,c,f)*.2:0,F=l/g,z=4*floor(1/(u-t)),E=nearest(b(F,t),w,1-P,z),L=nearest(b((l+1)/g,t),w,1-P,z);if(t===u||E===L)continue;let S,H,N,M;"x"===o?(S=map(E,0,1,mrgn,width-mrgn),H=map(L,0,1,mrgn,width-mrgn),N=map(t,0,1,mrgn,height-mrgn),M=map(u,0,1,mrgn,height-mrgn)):(N=map(E,0,1,mrgn,height-mrgn),M=map(L,0,1,mrgn,height-mrgn),S=map(t,0,1,mrgn,width-mrgn),H=map(u,0,1,mrgn,width-mrgn));let T=[createVector(S-.35,N-.35),createVector(H+.35,N-.35),createVector(H+.35,M+.35),createVector(S-.35,M+.35)];A||k||(T=T.map(n=>{const e=g<14?.04:.009,r=(noise(3*t,0)*noise(3+10*t,0)-.5)*sz*e;return"x"===o?n.add(r,0):n.add(0,r)}));const V=[dtri,dar],B=abs(L-E),C=abs(u-t);min(B,C)/max(B,C)>.1&&V.push(darInv),s>20&&V.unshift(dtri,dar);const U=V[round(noise(.75*E,10*t)*(V.length-1))],D=()=>{const e=I+n+floor(2*F)+round(2*noise(10*t)),r=[0,1,2,3];return noise(2*E,2*t)>.5&&r.reverse(),r[e%4]};function y(){"chroma"===r&&e.fill(colors[(1+I+floor(noise(n/colors.length)*n)+floor(2*F))%colors.length])}const G=noise(0,2*t)>.75?()=>{y(),darInv(e,T,abs(D()))}:()=>{y(),U(e,T,abs(D()))};v.push(G)}}const F=/\bHeadlessChrome/.test(navigator.userAgent),z=1e3/v.length,E=()=>{dpt(e,mrgn),cg.image(e,0,0),clear(),background("dark"===r?40:[232,224,209]),image(cg,0,0),ppprt("dark"===r?16:10)};shuffle(v).forEach((n,t)=>{const o=()=>{n(),cg.image(e,0,0),clear(),background("dark"===r?40:[232,224,209]),image(cg,0,0),cg.clear()};F?o():((n,t)=>{setTimeout(()=>{t(),n===v.length-1&&setTimeout(()=>E(),30)},n*z)})(t,o)}),F&&E()}
class Random{constructor(hash){this.useA=!1;const sfc32=function(uint128Hex){let a=parseInt(uint128Hex.substr(0,8),16);let b=parseInt(uint128Hex.substr(8,8),16);let c=parseInt(uint128Hex.substr(16,8),16);let d=parseInt(uint128Hex.substr(24,8),16);return function(){a|=0;b|=0;c|=0;d|=0;let t=(((a+b)|0)+d)|0;d=(d+1)|0;a=b^(b>>>9);b=(c+(c<<3))|0;c=(c<<21)|(c>>>11);c=(c+t)|0;return(t>>>0)/4294967296}};this.prngA=new sfc32(hash.substr(2,32));this.prngB=new sfc32(hash.substr(34,32));for(let i=0;i<1e6;i+=2){this.prngA();this.prngB()}} random_dec(){this.useA=!this.useA;return this.useA?this.prngA():this.prngB()} random_num(a,b){return a+(b-a)*this.random_dec()} random_int(a,b){return Math.floor(this.random_num(a,b+1))} random_bool(p){return this.random_dec()<p} random_choice(list){return list[this.random_int(0,list.length-1)]}} let _=new Random(tokenData.hash);function dpt(mrgn){const nscl=20;const pxlSz=(width-mrgn*2)*0.0011;const mlt=12;const amt=43*mlt;for(let x=0;x<amt;x++){const pctx=x/amt;const posx=map(pctx,0,1,0,width);for(let y=0;y<amt;y++){const pcty=y/amt;const posy=map(pcty,0,1,0,height);cg.erase(noise(pctx*nscl,pcty*nscl)*noise(1+(pctx*nscl)/2,1+(pcty*nscl)/2)*200);cg.rect(posx,posy,pxlSz,pxlSz);cg.noErase();if(x%mlt===0&&y%mlt===0){cg.erase(noise(pctx*nscl,pcty*nscl)*30);cg.rect(posx,posy,pxlSz,pxlSz);cg.noErase()}}} cg.erase(40);for(let i=0;i<100;i++){cg.rect(_.random_int(0,width),_.random_int(0,height),1,1)} cg.noErase()} function ppprt(amt){loadPixels();for(let i=0;i<pixels.length;i+=4){let grn=_.random_int(-amt,amt);pixels[i]=pixels[i]+grn;pixels[i+1]=pixels[i+1]+grn;pixels[i+2]=pixels[i+2]+grn;pixels[i+3]=pixels[i+3]+grn} updatePixels()} const bezPt=(a1,a2,pct)=>{const a=(v)=>pow(v,2);const b=(v)=>1.7*pow(v,2);const bez1fn=(v)=>v*a(v)+(1-v)*b(v);const c=(v)=>-pow(v-1,2)+1;const d=(v)=>1.7*-pow(1-v,2)+1;const bez2fn=(v)=>v*d(v)+(1-v)*c(v);return bezierPoint(0,bez1fn(a1),bez2fn(a2),1,bezierPoint(0,bez1fn(a1),bez2fn(a2),1,bezierPoint(0,bez1fn(a1),bez2fn(a2),1,pct)))};const cosNorm=(v)=>(cos(v)+1)/2;function nearest(v,min,max,steps){var zerone=Math.round(((v-min)*steps)/(max-min))/steps;zerone=Math.min(Math.max(zerone,0),1);return zerone*(max-min)+min} function dtri(points,idx=0){cg.beginShape();for(let i=0;i<3;i++){let{x,y}=points[(i+idx)%4];cg.vertex(x,y)} cg.endShape(CLOSE)} function dar(rect,idx=0,strokeWeight=0){idx=(idx+1)%4;const diff=p5.Vector.sub(rect[0],rect[2]).mult(2).sub(-strokeWeight,-strokeWeight);const{x,y}=rect[idx];cg.arc(x,y,diff.x,diff.y,HALF_PI*idx,HALF_PI+HALF_PI*idx,PIE)} function darInv(points,idx,detail=50){idx=(idx+1)%4;cg.beginShape();const pt=points[idx%points.length];const ptn=points[(idx+1)%points.length];const ptp=points[(idx+3)%points.length];const pto=points[(idx+2)%points.length];const diff=p5.Vector.sub(pt,pto);cg.vertex(ptp.x,ptp.y);cg.vertex(pt.x,pt.y);cg.vertex(ptn.x,ptn.y);for(let i=0;i<detail;i++){const pct=i/(detail-1);const a=pct*HALF_PI;let posx=cos(a)*diff.x+pto.x;let posy=sin(a)*diff.y+pto.y;if(idx%2===0){posx=sin(a)*diff.x+pto.x;posy=cos(a)*diff.y+pto.y} cg.vertex(posx,posy)} cg.endShape(CLOSE)} function setup(){let w=window.innerWidth;let h=window.innerHeight;w<h?(h=round(1.385*w)):(w=round(h/1.385));sz=min(w,h);createCanvas(w,h);cg=createGraphics(width,height);mrgn=sz*0.07;noiseDetail(3,0.5);noLoop()} function draw(){noiseSeed(_.random_int(0,1e4));noStroke();cg.noStroke();const bw=_.random_num(0,1)>0.7;blendMode(bw?SCREEN:MULTIPLY);background(bw?40:[232,224,209]);cg.fill(bw?[232,224,209]:[25]);const minClipRagSize=14;const axis=_.random_int(0,1)>0.25?'x':'y';const amty=_.random_int(3,37);const freq1=_.random_num(0,2)*TAU*2;const off1=HALF_PI+_.random_num(0,1)*TAU;const amp1=_.random_num(0,1);const freq2=_.random_num(0,2)*TAU*2;const off2=HALF_PI+_.random_num(0,1)*TAU;const amp2=_.random_num(0,1);const ampy1=_.random_num(0.25,0.75);const ampy2=_.random_num(0.25,0.75);const fxnd=axis==='x'?0.85:0.65;const slaff1=_.random_num(0,Math.PI);const slaoff2=_.random_num(0,Math.PI);const fnxp=(v,amp,freq,slampoff,off)=>{const dec=amp>0.5||freq>20?cosNorm(PI+v*PI+slampoff):1;return 0.5+(cosNorm(v*freq+off)-0.5)*amp*fxnd*dec};const fnx=(pct,v)=>bezPt(fnxp(v,amp1,freq1,slaff1,off1),fnxp(v,amp2,freq2,slaoff2,off2),pct);const fnyp=(v)=>0.5+(v-0.5)*1;const fny=(pct)=>bezPt(fnyp(ampy1),fnyp(ampy2),pct);const idxOff=floor(_.random_num(0,4));const unlockMrgn={s:amty>7&&_.random_num(0,1)>0.25,e:amty>7&&_.random_num(0,1)>0.25,};for(let y=0;y<amty;y++){const pcty=nearest(fny(y/amty),0,1,200);const pctyn=nearest(fny((y+1)/amty),0,1,200);if(pcty===pctyn)continue;const amtx=ceil((1/(pctyn-pcty))*(axis==='x'?min(width,height)/max(width,height):max(width,height)/min(width,height)));for(let x=0;x<amtx;x++){const getDec=(amp,freq,slampoff)=>amp>0.5||freq>20?cosNorm(PI+pcty*PI+slampoff):1;let dec2=1;if(amp2>0.5||freq2>20){dec2=cosNorm(PI+pcty*PI+slaoff2)} const mrgns=!unlockMrgn.s?0:cosNorm(pcty*freq1+off1)*amp1*getDec(amp1,freq1,slaff1)*0.2;const mrgne=!unlockMrgn.e?0:cosNorm(pcty*freq2+off2)*amp2*getDec(amp2,freq2,slaoff2)*0.2;const ogpctx=x/amtx;const nrst=floor(1/(pctyn-pcty))*4;const pctx=nearest(fnx(ogpctx,pcty),mrgns,1-mrgne,nrst);const pctxn=nearest(fnx((x+1)/amtx,pcty),mrgns,1-mrgne,nrst);if(pcty===pctyn||pctx===pctxn)continue;let posx,posxn,posy,posyn;if(axis==='x'){posx=map(pctx,0,1,mrgn,width-mrgn);posxn=map(pctxn,0,1,mrgn,width-mrgn);posy=map(pcty,0,1,mrgn,height-mrgn);posyn=map(pctyn,0,1,mrgn,height-mrgn)}else{posy=map(pctx,0,1,mrgn,height-mrgn);posyn=map(pctxn,0,1,mrgn,height-mrgn);posx=map(pcty,0,1,mrgn,width-mrgn);posxn=map(pctyn,0,1,mrgn,width-mrgn)} let points=[createVector(posx-0.35,posy-0.35),createVector(posxn+0.35,posy-0.35),createVector(posxn+0.35,posyn+0.35),createVector(posx-0.35,posyn+0.35),];if(!unlockMrgn.s&&!unlockMrgn.e){points=points.map((pt)=>{const mlt=amtx<minClipRagSize?0.04:0.009;const nx=(noise(pcty*3,0)*noise(3+pcty*10,0)-0.5)*sz*mlt;return axis==='x'?pt.add(nx,0):pt.add(0,nx)})} const fns=[dtri,dar];const dfx=abs(pctxn-pctx);const dfy=abs(pctyn-pcty);const ar=min(dfx,dfy)/max(dfx,dfy);if(ar>0.1)fns.push(darInv);if(amty>20)fns.unshift(dtri,dar);const shFn=fns[round(noise(pctx*0.75,pcty*10)*(fns.length-1))];const gidx=()=>{const i=idxOff+y+floor(ogpctx*2)+round(noise(pcty*10)*2);const idxs=[0,1,2,3];if(noise(pctx*2,pcty*2)>0.5)idxs.reverse();return idxs[i%4]};noise(0,pcty*2)>0.75?darInv(points,abs(gidx())):shFn(points,abs(gidx()))}} dpt(mrgn);ppprt(bw?19:11);image(cg,0,0)}
Staccato practices capturing space with elemental geometry. Positive and negative ground dissolve as the eye reads the rows and columns as if distinguishing sheet music. Rhythm emerges from the space between the shapes that tie them together. The emergent forms of Staccato result from the perception of the collection of shapes as a whole. High contrast monochrome rendering maximize this psychological effect as the eye groups similar shapes and patterns into subdivisions. The process of Staccato stems from letterpress printmaking experiments with decorative typographic material. The process involves filling the letterpress with decorative borders and shapes, inking by hand, pulling a print, inspecting the result, making a small adjustment and repeating.
class Random{constructor(hash){this.useA=!1;const sfc32=function(uint128Hex){let a=parseInt(uint128Hex.substr(0,8),16);let b=parseInt(uint128Hex.substr(8,8),16);let c=parseInt(uint128Hex.substr(16,8),16);let d=parseInt(uint128Hex.substr(24,8),16);return function(){a|=0;b|=0;c|=0;d|=0;let t=(((a+b)|0)+d)|0;d=(d+1)|0;a=b^(b>>>9);b=(c+(c<<3))|0;c=(c<<21)|(c>>>11);c=(c+t)|0;return(t>>>0)/4294967296}};this.prngA=new sfc32(hash.substr(2,32));this.prngB=new sfc32(hash.substr(34,32));for(let i=0;i<1e6;i+=2){this.prngA();this.prngB()}} random_dec(){this.useA=!this.useA;return this.useA?this.prngA():this.prngB()} random_num(a,b){return a+(b-a)*this.random_dec()} random_int(a,b){return Math.floor(this.random_num(a,b+1))} random_bool(p){return this.random_dec()<p} random_choice(list){return list[this.random_int(0,list.length-1)]}} let _=new Random(tokenData.hash);function dpt(mrgn){const nscl=20;const pxlSz=(width-mrgn*2)*0.0011;const mlt=12;const amt=43*mlt;for(let x=0;x<amt;x++){const pctx=x/amt;const posx=map(pctx,0,1,0,width);for(let y=0;y<amt;y++){const pcty=y/amt;const posy=map(pcty,0,1,0,height);cg.erase(noise(pctx*nscl,pcty*nscl)*noise(1+(pctx*nscl)/2,1+(pcty*nscl)/2)*200);cg.rect(posx,posy,pxlSz,pxlSz);cg.noErase();if(x%mlt===0&&y%mlt===0){cg.erase(noise(pctx*nscl,pcty*nscl)*30);cg.rect(posx,posy,pxlSz,pxlSz);cg.noErase()}}} cg.erase(40);for(let i=0;i<100;i++){cg.rect(_.random_int(0,width),_.random_int(0,height),1,1)} cg.noErase()} function ppprt(amt){loadPixels();for(let i=0;i<pixels.length;i+=4){let grn=_.random_int(-amt,amt);pixels[i]=pixels[i]+grn;pixels[i+1]=pixels[i+1]+grn;pixels[i+2]=pixels[i+2]+grn;pixels[i+3]=pixels[i+3]+grn} updatePixels()} const bezPt=(a1,a2,pct)=>{const a=(v)=>pow(v,2);const b=(v)=>1.7*pow(v,2);const bez1fn=(v)=>v*a(v)+(1-v)*b(v);const c=(v)=>-pow(v-1,2)+1;const d=(v)=>1.7*-pow(1-v,2)+1;const bez2fn=(v)=>v*d(v)+(1-v)*c(v);return bezierPoint(0,bez1fn(a1),bez2fn(a2),1,bezierPoint(0,bez1fn(a1),bez2fn(a2),1,bezierPoint(0,bez1fn(a1),bez2fn(a2),1,pct)))};const cosNorm=(v)=>(cos(v)+1)/2;function nearest(v,min,max,steps){var zerone=Math.round(((v-min)*steps)/(max-min))/steps;zerone=Math.min(Math.max(zerone,0),1);return zerone*(max-min)+min} function dtri(points,idx=0){cg.beginShape();for(let i=0;i<3;i++){let{x,y}=points[(i+idx)%4];cg.vertex(x,y)} cg.endShape(CLOSE)} function dar(rect,idx=0,strokeWeight=0){idx=(idx+1)%4;const diff=p5.Vector.sub(rect[0],rect[2]).mult(2).sub(-strokeWeight,-strokeWeight);const{x,y}=rect[idx];cg.arc(x,y,diff.x,diff.y,HALF_PI*idx,HALF_PI+HALF_PI*idx,PIE)} function darInv(points,idx,detail=50){idx=(idx+1)%4;cg.beginShape();const pt=points[idx%points.length];const ptn=points[(idx+1)%points.length];const ptp=points[(idx+3)%points.length];const pto=points[(idx+2)%points.length];const diff=p5.Vector.sub(pt,pto);cg.vertex(ptp.x,ptp.y);cg.vertex(pt.x,pt.y);cg.vertex(ptn.x,ptn.y);for(let i=0;i<detail;i++){const pct=i/(detail-1);const a=pct*HALF_PI;let posx=cos(a)*diff.x+pto.x;let posy=sin(a)*diff.y+pto.y;if(idx%2===0){posx=sin(a)*diff.x+pto.x;posy=cos(a)*diff.y+pto.y} cg.vertex(posx,posy)} cg.endShape(CLOSE)} function setup(){let w=window.innerWidth;let h=window.innerHeight;w<h?(h=1.385*w):(w=h/1.385);sz=min(w,h);createCanvas(w,h);cg=createGraphics(width,height);mrgn=sz*0.07;noiseDetail(3,0.5);noLoop()} function draw(){noiseSeed(_.random_int(0,1e4));noStroke();cg.noStroke();const bw=_.random_num(0,1)>0.7;blendMode(bw?SCREEN:MULTIPLY);background(bw?40:[232,224,209]);cg.fill(bw?[232,224,209]:[25]);const minClipRagSize=14;const axis=_.random_int(0,1)>0.25?'x':'y';const amty=_.random_int(3,37);const freq1=_.random_num(0,2)*TAU*2;const off1=HALF_PI+_.random_num(0,1)*TAU;const amp1=_.random_num(0,1);const freq2=_.random_num(0,2)*TAU*2;const off2=HALF_PI+_.random_num(0,1)*TAU;const amp2=_.random_num(0,1);const ampy1=_.random_num(0.25,0.75);const ampy2=_.random_num(0.25,0.75);const fxnd=axis==='x'?0.85:0.65;const slaff1=_.random_num(0,Math.PI);const slaoff2=_.random_num(0,Math.PI);const fnxp=(v,amp,freq,slampoff,off)=>{const dec=amp>0.5||freq>20?cosNorm(PI+v*PI+slampoff):1;return 0.5+(cosNorm(v*freq+off)-0.5)*amp*fxnd*dec};const fnx=(pct,v)=>bezPt(fnxp(v,amp1,freq1,slaff1,off1),fnxp(v,amp2,freq2,slaoff2,off2),pct);const fnyp=(v)=>0.5+(v-0.5)*1;const fny=(pct)=>bezPt(fnyp(ampy1),fnyp(ampy2),pct);const idxOff=floor(_.random_num(0,4));const unlockMrgn={s:amty>7&&_.random_num(0,1)>0.25,e:amty>7&&_.random_num(0,1)>0.25,};for(let y=0;y<amty;y++){const pcty=nearest(fny(y/amty),0,1,200);const pctyn=nearest(fny((y+1)/amty),0,1,200);if(pcty===pctyn)continue;const amtx=ceil((1/(pctyn-pcty))*(axis==='x'?min(width,height)/max(width,height):max(width,height)/min(width,height)));for(let x=0;x<amtx;x++){const getDec=(amp,freq,slampoff)=>amp>0.5||freq>20?cosNorm(PI+pcty*PI+slampoff):1;let dec2=1;if(amp2>0.5||freq2>20){dec2=cosNorm(PI+pcty*PI+slaoff2)} const mrgns=!unlockMrgn.s?0:cosNorm(pcty*freq1+off1)*amp1*getDec(amp1,freq1,slaff1)*0.2;const mrgne=!unlockMrgn.e?0:cosNorm(pcty*freq2+off2)*amp2*getDec(amp2,freq2,slaoff2)*0.2;const ogpctx=x/amtx;const nrst=floor(1/(pctyn-pcty))*4;const pctx=nearest(fnx(ogpctx,pcty),mrgns,1-mrgne,nrst);const pctxn=nearest(fnx((x+1)/amtx,pcty),mrgns,1-mrgne,nrst);if(pcty===pctyn||pctx===pctxn)continue;let posx,posxn,posy,posyn;if(axis==='x'){posx=map(pctx,0,1,mrgn,width-mrgn);posxn=map(pctxn,0,1,mrgn,width-mrgn);posy=map(pcty,0,1,mrgn,height-mrgn);posyn=map(pctyn,0,1,mrgn,height-mrgn)}else{posy=map(pctx,0,1,mrgn,height-mrgn);posyn=map(pctxn,0,1,mrgn,height-mrgn);posx=map(pcty,0,1,mrgn,width-mrgn);posxn=map(pctyn,0,1,mrgn,width-mrgn)} let points=[createVector(posx-0.35,posy-0.35),createVector(posxn+0.35,posy-0.35),createVector(posxn+0.35,posyn+0.35),createVector(posx-0.35,posyn+0.35),];if(!unlockMrgn.s&&!unlockMrgn.e){points=points.map((pt)=>{const mlt=amtx<minClipRagSize?0.04:0.009;const nx=(noise(pcty*3,0)*noise(3+pcty*10,0)-0.5)*sz*mlt;return axis==='x'?pt.add(nx,0):pt.add(0,nx)})} const fns=[dtri,dar];const dfx=abs(pctxn-pctx);const dfy=abs(pctyn-pcty);const ar=min(dfx,dfy)/max(dfx,dfy);if(ar>0.1)fns.push(darInv);if(amty>20)fns.unshift(dtri,dar);const shFn=fns[round(noise(pctx*0.75,pcty*10)*(fns.length-1))];const gidx=()=>{const i=idxOff+y+floor(ogpctx*2)+round(noise(pcty*10)*2);const idxs=[0,1,2,3];if(noise(pctx*2,pcty*2)>0.5)idxs.reverse();return idxs[i%4]};noise(0,pcty*2)>0.75?darInv(points,abs(gidx())):shFn(points,abs(gidx()))}} dpt(mrgn);ppprt(bw?19:11);image(cg,0,0)}