0xabc9…4196

All memos sent from and to 0xabc9…4196.

var DS=800;var D=Math.min(window.innerWidth,window.innerHeight);var M=D/DS;var sT;var s2T;var wT;var mT;var tT;var dT;var lT;var nT;var uv;var dA;var R;var Q;var gN;var lW;var lN;var ct=false;var dD=false;var ds;var wL;var wV;var t;var st;var m;var tW;var s=-D*0.01;var gw=true;var dC=200;var dp=[];var BGL=["#E8C7A2","#fcf6e8","#c7d7ea","#F5F2E8","#fdf9f0","#ebf6ff","#fbf8d0","#c7e3dc","#eaf1fa","#f3fafd","#fdf2f7","#e7e5ed","#fcfcc5","#E8D6BE","#eef0f1","#c18d68","#dcaa68","#5C7C95",];var FGL=["#862617","#e6653a","#9c64a7","#f4abac","#eab946","#c3e0e7","#62be9d","#176f58","#4b5cc4","#054f74","#e7767f","#afaaa3","#e3e276","#0785B4","#c1a1ca","#182941","#43090B","#382f41",];var bL=["#273A26","#78b2cb","#5c528e","#354335","#513d27","#87BADB","#8c673f","#2e402c","#214077","#436f97","#905529","#90829e","#6d6e2f","#5d5937","#d67748","#463421","#283b57","#21271F",];var lL=["#AB7B29","#fece87","#f3c627","#dd4134","#9a9a75","#f8e668","#acd40d","#edb152","#E8A2C4","#e8c07f","#efd752","#E8B2C4","#E89D67","#BE9BE8","#A0E6F7","#3a472d","#556b31","#79895f",];var BG;var FG;var bC;var lC;var am=false;var wM;var mM;var tM;var eM;var iM;var c;function setup(){createCanvas(D,D);sT=createGraphics(D*0.5,D*0.5);sT.colorMode(HSB,1,1,1);sT.strokeJoin(ROUND);sT.strokeCap(PROJECT);sT.noFill();s2T=createGraphics(D*0.5,D*0.5,WEBGL);s2T.noStroke();s2T.noFill();wT=createGraphics(D,D,WEBGL);wT.noStroke();wT.noFill();mT=createGraphics(D,D);mT.strokeWeight(D*0.03);mT.strokeJoin(MITER);mT.strokeCap(PROJECT);mT.rectMode(CENTER);mT.fill(255);tT=createGraphics(D,D);tT.noFill();tT.noStroke();tT.strokeJoin(ROUND);tT.strokeCap(ROUND);dT=createGraphics(D,D);dT.noStroke();lT=createGraphics(D,D);lT.noStroke();nT=createGraphics(D,D);nT.noStroke();dA=TWO_PI/8;R=(D*0.5)/cos(dA);uv=[3];uv[0]=createVector(D*0.5,D*0.5);uv[1]=createVector(0,D*0.5);uv[2]=createVector(0,0);Q=QUARTER_PI;colorMode(HSB,1,1,1);noStroke();noFill();init();}function draw(){blendMode(BLEND);let x,y=0;for(let i=-1;i<ds+1;i++){for(let j=-1;j<ds+1;j++){x=i*wL;y=j*wL;image(wT,x+((frameCount*wV.x)%wL),y+((frameCount*wV.y)%wL),wL,wL);}}blendMode(DARKEST);image(mT,0,0,D,D);if(gw){gw=t[0].gr(tT);if(tM==1){let g1=t[1].gr(tT);gw=gw||g1;}}blendMode(BLEND);image(tT,0,0,D,D);if(eM<2){dT.background(0);for(let i=0;i<dC;i++){dp[i].mv();dp[i].di(dT);}blendMode(SCREEN);image(dT,0,0,D,D);}if(iM){blendMode(OVERLAY);image(lT,0,0,D,D);}blendMode(ADD);image(nT,0,0,D,D);}function init(){c=floor(rs[7]*18);BG=BGL[c];FG=FGL[c];bC=bL[c];lC=lL[c];sT.background(BG);sT.stroke(FG);s2T.background(255);wT.background(255);mT.background(FG);tT.clear();nT.background(0);gN=floor(rs[5]*3)+4;lW=(D*0.5)/gN;lN=floor(rs[6]*(gN-3))+3;if(lN==3&&rs[15]<0.67){dD=true;}if(lN<=4&&rs[16]<0.67){ct=true;}if(rs[17]<0.25&&!ct&&!dD){am=true;}if(!dD&&lN<=4){ds=rdI(3,5);}else{ds=rdI(2,3);}wL=D/ds;wM=floor(rs[8]*8);wV=createVector(cos(wM*dA),sin(wM*dA));wV.mult(D*0.0004);if(rs[9]<0.8){mM=floor(rs[10]*4);}if(rs[9]>=0.8&&rs[9]<0.95){mM=4;}if(rs[9]>=0.95){mM=5;}if(rs[11]<0.7){tM=0;m=DS*rd(0.05,0.088);s=-D*0.01;tW=rd(0.42,2.0)*D*0.001;let ji=rs[10]*rd(-0.35,0.35);let sx=(ji+0.5)*D;let wi=ji*s*rd(0.4,1.2);st=createVector(sx,D);t=[1];t[0]=new T(st,rd(0.48,0.8),rd(0.35,0.5),wi);t[0].bc[0]=new B(st,D*0.045,ji*0.4,1,t[0]);}if(rs[11]>=0.7&&rs[11]<0.9){tM=1;m=DS*rd(0.055,0.075);s=-D*0.01;tW=rd(0.42,2.0)*D*0.001;let sn=rs[10]>0.5?1:-1;let ji=sn*rd(0.15,0.35);let sx=(ji+0.5)*D;st=createVector(sx,D);t=[2];t[0]=new T(st,rd(0.48,0.8),rd(0.32,0.5),0);t[0].bc[0]=new B(st,D*0.045,ji*0.25,1,t[0]);ji=-sn*rd(0.15,0.35);sx=(ji+0.5)*D;st=createVector(sx,D);t[1]=new T(st,rd(0.48,0.65),rd(0.42,0.6),0);t[1].bc[0]=new B(st,D*0.04,ji*0.25,1,t[1]);}if(rs[11]>=0.9){tM=2;m=DS*rd(0.06,0.075);s=D*0.01;tW=rd(0.4,1.8)*D*0.0015;let ji=(rs[10]>0.5?1:-1)*rd(0.51,0.58);let sx=(ji+0.5)*D;let wi=-ji*s*rd(1.3,1.5);st=createVector(sx,D*0.08);t=[1];t[0]=new T(st,rd(0.5,0.7),rd(0.5,0.7),wi);t[0].bc[0]=new B(st,D*0.05,-ji*0.9,1,t[0]);}if(rs[12]<0.2){eM=0;}if(rs[12]>=0.2&&rs[12]<0.28){eM=1;}if(rs[12]>=0.28&&rs[12]<0.4){eM=2;}if(rs[12]>=0.4){eM=3;}if(eM<2){for(let i=0;i<dC;i++){dp[i]=new P(i,eM);}}if(c<15){iM=0;}else{iM=1;lT.clear();let gd=lT.drawingContext.createRadialGradient(D*0.5,D*0.5,D*0.2,D*0.5,D*0.5,D);gd.addColorStop(0,BG);gd.addColorStop(0.3,FG);gd.addColorStop(1,color(0));lT.drawingContext.fillStyle=gd;lT.noStroke();lT.drawingContext.fillRect(0,0,D,D);}dS();cp();cM();pP(0,0,DS,DS,nT);}function pP(x,y,w,h,g){for(let i=0;i<(w*h)/10;i++){g.fill(255,5);let dx=rd(0,D);let dy=rd(0,D);let w=rd(D*0.001,D*0.005);let h=rd(D*0.001,D*0.005);g.ellipse(dx+x,dy+y,w,h);}}function dS(){let ids=[];let wt;for(let i=0;i<lN;i++){let id=rdI(1,gN-1);while(ids.indexOf(id)>=0){id=rdI(1,gN-1);}append(ids,id);wt=lW*(1/pow(1.5,rdI(0,2)))*0.4;let pt=createVector((id+0.5)*lW,D*0.5);let dt=rdI(5,7);sT.strokeWeight(wt);sT.beginShape();sT.vertex(0,pt.y);sT.vertex(D*0.5,pt.y);sT.endShape();if(am){sT.beginShape();sT.vertex(0,0);sT.vertex(0,D*0.5);sT.endShape();}sT.beginShape();sT.vertex(pt.x,pt.y+lW);while(pt.y>pt.x&&pt.x>0&&pt.x<D*0.5){let a=dt*dA;let mv;if(dt%2==1){mv=createVector(lW*cos(dA)*2*cos(a),lW*cos(dA)*2*sin(a));}if(dt%2==0){mv=createVector(lW*cos(a)*2,lW*sin(a)*2);}sT.vertex(pt.x,pt.y);if(pt.x+mv.x*0.5<=0){pt.add(mv.mult(0.5));}else{pt.add(mv);}sT.vertex(pt.x,pt.y);if(dt%2==1){dt=(dt+rdI(-1,1)+8)%8;}else{dt=(dt+rdI(-1,2)+8)%8;}}if(pt.y>=D*0.5){sT.vertex(pt.x,pt.y+lW);}if(pt.x<=0){sT.vertex(pt.x-lW,pt.y);}sT.endShape();}if(ct){let cI=rdI(gN*0.5,gN-2);sT.fill(BG);let R=(D*0.5-(cI+0.5)*lW)*0.5;let se=rdI(0,3);switch(se){case 0:sT.arc(D*0.5-R,D*0.5,R*2,R*2,HALF_PI,TWO_PI);sT.noStroke();sT.rect(D*0.5-R,D*0.5-R+wt*0.5,R,R);sT.stroke(FG);break;case 1:sT.arc(D*0.5,D*0.5,R*4,R*4,PI,PI+HALF_PI);break;case 2:sT.rect(D*0.5-R,D*0.5-R,R*2,R*2);break;case 3:sT.triangle(D*0.5-2*R+wt*0.5,D*0.5+wt*0.5,D*0.5+wt*0.5,D*0.5-2*R+wt*0.5,D*0.5+wt*0.5,D*0.5+wt*0.5);break;}sT.noFill();}if(dD){s2T.image(sT,-D*0.25,-D*0.25);s2T.rotateZ(HALF_PI);s2T.rotateY(PI);s2T.blendMode(DARKEST);s2T.image(sT,-D*0.25,-D*0.25);s2T.blendMode(BLEND);}}function cp(){wT.beginShape(TRIANGLES);if(dD){wT.texture(s2T);}else{wT.texture(sT);}wT.textureMode(IMAGE);if(am){for(let i=0;i<8;i++){let a=dA*i;if(i%4==0){wT.vertex(0,0,uv[0].x,uv[0].y);wT.vertex(D*0.5*cos(a),D*0.5*sin(a),uv[1].x,uv[1].y);wT.vertex(R*cos(dA+a),R*sin(dA+a),uv[2].x,uv[2].y);}if(i%4==1){wT.vertex(0,0,uv[0].x,uv[0].y);wT.vertex(R*cos(a),R*sin(a),uv[2].x,uv[2].y);wT.vertex(D*0.5*cos(dA+a),D*0.5*sin(dA+a),uv[1].x,uv[1].y);}if(i%4==2){wT.vertex(0,0,uv[2].x,uv[2].y);wT.vertex(D*0.5*cos(a),D*0.5*sin(a),uv[1].x,uv[1].y);wT.vertex(R*cos(dA+a),R*sin(dA+a),uv[0].x,uv[0].y);}if(i%4==3){wT.vertex(0,0,uv[2].x,uv[2].y);wT.vertex(R*cos(a),R*sin(a),uv[0].x,uv[0].y);wT.vertex(D*0.5*cos(dA+a),D*0.5*sin(dA+a),uv[1].x,uv[1].y);}}}else{for(let i=0;i<8;i++){let a=dA*i;if(i%2==0){wT.vertex(0,0,uv[0].x,uv[0].y);wT.vertex(D*0.5*cos(a),D*0.5*sin(a),uv[1].x,uv[1].y);wT.vertex(R*cos(dA+a),R*sin(dA+a),uv[2].x,uv[2].y);}if(i%2==1){wT.vertex(0,0,uv[0].x,uv[0].y);wT.vertex(R*cos(a),R*sin(a),uv[2].x,uv[2].y);wT.vertex(D*0.5*cos(dA+a),D*0.5*sin(dA+a),uv[1].x,uv[1].y);}}}wT.endShape();}function cM(){var mR=D*0.62;let sC=brightness(FG)*40;mT.stroke(sC);switch(mM){case 0:mT.ellipse(D*0.5,D*0.5,mR,mR);break;case 1:mT.rect(D*0.5,D*0.5,mR*0.8,mR*0.8);break;case 2:mT.rect(D*0.5,D*0.5,mR*max(0.38,rs[6]),mR);break;case 3:mT.beginShape();var sA=TWO_PI/16;for(let i=0;i<8;i++){var a=sA+i*sA*2;mT.vertex(mR*0.5*cos(a)+D*0.5,mR*0.5*sin(a)+D*0.5);}mT.endShape(CLOSE);break;case 4:var sR=mR*0.5;mT.noStroke();mT.rect(D*0.5,D*0.5,sR*1.05,sR*1.05);mT.stroke(sC);mT.arc(D*0.5+sR*0.5,D*0.5,sR,sR,-HALF_PI,HALF_PI);mT.arc(D*0.5,D*0.5+sR*0.5,sR,sR,0,PI);mT.arc(D*0.5-sR*0.5,D*0.5,sR,sR,-HALF_PI*3,-HALF_PI);mT.arc(D*0.5,D*0.5-sR*0.5,sR,sR,-PI,0);break;case 5:mT.arc(D*0.5,D*0.8,D*1.1,D*1.1,-Q*3,-Q);mT.fill(FG);mT.arc(D*0.5,D*0.8,D*0.38,D*0.38,-Q*3.01,-Q*0.99);mT.fill(255);mT.noFill();mT.line(cos(-Q*3)*D*1.1*0.5+D*0.5,sin(-Q*3)*D*1.1*0.5+D*0.8,cos(-Q*3)*D*0.38*0.5+D*0.5,sin(-Q*3)*D*0.38*0.5+D*0.8);mT.line(cos(-Q)*D*1.1*0.5+D*0.5,sin(-Q*3)*D*1.1*0.5+D*0.8,cos(-Q)*D*0.38*0.5+D*0.5,sin(-Q*3)*D*0.38*0.5+D*0.8);mT.fill(255);break;}}function T(st,f1,f2,wi){this.bc=[];this.st=st;this.f1=f1;this.f2=f2;this.wi=wi;this.brC=bC;}T.prototype.gr=function(g){var f=false;for(let i=0;i<this.bc.length;i++){var b=this.bc[i];if(b.al){f=true;b.age++;b.gr();b.di(g);}}return f;};function B(st,sw,a,gn,tr){this.p=st.copy();this.sw=sw;this.a=a;this.gn=gn;this.age=0;this.al=true;this.m=m*rd(0.3,0.6);this.f1=tr.f1;this.f2=tr.f2;this.dt=tr.dt;this.de=rd(0.33,0.66);this.tr=tr;this.s=createVector(tr.wi,s);}B.prototype.gr=function(){if(this.age==int(this.m/this.gn)||rd(0,1)<0.03||(tM==2&&this.gn<1.1)){this.al=false;if(this.sw>D*0.004){var brs=this.tr.bc;if(this.gn<1.23){var sn=rd(0,1)<0.5?1:-1;brs.push(new B(createVector(this.p.x,this.p.y),this.sw*rd(0.5,0.6),this.a+sn*rd(0.7,1.0)*this.de,this.gn+0.11,this.tr));if(rd(0,0.5)<this.f1/this.gn){brs.push(new B(createVector(this.p.x,this.p.y),this.sw*rd(0.4,0.6),this.a-sn*rd(0.7,1.0)*this.de,this.gn+0.11,this.tr));}if(rd(0,0.8)<this.f2/this.gn){brs.push(new B(createVector(this.p.x,this.p.y),this.sw*rd(0.4,0.55),this.a-sn*rd(0.6,1.0)*this.de,this.gn+0.15,this.tr));}}else{if(rd(0,1)<this.f1/this.gn){brs.push(new B(createVector(this.p.x,this.p.y),this.sw*rd(0.4,0.6),this.a+rd(0.7,1.0)*this.de,this.gn+0.11,this.tr));}if(rd(0,1)<this.f1/this.gn){brs.push(new B(createVector(this.p.x,this.p.y),this.sw*rd(0.4,0.6),this.a-rd(0.7,1.0)*this.de,this.gn+0.11,this.tr));}if(rd(0,1)<this.f2/this.gn){brs.push(new B(createVector(this.p.x,this.p.y),this.sw*rd(0.4,0.6),this.a+(rd(0,1)<0.5?1:-1)*rd(0.5,0.9)*this.de,this.gn+0.15,this.tr));}}}}else{this.s.x+=rd(-tW,tW);}};B.prototype.di=function(g){var x0=this.p.x;var y0=this.p.y;this.p.x+=this.s.x*cos(this.a)+this.s.y*sin(this.a);this.p.y+=-this.s.x*sin(this.a)+this.s.y*cos(this.a);let sw=map(this.age,0,this.m,this.sw,this.sw*0.5);let dt=createVector(this.p.x-x0,this.p.y-y0);let a=dt.heading();if(eM==1||eM==2){if(tM<2){if(((a>=-PI&&a<=-2.5*Q)||(a>=-1.5*Q&&a<=0))&&this.al){if(c<15){g.stroke(255);}else{g.stroke(200);}g.strokeWeight(min(this.sw,sw*rd(1.0,1.2)));g.line(x0,y0-sw,this.p.x,this.p.y-sw);}}else{dt.mult(-1);a=dt.heading();if(((a>=-PI&&a<=-3.2*Q)||(a>=-0.8*Q&&a<=0))&&this.gn>1.1&&this.al){if(c<15){g.stroke(255);}else{g.stroke(200);}g.strokeWeight(min(this.sw,sw*rd(1.0,1.2)));g.line(x0,y0-sw*1.1,this.p.x,this.p.y-sw*1.1);}a=a+PI;}}g.strokeWeight(sw);if(this.al||rd(0,1)>0.5){g.noFill();g.stroke(this.tr.brC);g.line(x0,y0,this.p.x,this.p.y);}if(this.gn>1.28&&rd(0,1)<this.gn*0.08){let fA=a+rd(-0.7,0.7);let fB=p5.Vector.fromAngle(fA,D*0.018);let fP=createVector(x0+fB.x,y0+fB.y);g.noFill();g.stroke(this.tr.brC);g.strokeWeight(min(D*0.004,sw));g.line(x0,y0,fP.x,fP.y);g.fill(lC);g.noStroke();dF(fP.x,fP.y,fA,g);}};function dF(x,y,a,g){g.push();g.translate(x,y);let r=rd(0.013,0.02);g.rotate(a+HALF_PI);switch(rdI(0,2)){case 0:pl(0.6,0.35,0.35,0.5,0.08,D*r,g);break;case 1:pl(0.45,0.5,0.3,0.4,0.08,D*r,g);g.rotate(0.6);pl(0.45,0.5,0.3,0.4,0.08,D*r,g);g.rotate(-1.2);pl(0.45,0.5,0.3,0.4,0.08,D*r,g);break;case 2:let n=5;let dA=float(TWO_PI/n);g.rotate(rd(0,PI));for(let i=0;i<n;i++){g.rotate(dA);pl(0.45,0.5,0.3,0.4,0.08,D*r,g);}break;}g.pop();}function pl(w,h,a,b,r,s,g){let p0=createVector(0.05,-0.01);p0.mult(s);let p1=createVector(w*0.5,-h);p1.mult(s);let p2=createVector(a*0.5+rd(-r,r),0.1-h-b+rd(-r,r));p2.mult(s);let p3=createVector(0,-0.9);p3.mult(s);let p4=createVector(-a*0.5+rd(-r,r),0.1-h-b+rd(-r,r));p4.mult(s);let p5=createVector(-w*0.5,-h);p5.mult(s);let p6=createVector(-0.05,-0.01);p6.mult(s);g.beginShape();g.curveVertex(p0.x,p0.y);g.curveVertex(p0.x,p0.y);g.curveVertex(p1.x,p1.y);g.curveVertex(p2.x,p2.y);g.curveVertex(p3.x,p3.y);g.curveVertex(p4.x,p4.y);g.curveVertex(p5.x,p5.y);g.curveVertex(p6.x,p6.y);g.curveVertex(p0.x,p0.y);g.curveVertex(p0.x,p0.y);g.endShape();}function P(id,m){this.id=id;this.m=m;if(m==0){this.cx=map(id,0,dC,D*0.001,D*0.0025);this.cy=map(id,0,dC,D*0.02,D*0.25);this.s=map(id,0,dC,D*0.02,D*0.04);if(c<15){this.c=color(map(id,0,dC,0.08,0.35));}else{this.c=color(map(id,0,dC,0.03,0.2));}}else{this.cx=map(id,0,dC,D*0.002,D*0.008);this.cy=this.cx;this.s=map(id,0,dC,D*0.001,D*0.003);if(c<15){this.c=color(map(id,0,dC,0.3,0.8));}else{this.c=color(map(id,0,dC,0.2,0.5));}}this.x=rd(0,width);this.y=rd(0,height);}P.prototype.mv=function(){this.y+=this.s;if(this.y>height+this.cy*0.5){this.y=-this.cy*0.5;}if(this.m==1){if(this.x>width+this.cx*0.5){this.x=-this.cx*0.5;}if(this.x<-this.cx*0.5){this.x=width+this.cx*0.5;}this.x+=sin((frameCount*TWO_PI)/800+this.id)*this.s*0.2;}};P.prototype.di=function(g){g.noStroke();g.fill(this.c);g.drawingContext.shadowColor=this.c;g.drawingContext.shadowBlur=D*0.01;g.ellipse(this.x,this.y,this.cx,this.cy);};var H=tokenData.hash;var se=parseInt(H.slice(0,16),16);function rdd(){se^=se<<13;se^=se>>17;se^=se<<5;return((se<0?~se+1:se)%1000)/1000;}function rd(a,b){return a+(b-a)*rdd();}function rdI(a,b){return Math.floor(this.rd(a,b+1));}var p=[];for(let i=0;i<64;i+=2){p.push(H.slice(i+2,i+4))}var rs=p.map(x=>{return parseInt(x,16)/256.0;});
Inspired by traditional Chinese architecture and Chinese painting, this project uses algorithms to generate window lattices with different patterns and blossoms and trees with different postures. Together with the possible rain and snow scenes, they constitute a corner with oriental aesthetic charm. These scenes are dynamic, such as slowly moving window frames, tree-growing, raining. We can imagine being indoors, watching the shaky tree shadow outside the window, or looking into the window from the same perspective as the current picture. Maybe we are looking into memories, maybe we are looking into hopes, anyone can write their own poems.