memoscan
← all memos

Memo 0xbcbe188d…8980e4 on Ethereum

new Uint16Array(a("0,2,1,1,2,2,5,1,6,0,7,0,10,2,12,2,41,1,45,1,50,5,51,5,g6,0,g7,0,h2,4,h6,4,k5,3,k7,3,l0,5,l1,5,l2,4,l5,3,l6,4,l7,3,l8,d,l9,d,la,c,ld,e,le,c,lf,e,m8,k,ma,i,p9,l,pd,n,q8,k,q9,l,15e,j,15f,m,16a,i,16e,j,19d,n,19f,m,1a8,f,1a9,h,1aa,f,1ad,h,1ae,g,1af,g,1ag,b,1ah,a,1ai,b,1al,a,1am,9,1an,9,1bg,b,1bi,b,1eh,a,1el,a,1fg,8,1fh,8,1qm,9,1qn,9,1ri,7,1rm,7,1ul,6,1un,6,1vg,8,1vh,8,1vi,7,1vl,6,1vm,7,1vn,6")),u=$(-1,4,"112011021322233123132111"),f=$(-1,5,"112011210110211120110121102132212220132122202131222022243214231243124213241324123222113311221213131221123113311112202311112022311112220342223113342223311342223131322023113322023311320223113320223131322203311322203131");let y=(e,t=e=>e)=>{for(var $=[],a=0;a<e;)$.push(t(a++));return $};function g(e,t=1){return e=1664525*e+1013904223|0,(t-=1)>0?g(e,t):e}let x={_2D:{base:i,squish:l,dimensions:2,pD:u,lookup:m},_3D:{base:p,squish:r,dimensions:3,pD:f,lookup:d}};function S(e,t,$){var a=0;let _=t[$++],s={next:void 0};for(;a<e.dimensions;){let l="xyzw"[a];s[l+"sb"]=t[$+a],s["d"+l]=-t[$+a++]-_*e.squish}return s}function b(e){let t=[],$=e.dimensions,a=$*$;for(var _,s=0;s<e.pD.length;){let l=e.base[e.pD[s]],r,n;_=0;do n=S(e,l,_),r?r.next=n:t[s/a]=n,r=n,_+=$+1;while(_<l.length);n.next=S(e,e.pD,s+1),$>=3&&(n.next.next=S(e,e.pD,s+$+2)),4===$&&(n.next.next.next=S(e,e.pD,s+11)),s+=a}let o=[t,function e(t,$){var a;let _=t(),s=new Map;for(a=0;a<_.length;a+=2)s.set(_[a],$[_[a+1]]);return s}(e.lookup,t)];return e.base=void 0,e.lookup=void 0,o}let[z,W]=b(x._2D),[P,C]=b(x._3D),M=new Uint8Array(256),w=new Uint8Array(256),A=new Uint8Array(256),F=new Uint8Array(y(256,e=>e));var V=g(e,3);return((e,t)=>{for(var $=0;$<256&&!0!==t($++););})(256,e=>{e=255-e;var t=((V=g(V))+31)%(e+1);t+=t<0?e+1:0,M[e]=F[t],w[e]=14&M[e],A[e]=M[e]%24*3,F[t]=F[e]}),i=p=void 0,m=d=void 0,u=f=void 0,{noise2D(e,t){let $=w,a=M,s=h,r=(e+t)*n,o=e+r,i=t+r,p=Math.floor(o),c=Math.floor(i),m=(p+c)*l,d=e-(p+m),u=t-(c+m);for(var f,y=(()=>{let e=o-p,t=i-c,$=e+t;return W.get(e-t+1|$<<1|$+t<<2|$+e<<4)})(),g=0;void 0!==y;){let x=d+y.dx,S=u+y.dy,b=2-x*x-S*S;b>0&&(f=$[a[p+y.xsb&255]+(c+y.ysb)&255],b*=b,g+=b*b*(s[f++]*x+s[f]*S)),y=y.next}return g*_},noise3D(e,t,$){let a=A,_=M,l=c,n=(e+t+$)*o,i=e+n,p=t+n,h=$+n,m=Math.floor(i),d=Math.floor(p),u=Math.floor(h),f=(m+d+u)*r,y=e-(m+f),g=t-(d+f),x=$-(u+f);for(var S,b=(()=>{let e=i-m,t=p-d,$=h-u,a=e+t+$;return C.get(t-$+1|e-t+1<<1|e-$+1<<2|a<<3|a+$<<5|a+t<<7|a+e<<9)})(),z=0;void 0!==b;){let W=y+b.dx,P=g+b.dy,w=x+b.dz,F=2-W*W-P*P-w*w;F>0&&(S=a[(_[m+b.xsb&255]+(d+b.ysb)&255)+(u+b.zsb)&255],F*=F,z+=F*F*(l[S++]*W+l[S++]*P+l[S]*w)),b=b.next}return z*s}}}class SketchyShape{constructor(){this.wt=1,this.maxV=3,this.acc=.005,this.c=color(0,64),this.density=1,this.wobble=0,this.angle=0,this.lineLen=0,this.age=0,this.pathLen=0}update(){if(this.age++,this.age>2*this.pathLen)return"done";push(),translate(this.x,this.y),rotate(this.angle),0==this.lineLen&&void 0!=this.drawBg&&this.drawBg();let e=this.points[this.penTargetIndex],t=e.x-this.pen.x,$=e.y-this.pen.y,a=t*this.acc,_=$*this.acc;this.penV.x+=a,this.penV.y+=_;let s=_rotate({x:this.wobble,y:0,z:0},_random(TAU),0,0);this.penV.x+=s.x,this.penV.y+=s.y,this.penV.x*=.8,this.penV.y*=.8;let l=_mag(this.penV);l>this.maxV&&(this.penV=_setMag(this.penV,this.maxV)),this.lineLen+=l,this._pen.x=this.pen.x,this._pen.y=this.pen.y,this.pen.x+=this.penV.x,this.pen.y+=this.penV.y;if(sq(e.x-this.pen.x)+sq(e.y-this.pen.y)<9&&(this.penTargetIndex++,this.penTargetIndex>=this.points.length))return pop(),this.points=null,"done";noStroke(),fill(this.c);let r=round(this.density),n={x:0,y:0,z:0};for(let o=0;o<r;o++)n.x=sqrt(_random(1))*map(noise(.001*this.lineLen),0,1,.5,1)*this.wt/2,n.y=0,n=_rotate(n,_random(TAU),0,0),circle(this.pen.x+n.x,this.pen.y+n.y,1);pop()}setWeight(e){this.wt=e}setMaxV(e){this.maxV=e}setAcc(e){this.acc=e}setColor(e){this.c=e}setDensity(e){this.density=e}setWobble(e){this.wobble=e}setAngle(e){this.angle=e}}class SketchyEllipse extends SketchyShape{constructor(e,t,$,a,_,s){if(super(),this.x=e,this.y=t,this.w=$,this.h=a,this.points=[],s){let l=max(3,10*round($/_));for(let r=0;r<l;r++){let n=map(r,0,l-2,0,1.5*TAU),o=map(noise(.1*r),0,1,.5,1),i=o*$*cos(n),p=o*a*sin(n);this.points.push({x:i,y:p})}}else{let h=max(2,round($/_));for(let c=0;c<h;c++){let m=map(c,0,h-1,-$,$),d=a*sqrt(1-sq(m)/sq($));!(isNaN(m)||isNaN(d))&&(this.points.push({x:m,y:d}),this.points.push({x:m,y:-d}))}}this.pen=_createV(this.points[0].x,this.points[0].y),this._pen={x:this.pen.x,y:this.pen.y},this.penTargetIndex=1,this.penV=_createV(0,0);for(let u=0;u<this.points.length-1;u++){let f=this.points[u],y=this.points[u+1];this.pathLen+=dist(f.x,f.y,y.x,y.y)}}}class SketchyQuad extends SketchyShape{constructor(e,t,$,a,_,s,l,r,n){super(),this.x=(e+$+_+l)/4,this.y=(t+a+s+r)/4,this.x1=e-this.x,this.y1=t-this.y,this.x2=$-this.x,this.y2=a-this.y,this.x3=_-this.x,this.y3=s-this.y,this.x4=l-this.x,this.y4=r-this.y;let o=dist(this.x1,this.y1,this.x2,this.y2),i=dist(this.x3,this.y3,this.x4,this.y4);this.points=[];let p,h,c=max(2,round(max(o,i)/n));for(let m=0;m<c;m++){let d=map(m,0,c-1,0,1);p=lerp(this.x1,this.x2,d),h=lerp(this.y1,this.y2,d);let u=p,f=h,y=noise(.08*p,.08*h)*TAU;p+=1*cos(y),h+=1*sin(y),this.points.push({x:p,y:h}),!isNaN(p)&&(p=lerp(this.x4,this.x3,d),h=lerp(this.y4,this.y3,d),y=noise(.08*p,.08*h)*TAU,p+=1*cos(y),h+=1*sin(y),this.points.push({x:p,y:h}))}this.pen=_createV(this.points[0].x,this.points[0].y),this._pen={x:this.pen.x,y:this.pen.y},this.penTargetIndex=1,this.penV=_createV(0,0);for(let g=0;g<this.points.length-1;g++){let x=this.points[g],S=this.points[g+1];this.pathLen+=dist(x.x,x.y,S.x,S.y)}}}class SketchyRect extends SketchyQuad{constructor(e,t,$,a,_){let s=e-$/2,l=t-a/2,r=e+$/2,n=t-a/2,o,i;super(s,l,r,n,e+$/2,t+a/2,e-$/2,t+a/2,_)}}class SketchyWeightedLine extends SketchyRect{constructor(e,t,$,a,_,s){let l=dist(e,t,$,a),r=atan2(a-t,$-e),n;super(lerp(e,$,.5),lerp(t,a,.5),_,l,s),this.angle=r+PI/2}}class SketchyLine extends SketchyShape{constructor(e,t,$,a){super(),this.x=0,this.y=0,this.points=[],this.points.push({x:e,y:t}),this.points.push({x:$,y:a}),this.pen=_createV(this.points[0].x,this.points[0].y),this._pen={x:this.pen.x,y:this.pen.y},this.penTargetIndex=1,this.penV=_createV(0,0)}}let R=new Random,saveMode=!1,saving=!1,saveTime=0,doDownload=!1,canv,shapes=[],paperColor,palettes=[],palette,treePalettes=[],treePalette,bushPalettes=[],bushPalette,skyPalettes=[],skyPalette,oceanPalettes=[],oceanPalette,cactusPalettes=[],cactusPalette,cactusFruitPalettes=[],cactusFruitPalette,petalPalettes=[],petalPalette,noiseScale=.01,hMap=[],lMap=[],erodeMap=[],depositMap=[],mapW,mapH,mapScale,mapTrim=8,minX=1e13,maxX=-1e13,minY=1e13,maxY=-1e13,terrainHt,warpSz,landscapeShape,targetSz=400,targetSzW=600,sizeAdj,scl=.8,mag,lightAngle,lgt,skyCenterX,skyCenterY,plantThresh,sNoise,nSeed,rSeed;function setup(){rSeed=Math.floor(_random(1e8)),nSeed=Math.floor(_random(1e8)),randomSeed(rSeed),noiseSeed(nSeed),sNoise=new openSimplexNoise(nSeed),handleUrlParams();let e;windowHeight>floor(windowWidth*(targetSz/targetSzW))?(e=floor(windowWidth*mag),sizeAdj=floor(mag*windowWidth*(targetSz/targetSzW))/targetSz,canv=createCanvas(e,floor(e*(targetSz/targetSzW)))):(e=floor(mag*windowHeight*targetSzW/targetSz),sizeAdj=floor(e*(targetSz/targetSzW))/targetSz,canv=createCanvas(e,floor(windowHeight*mag))),background(paperColor=color("#dfd8ce")),document.querySelector("html").style.width="100%",document.querySelector("html").style.height="100%",document.querySelector("html").style.margin=0,document.querySelector("html").style.padding=0,document.querySelector("html").style.backgroundColor=paperColor,document.querySelector("html").style.display="flex",document.querySelector("html").style.justifyContent="center",document.querySelector("html").style.alignItems="center",document.querySelector("body").style.width="100%",document.querySelector("body").style.height="100%",document.querySelector("body").style.margin=0,document.querySelector("body").style.padding=0,document.querySelector("body").style.backgroundColor=paperColor,document.querySelector("body").style.display="flex",document.querySelector("body").style.justifyContent="center",document.querySelector("body").style.alignItems="center",canv.style.display="block",paletteIndex=_random([0,0,0,1,1,1,2,3,3,3]),preparePalette(paletteIndex),lightAngle=-PI/2+_random(-1,1)*PI/6,lgt=_normalize(_createV(cos(lightAngle),sin(lightAngle),0)),terrainHt=-.6*targetSz,warpSz=0,prepareHeightMap(),prepareLigthMap(),skyCenterX=mapW*map(lightAngle,-PI/2-PI/6,-PI/2+PI/6,.8,.2),skyCenterY=mapH*_random(.2,.5);let t=_random(.2,.25);plantThresh=_random(.51,.52);let $=.2,a=.8,_=_random(.35,.4),s=_random(.1,.6),l=targetSz*s,r=.5*targetSz,n=-(0*targetSz);for(let o=0;o<900*(targetSzW/targetSz)*.7;o++){let i=-n-20,p=targetSzW+n+20,h=_random(i,p),c=_random(targetSz-r-.2*targetSz)+r,m=c+10,d=map(c,0,targetSzW,0,mapW*$),u=map(c,0,targetSz,mapW-1,mapW*a),f=constrain(floor(map(h,i,p,mapTrim+d,u-mapTrim)),0,mapW-1),y=constrain(floor(map(c,r,targetSz-.2*targetSz,mapTrim,floor(.7*mapH))),0,mapH-1),g=hMap[f][y];h+=cos(g)*warpSz,c+=sin(g)*warpSz,c+=map(g,0,2*TAU,0,1)*terrainHt*map(c,l,targetSz,1,0);let x=_normalize(hMapNormal(f,y)),S=_dot(x,lgt),b=floor(_random(1e3)),z=floor(_random(1e3));if(0!=g){let W=.01*targetSz,P=_createV(1,0);P=_rotate(P,2*noise(h*noiseScale,c*noiseScale,.1*_random(TAU))*TAU,0,0),P=_scalarMult(P,_random(W));let C=constrain(1.1*norm(S,-1,1)+.1*_random(-1,1),0,1),M=noise(f*noiseScale*4+1e3,y*noiseScale*4+1e3);if(20>floor(_random(100))){let w=new SketchyEllipse(h+P.x,c+P.y,W,W,1,!1);w.z=m,w.setWeight(2.5),w.setMaxV(.3),w.setAcc(.01),w.setDensity(1),w.setWobble(.1),w.setAngle(_random(TAU));let A=paletteColor(lerp(M,C,constrain(2*abs(C-.5)+.1*_random(-1,1),0,1)));w.setColor(color(red(A),green(A),blue(A),64)),shapes.push(w)}if(g<1.6*PI&&y>12){let F=noise(f*noiseScale*3+1234,y*noiseScale*3+1234);if(abs(x.x)<plantThresh){let V=noise(f*noiseScale*4+100,y*noiseScale*4+123);if(F>t)y>21&&f>22&&f<mapW-1-22&&(b<map(t,.2,.4,200,400)+0&&addTree(h,c,m-11,C,map(V,0,1,23,55)*map(c,l,targetSz,1,1.9)*_random(.65,1.2)),addBush(h,c,m-10,C,map(V,0,1,10,100),f,y));else{if(z<50){let k=map(V,0,1,1,12);addCactus(h,c,h,c,m-10,C,k,round(_random(1,4)),0)}50>_random(100)&&addBush(h,c,m-10,C,map(V,0,1,10,160),f,y)}let H=map(V,0,1,2,5),D=map(V,0,1,1,3);for(let v=-H;v<=H;v++)for(let T=-D;T<=D;T++){let q=floor(f+v+cos(lightAngle)*H*.5),E=floor(y+T+sin(lightAngle)*D*.5);q<0||q>=mapW||E<0||E>=mapH||(lMap[q][E]=lerp(lMap[q][E],-1,.7))}}}}}for(let N=0;N<1924.9999999999998;N++){let L=-n-20,B=targetSzW+n+20,X=_random(L,B),Y=_random(targetSz-r-.2*targetSz)+r,I=Y,j=map(Y,0,targetSz,0,mapW*$),G=map(Y,0,targetSz,mapW-1,mapW*a),Q=constrain(floor(map(X,L,B,mapTrim+j,G-mapTrim)),0,mapW-1),U=constrain(floor(map(Y,r,targetSz-.2*targetSz,mapTrim,floor(.7*mapH))),0,mapH-1),J=hMap[Q][U];X+=cos(J)*warpSz,Y+=sin(J)*warpSz,Y+=map(J,0,2*TAU,0,1)*terrainHt*map(Y,l,targetSz,1,0);let K=_normalize(hMapNormal(Q,U)),O=lMap[Q][U],Z=_magSq(hMapNormal2(Q,U)),ee=.0375*targetSz,et=.075*targetSz*.8,e$=max(1,floor(map(pow(abs(Y-I),1),0,pow(abs(terrainHt)+abs(warpSz),1),1,_random(3,8))));for(let ea=0;ea<e$;ea++){let e_=constrain(map(Z,1e-4,8e-4,et,ee),ee,et),es=_createV(0,.15*abs(_random(Y-I)));es=_rotate(es,0,0,_random(-1,1)*PI/8);let el=new SketchyEllipse(X+es.x,Y+es.y,.0125*targetSz,e_*_random(.9,1.1),_random(1,1.5));el.z=I,el.setWeight(3),el.setMaxV(1),el.setAcc(.02),el.setDensity(2.5),el.setWobble(.2),el.setAngle(map(K.x,1,-1,0,PI/2)+PI/4+(2*round(_random(1))-1)*PI+map(noise(X*noiseScale,Y*noiseScale),0,1,-1,1)*PI/8*0);for(let er=0;er<el.points.length;er++){let en=el.points[er],eo=(2*noise(en.x*noiseScale*4+100,en.y*noiseScale*4+100)-1)*2*TAU;en.x+=2*cos(eo),en.y+=2*sin(eo)}let ei=constrain(1.1*norm(O,-1,1),0,1),ep=noise(Q*noiseScale*4+1e3,U*noiseScale*4+1e3),e0=paletteColor(lerp(ep,ei,2*abs(ei-.5)));el.setColor(color(red(e0),green(e0),blue(e0),_random(64,100))),shapes.push(el)}}l=targetSz*s,r=.8*targetSz,$=0,a=1;let eh=0*targetSz;fo