0xc21c0dda…8173sent to0x99a9b7c1…b069·#19,100,797·0x85f90ba8…426ef8
TIS=R.RI(45,70),txtImg=TXT,NW>3){TIY=R.RI(6,12),TIS=R.RI(40,65),txtImg="";let t=0;for(i=0;i<WA.length;i++)txtImg=txtImg+WA[i]+" ",0==(t=(t+1)%3)&&(txtImg+="\n");NW>6&&(TIY=R.RI(1,8),TIS=R.RI(25,55))}HSH&&(BR=4,BC&&(bitName="0xHash"))}else BR=4,_<.78?("moving"==(txtImg=ani)&&(txtImg="'still\nmoving'",TIY=-20),bitName="animation",TIS=33,MR=0):_<.79?(TIS=R.RI(33,35),MX=1,bitName=txtImg="THE MATRIX",CRV=0,HSH=1,TXT=hash,WD=0,TLS=1,OTL=0,dir="rain",ani="↓",TPL=[[0,255,0]],MPL="Hacker",BGC=[0,0,0],BGN="Black"):(bitName="moving poetry",_<.8?(txtImg=R.RC(T427),TIS=27):(BR=3,_<.84?(txtImg=R.RC(T321),TIS=21):_<.89?(txtImg=R.RC(T329),TIY=-3,TIS=29):_<.93?(txtImg=R.RC(T333),TIS=33):(BR=3,TIS=56,TIY=2,bitName=txtImg=R.RC(T360))))}R.RB(1)&&(WD=0),R.RB(22)&&(TLS=1,OTL=0),MFN=R.RC(FN),(_=R.RD())<.05?(FS=R.RI(10,12),ST=125):_<.12?(FS=R.RI(13,16),ST=125):_<.24?FS=R.RI(17,21):_<.36?FS=R.RI(22,26):_<.46?FS=R.RI(27,30):_<.54?FS=30:_<.6?FS=R.RI(30,35):_<.67?FS=R.RI(35,40):_<.74?FS=R.RI(40,45):_<.81?FS=R.RI(45,50):(ST=100,_<.87?FS=R.RI(50,55):_<.93?FS=R.RI(55,60):_<.96?FS=R.RI(60,65):(ST=90,FS=_<.98?R.RI(65,70):R.RI(70,75))),SP=(_=R.RD())<.25?R.RI(2,8):_<.45?R.RI(8,10):_<.75?R.RI(10,13):_<.8?R.RI(13,15):_<.92?16:_<.97?18:_<.99?20:22,"still"==ani&&(SP=0),FR=-.0025*SP+.945,anidar=dir+" "+ani,display=WD?"words":"characters"}function setup(){if(createCanvas(1.5*D,D),frameRate(20),background(BGC),BC){let _=pixelDensity();pixelDensity(1),(BL=createGraphics(36*BR,24*BR)).background(255),BL.textFont("TIMES"),BL.textSize(TIS),BL.fill(0),BL.textAlign(CENTER),"poetic image"==bitName?BL.text(txtImg,18*BR,TIY*BR):(BL.textAlign(CENTER,CENTER),BL.text(txtImg,1.2*BR,TIY,36*BR,24*BR)),BL.loadPixels();for(let $=0;$<24*BR;$++){for(let t=0;t<36*BR;t++){let e=(t+36*$*BR)*4;BL.pixels[e]<130&&bitImage.push(.25*e)}pixelDensity(_)}}for(i=0;i<ST;i++)WD?(ANI.push(new TEXTS(-100*M,-100*M,WA[TV],R.RC(TPL))),TV=(TV+1)%WA.length):(ANI.push(new TEXTS(-100*M,-100*M,ML,R.RC(TPL))),TV=(TV+1)%TXT.length," "==TXT.charAt(TV)&&(TV=(TV+1)%TXT.length),ML=TXT.charAt(TV));previewImage()}function draw(){if(fullscreen()?noCursor():cursor(ARROW),PA||(TLS?(fill(BGC[0],BGC[1],BGC[2],8),rect(0,0,1.5*D,D)):(clear(),background(BGC))),textFont(MFN),textStyle(FST),textSize(D*FS*.0025),START||TMR>-95||!WC){VO||vidOn(),BC&&textSize(D*max(833333e-9*FS,.022));for(let _=0;_<BA.length;_++)SHDW&&(fill(BA[_].black[0],BA[_].black[1],BA[_].black[2]),text(BA[_].txt,BA[_].posX+4*M,BA[_].posY+4*M)),fill(BA[_].CLR),OTL&&(noFill(),strokeWeight(2*M),stroke(BA[_].CLR)),textAlign(CENTER,CENTER),push(),TLS?translate(R.RN(0,8),R.RI(0,8)):translate(R.RN(0,1.25),R.RN(0,1.25)),text(BA[_].txt,BA[_].posX,BA[_].posY),pop(),START||BA[_].update();TMR>0&&WC&&(v.loadPixels(),PF.copy(v,0,0,v.width,v.height,0,0,v.width,v.height)),--TMR<1&&(START=!1,"moving"==ani&&(BA=[]))}if(TMR<1){if(WC&&(v.loadPixels(),PF.loadPixels(),FullMo=0,!PA))for(let $=0;$<v.height;$++)for(let t=0;t<v.width;t++){let e=(t+$*v.width)*4,s=PF.pixels[e+0],o=PF.pixels[e+1],n=PF.pixels[e+2],a=v.pixels[e+0],l=v.pixels[e+1],h;dist(a,l,v.pixels[e+2],s,o,n)>thrsh&&(FullMo++,CM&&TI(t,$))}WC||LG||/\bHeadlessChrome/.test(navigator.userAgent)||(strokeWeight(4*M),stroke([90,90,110]),fill(TPL[0]),textAlign(CENTER,TOP),textSize(.06*D),textFont("Times"),textStyle("normal"),text("open in LIVE VIEW in a new frame\nfor movable type.\n\nIf camera is unavailable, click in this window,\nthen use the first two keyboard rows (1-0 and q-p)\nto interact with your text.",.1*D,.23*D,1.3*D,D),textStyle(FST),textFont(MFN)),keyIsDown("80")&&P(0,11),keyIsDown("79")&&P(1,11),keyIsDown("73")&&P(2,11),keyIsDown("85")&&P(3,11),keyIsDown("89")&&P(4,11),keyIsDown("84")&&P(5,11),keyIsDown("82")&&P(6,11),keyIsDown("69")&&P(7,11),keyIsDown("87")&&P(8,11),keyIsDown("81")&&P(9,11),keyIsDown("48")&&P(0,0),keyIsDown("57")&&P(1,0),keyIsDown("56")&&P(2,0),keyIsDown("55")&&P(3,0),keyIsDown("54")&&P(4,0),keyIsDown("53")&&P(5,0),keyIsDown("52")&&P(6,0),keyIsDown("51")&&P(7,0),keyIsDown("50")&&P(8,0),keyIsDown("49")&&P(9,0),textSize(D*FS*.0025),textAlign(CENTER,CENTER);for(let r=0;r<ANI.length;r++){let T=(r+1+SN)%ANI.length;!(FullMo>0)&&WC&&CM||PA||ANI[T].update(),SHDW&&(fill(ANI[T].black[0],ANI[T].black[1],ANI[T].black[2]),text(ANI[T].txt,ANI[T].posX+4*M,ANI[T].posY+4*M)),fill(ANI[T].CLR),noStroke(),OTL&&(noFill(),strokeWeight(2*M),stroke(ANI[T].CLR)),text(ANI[T].txt,ANI[T].posX,ANI[T].posY)}PF.copy(v,0,0,v.width,v.height,0,0,v.width,v.height)}if(START&&VO){v.loadPixels(),PF.copy(v,0,0,v.width,v.height,0,0,v.width,v.height);for(let d=0;d<ANI.length;d++)ANI[d].posX=-1e3,ANI[d].posY=-1e3}OL&&overlay(),CS>0&&(CS--,textStyle("normal"),fill(TPL[0]),textAlign(LEFT,TOP),stroke([90,90,110]),textSize(.04*D),textFont("Times"),textStyle("normal"),text("camera sensitivity: "+abs(165-thrsh)+"\n(higher numbers = more text)",20*M,20*M),textStyle(FST),textFont(MFN))}GR();class TEXTS{constructor(_,$,t,e){this.accel=0,SHDW&&(this.black=[0,0,0]),CRV&&(this.accel=M),this.posX=_,this.posY=$,this.txt=t,this.CLR=e;let s=R.RD();("open to the sky"==dir||"spreading stories"==dir||"twisting"==dir||"spirals"==dir)&&(s<.5?this.dir="widdershins":this.dir="clockwise"),("spirals"==dir||"the stretch"==dir)&&((s=R.RD())<.5?this.dirY="up":this.dirY="down")}update(){this.posX>-300*M&&this.posX<WT+300*M&&this.posY<HT+300*M&&this.posY>-300*M&&this.CLR!=BGC&&"stand"!=dir&&(this.CLR[0]=round(this.CLR[0]*FR+BGC[0]*(1-FR)),this.CLR[1]=round(this.CLR[1]*FR+BGC[1]*(1-FR)),this.CLR[2]=round(this.CLR[2]*FR+BGC[2]*(1-FR)),SHDW&&(this.black[0]=round(this.black[0]*FR+BGC[0]*(1-FR)),this.black[1]=round(this.black[1]*FR+BGC[1]*(1-FR)),this.black[2]=round(this.black[2]*FR+BGC[2]*(1-FR))),("open to the sky"==dir||"spreading stories"==dir||"twisting"==dir||"spirals"==dir)&&("clockwise"==this.dir?this.posX+=M*SP:this.posX-=M*SP),("open to the sky"==dir||"float"==dir||"up"==this.dirY)&&(this.posY-=M*SP,CRV&&(this.posX-=this.accel,this.accel=this.accel+.045*SP)),("spreading stories"==dir||"rain"==dir||"down"==this.dirY)&&(CRV&&(this.posX+=this.accel,this.accel=this.accel+.045*SP),this.posY+=M*SP),"widdershins"==dir&&(this.posX-=M*SP),"clockwise"==dir&&(this.posX+=M*SP))}}function keyPressed(){if("f"==key){let _=fullscreen();fullscreen(!_)}if("d"==key&&saveCanvas("STILL-MOVING","png"),keyCode===UP_ARROW?((thrsh-=5)<15&&(thrsh=15),CS=25,clear(),background(BGC)):keyCode===DOWN_ARROW&&((thrsh+=5)>165&&(thrsh=165),clear(),background(BGC),CS=25)," "==key&&pp(),"s"==key){let $=PO;for(x=0;x<$.length;x+=5)splice($," ",x);$.unshift("STILL MOVING"),saveStrings($,"STILL-MOVING.txt")}"v"==key&&(OL=!OL,LG=1),"c"==key&&(CM=!CM)}function pp(){PA=PA?0:1}function windowResized(){/\bHeadlessChrome/.test(navigator.userAgent)||WR()}function WR(){SZ(),BA=[],resizeCanvas(1.5*D,D),START&&previewImage()}function previewImage(){START=1,BA=[],clear(),background(BGC);let _=0;for(let $=0;$<bitImage.length;$++){let t=bitImage[$]%(36*BR),e=(bitImage[$]-t)/(36*BR),s=(t+.5)*IS/BR,o=(e+.5)*IS/BR;MR&&(s=1.5*D-s),UD&&(o=D-o);let n=[...R.RC(TPL)];if(1==TPL.length){let a=R.RN(.45,1);n[0]=round(n[0]*a+BGC[0]*(1-a)),n[1]=round(n[1]*a+BGC[1]*(1-a)),n[2]=round(n[2]*a+BGC[2]*(1-a))}BA.push(new TEXTS(s,o,TXT.charAt(_),n)),_=(_+1)%TXT.length," "==TXT.charAt(_)&&(_=(_+1)%TXT.length)}}function vidOn(){/\bHeadlessChrome/.test(navigator.userAgent)||((v=createCapture(VIDEO,function(_){WC=_.active})).size(VW,VH),VO=1,v.hide(),PF=createImage(v.width,v.height))}function SZ(){M=(D=Math.min((WT=window.innerWidth)/1.5,HT=window.innerHeight))/DS,IS=1.00125*D/VH}function overlay(){fill(255,255,255,80),rect(.02*D,.02*D,1.46*D,.96*D),strokeWeight(5*M),stroke([90,90,110]),textSize(.1*D),textAlign(LEFT,CENTER),textFont("Times"),textStyle("normal"),fill(TPL[0]);let _=TXT;HSH&&(_=_.split("").join(" ")),text(_,.05*D,0,1.4*D,D),textStyle(FST),textFont(MFN)}function TI(_,$){_=map(_,0,35,0,1.5*D),$=map($,0,23,0,D),SN=(SN+1)%ST,SHDW&&(ANI[SN].black=[0,0,0]),UMR?ANI[SN].posX=_:ANI[SN].posX=1.5*D-_,UD?ANI[SN].posY=D-$:ANI[SN].posY=$,ANI[SN].accel=M,ANI[SN].CLR=[...R.RC(TPL)]}function P(_,$){TI(map(_,0,9,0,35)+R.RN(-2.5,2.5),R.RN($,12+$)),LG=1}