memoscan
← all memos

Memo 0xcc433584…109dad on Ethereum

function handleUrlParams(){let e=window.location.search,a=new URLSearchParams(e),$=a.get("mag");mag=null==$?1:float($)>0?max(float($),1):1}function openSimplexNoise(e){"use strict";let a=e=>e.split(",").map(e=>new Uint8Array(e.split("").map(e=>Number(e)))),$=(e,a,$)=>new Int8Array($.split("").map($=>parseInt($,a)+e)),t=e=>e.split(",").map(e=>parseInt(e,32)),_=1/103,r=1/3,l=-.5/3;var i=a("0000110010101001,2110210120113111,110010101001211021012011");let f=$(-11,23,"0ff7mf7fmmfffmfffm07f70f77mm7ff0ff7m0f77m77f0mf7fm7ff0077707770m77f07f70");var n=()=>new Uint16Array(t("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")),o=$(-1,5,"112011210110211120110121102132212220132122202131222022243214231243124213241324123222113311221213131221123113311112202311112022311112220342223113342223311342223131322023113322023311320223113320223131322203311322203131");let s=(e,a=e=>e)=>{for(var $=[],t=0;t<e;)$.push(a(t++));return $};function u(e,a=1){return e=1664525*e+1013904223|0,(a-=1)>0?u(e,a):e}let c={_3D:{base:i,squish:r,dimensions:3,pD:o,lookup:n}};function p(e,a,$){var t=0;let _=a[$++],r={next:void 0};for(;t<e.dimensions;){let l="xyzw"[t];r[l+"sb"]=a[$+t],r["d"+l]=-a[$+t++]-_*e.squish}return r}let[d,F]=function e(a){let $=[],t=a.dimensions,_=t*t;for(var r,l=0;l<a.pD.length;){let i=a.base[a.pD[l]],f,n;r=0;do n=p(a,i,r),f?f.next=n:$[l/_]=n,f=n,r+=t+1;while(r<i.length);n.next=p(a,a.pD,l+1),t>=3&&(n.next.next=p(a,a.pD,l+t+2)),4===t&&(n.next.next.next=p(a,a.pD,l+11)),l+=_}let o=[$,function e(a,$){var t;let _=a(),r=new Map;for(t=0;t<_.length;t+=2)r.set(_[t],$[_[t+1]]);return r}(a.lookup,$)];return a.base=void 0,a.lookup=void 0,o}(c._3D),m=new Uint8Array(256),x=new Uint8Array(256),h=new Uint8Array(s(256,e=>e));var y=u(e,3);return((e,a)=>{for(var $=0;$<256&&!0!==a($++););})(256,e=>{e=255-e;var a=((y=u(y))+31)%(e+1);a+=a<0?e+1:0,m[e]=h[a],x[e]=m[e]%24*3,h[a]=h[e]}),i=void 0,n=void 0,o=void 0,{noise3D(e,a,$){let t=x,i=m,n=f,o=(e+a+$)*l,s=e+o,u=a+o,c=$+o,p=Math.floor(s),d=Math.floor(u),h=Math.floor(c),y=(p+d+h)*r,g=e-(p+y),z=a-(d+y),v=$-(h+y);for(var b,S=(()=>{let e=s-p,a=u-d,$=c-h,t=e+a+$;return F.get(a-$+1|e-a+1<<1|e-$+1<<2|t<<3|t+$<<5|t+a<<7|t+e<<9)})(),U=0;void 0!==S;){let k=g+S.dx,D=z+S.dy,B=v+S.dz,q=2-k*k-D*D-B*B;q>0&&(b=t[(i[p+S.xsb&255]+(d+S.ysb)&255)+(h+S.zsb)&255],q*=q,U+=q*q*(n[b++]*k+n[b++]*D+n[b]*B)),S=S.next}return U*_}}}function Fa(e,a,$){let t=$;return void 0==t&&(t=0),{x:e,y:a,z:t}}function Fb(e){return Fa(e.x,e.y,e.z)}function Fc(e){let a=Fg(e);return 0==a?e:Ff(e,1/a)}function Fd(e,a){return Fa(e.x+a.x,e.y+a.y,e.z+a.z)}function Fe(e,a){return Fa(e.x*a.x,e.y*a.y,e.z*a.z)}function Ff(e,a){return Fa(e.x*a,e.y*a,e.z*a)}function Fg(e){return sqrt(sq(e.x)+sq(e.y)+sq(e.z))}function Fh(e,a){return e.x*a.x+e.y*a.y+e.z*a.z}function Fi(e,a){return Fa(e.y*a.z-e.z*a.y,e.z*a.x-e.x*a.z,e.x*a.y-e.y*a.x)}function Fj(e,a,$){return Fa(lerp(e.x,a.x,$),lerp(e.y,a.y,$),lerp(e.z,a.z,$))}function Fk(e,a,$,t){let _=cos(a),r=cos($),l=cos(t),i=sin(a),f=sin($),n=sin(t),o=Fa(e.x,e.y,e.z),s=_,u=i,c=0,p=-i,d=_,F=0,m=0,x=0,h=1;return o=Fa(o.x*s+o.y*p+o.z*m,o.x*u+o.y*d+o.z*x,o.x*c+o.y*F+o.z*h),s=r,u=0,c=f,p=0,d=1,F=0,m=-f,x=0,h=r,o=Fa(o.x*s+o.y*p+o.z*m,o.x*u+o.y*d+o.z*x,o.x*c+o.y*F+o.z*h),s=1,u=0,c=0,p=0,d=l,F=n,m=0,x=-n,h=l,o=Fa(o.x*s+o.y*p+o.z*m,o.x*u+o.y*d+o.z*x,o.x*c+o.y*F+o.z*h)}function Fl(e){let a=e.x,$=e.y,t=e.z,_=e.nOctaves,r=e.scaleFallout,l=e.weightFallout,i=0,f=1,n=0,o=1;for(let s=0;s<_;s++)n+=f,i+=norm(sNoise.noise3D(a*o,$*o,t*o),-1,1)*f,o*=r,f*=l;return map(i,0,n,0,1)}function Fm(e,a,$){let t=floor(a),_=floor($),r=a-t,l=$-_,i=e[t][_],f=e[t+1][_],n=e[t][_+1],o;return i*(1-r)*(1-l)+f*r*(1-l)+n*(1-r)*l+e[t+1][_+1]*r*l}function Fn(e){let a=e;e>16843008&&(a=16843008);let $=a,t=0;for(;$>=0;)t++,$-=65536;t--,$+=65536;let _=0;for(;$>=0;)_++,$-=256;_--,$+=256;let r=0;for(;$>=0;)r++,$-=1;return[--r,_,t]}function Fo(){let e=16843008;terrainMap.loadPixels();for(let a=0;a<terrainMap.width;a++)for(let $=0;$<terrainMap.height;$++){let t=(floor(a)+floor($)*mapW)*4,_=Fr(a,$,terrainNoiseScale,e)*constrain(pow(map($,.1*terrainMap.height,terrainMap.height,0,1),1),0,1),r=Fn(_);terrainMap.pixels[t+0]=r[2],terrainMap.pixels[t+1]=r[1],terrainMap.pixels[t+2]=r[0]}terrainMap.updatePixels()}function Fp(e){let a=e*e;return a/(2*(a-e)+1)}function Fq(){let e=16843008;fireMap.loadPixels();for(let a=0;a<fireMap.width;a++)for(let $=0;$<fireMap.height;$++){let t=(floor(a)+floor($)*mapW)*4,_=dist(houseX,houseZ,map(a,0,mapW,-14,14),map($,0,mapH,-18,18)),r=noise(.05*a,.05*$),l=constrain(constrain(map(_,0,40,0,1),0,1)+map(r,0,1,-1,1)*map(flameFactor,0,flameFactorMax,.2,0),0,1),i,f,n=constrain(map(flameFactor,0,flameFactorMax,0,1),0,1),o=.55*Fp(1-constrain(map(flameFactor,0,.5*flameFactorMax,0,1),0,1)),s=o+Fp(1-n);if(l>o&&l<s){f=constrain(pow(map(abs(lerp(o,s,.5)-l),0,(s-o)/2,1,.2),.5),0,1);let u=Fr(a,$,terrainNoiseScale,e),c=Fr(a,$+1,terrainNoiseScale,e);i=constrain(map(abs(c-u),0,1e5,constrain(map(flameFactor,0,flameFactorMax,0,.7),0,1),1),0,1)*(.9*e)*f+.1*e;let p=Fn(i);fireMap.pixels[t+0]=p[2],fireMap.pixels[t+1]=p[1],fireMap.pixels[t+2]=p[0]}else if(l>s){let d=Fn(constrain(map(l,s,s+.1*map(flameFactor,0,flameFactorMax,1,0),.1*e,0),0,.1*e));fireMap.pixels[t+0]=d[2],fireMap.pixels[t+1]=d[1],fireMap.pixels[t+2]=d[0]}else{let F=Fn(.1*e);fireMap.pixels[t+0]=F[2],fireMap.pixels[t+1]=F[1],fireMap.pixels[t+2]=F[0]}}fireMap.updatePixels()}function Fr(e,a,$,t){return pow(Fl({x:(mapW/2-e)*$*pow(map(a,0,mapH,terrainPerspectiveFactor,1),3)+1e3,y:a*$*.9*pow(map(a,0,mapH,.7,1),3)+1e3,z:0,nOctaves:4,scaleFallout:2,weightFallout:.35}),1.5)*t}function Fs(e,a,$,t){return Fr(e+1,a,$,t)-Fr(e,a,$,t)}function Ft(e,a,$,t){return Fr(e,a+1,$,t)-Fr(e,a,$,t)}function Fu(e,a){let $,t=1,_,r=1;e==mapW-1?($=e-1,t=-1):$=e+1,a==mapH-1?(_=a-1,r=-1):_=a+1;let l=Fm(terrainHeightMap,$,a)-Fm(terrainHeightMap,e,a),i=Fm(terrainHeightMap,e,_)-Fm(terrainHeightMap,e,a);return Fa(l*t,i*r)}function Fv(e,a){let $,t=1,_,r=1;return e==mapW-1?($=e-1,t=-1):$=e+1,a==mapH-1?(_=a-1,r=-1):_=a+1,Fa((Fu($,a).x-Fu(e,a).x)*t,(Fu(e,_).y-Fu(e,a).y)*r)}function Fw(e,a){let $=1e-9*cloudTimeOffset;return Fl({x:(targetSzX/2-e)*.008*map(a,0,targetSzY*map(skyAngle,-.3,-.2,.2,.5),.8,1)+13200+$,y:.008*a+10216323+$,z:$,nOctaves:4,scaleFallout:2.9,weightFallout:.3})*map(a,0,targetSzY*map(skyAngle,-.3,-.2,.2,.5),.3,1)*map(Fl({x:(targetSzX/2-e)*.004*map(a,0,targetSzY*map(skyAngle,-.3,-.2,.2,.5),.8,1)+13200+$,y:$,z:$,nOctaves:2,scaleFallout:3,weightFallout:.8}),0,1,.4,1)}function Fx(e,a){let $=Fa(floor(map(e.x,0,targetSzX,0,bufferWidth)),floor(map(e.y,0,targetSzY,0,bufferHeight)));return!!($.x<0)||!!($.x>=bufferWidth)||!!($.y<0)||!!($.y>=bufferHeight)||0==a[$.x][$.y]}function Fy(e,a,$,t){let _=map(e,0,targetSzX,0,bufferWidth),r=map(a,0,targetSzY,0,bufferHeight);if(_<0||_>=bufferWidth||r<0||r>=bufferHeight)return;let l=$*$;for(let i=-$;i<=$;i++){let f=floor(_+i);if(f>=0&&f<bufferWidth)for(let n=-$;n<=$;n++){let o=floor(r+n);o>=0&&o<bufferHeight&&sq(_-f)+sq(r-o)<l&&(t[f][o]=0)}}}function Fz(e,a,$,t,_){return sq(a-e.x)/sq(t)+sq($-e.y)/sq(_)<=1}function FA(e,a,$,t,_){let r=map(e,0,targetSzX,0,bufferWidth),l=map(a,0,targetSzY,0,bufferHeight);if(!(r<0)&&!(r>=bufferWidth)&&!(l<0)&&!(l>=bufferHeight))for(let i=-$;i<=$;i++){let f=floor(r+i);if(f>=0&&f<bufferWidth)for(let n=-t;n<=t;n++){let o=floor(l+n);o>=0&&o<bufferHeight&&Fz(Fa(f,o),r,l,$,t)&&(_[f][o]=0)}}}function FB(e,a,$,t){let _=2*max(ceil(dist(e.x,e.y,a.x,a.y)),1);for(let r=0;r<_;r++){let l=map(r,0,_-1,0,1),i=Fj(e,a,l);Fy(i.x,i.y,$,t)}}function FC(e,a){let $=20,t=random(-TAU,TAU);for(let _=0;_<$;_++){let r=map(_,0,$,0,TAU)+t,l;l=Fd(e,Fk(Fa(1.1*a,0),r,0,0)),Fx(l,packingBuffer)||el_pts.push(l)}}class Random{constructor(){this.useA=!1;let e=function(e){let a=parseInt(e.substr(0,8),16),$=parseInt(e.substr(8,8),16),t=parseInt(e.substr(16,8),16),_=parseInt(e.substr(24,8),16);return function(){t|=0;let e=((a|=0)+($|=0)|0)+(_|=0)|0;return _=_+1|0,a=$^$>>>9,$=t+(t<<3)|0,t=(t=t<<21|t>>>11)+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let a=0;a<1e6;a+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}}let R=new Random,targetSzX,targetSzY,heightToWidth=.75,sizeAdjust,mag=1,canvSzX,canvSzY,drawInd=0,packingBuffer=[],bufferWidth,bufferHeight,el_pts=[],packedPoints=[],bufferGfx,fireMap,terrainMap,mapW=mapH=400,terrainNoiseScale=.021,terrainHt=8,terrainPerspectiveFactor,houseX,houseZ,houseW,houseH,houseD,houseScale,houseAngle,sunPosX,sunPosY,sunPosZ,vegetationDir,flameFactor,flameFactorMax=4,cloudTimeOffset,skyType,skyAngle,timeOffset,burnStart,burnDuration,inkColor,materials=[],lightBuffer,materialBuffer,normalBuffer,xyzBuffer,shaderBuffer,myShader,fragShader=`precision highp float;uniform float U0,U8,U9,U10,U11,U12;uniform sampler2D U1,U2;uniform vec3 U5,U7;uniform vec2 U6,U4;uniform int U3;varying vec2 vTexCoord; #define DMS 100 #define DMD 100. #define DSD 0.005 #define DZ 8.0 #define DTH 4.0 #define PI 3.14159265359 #define E 2.7182818284590452353602874713527 float F0(float a1,float a2,float a3,float a4,float a5){return a4+(a1-a2)*(a5-a4)/(a3-a2);}float F1(vec2 a1,sampler2D a2){vec4 a3=texture2D(a2,a1*.03+vec2(.5));return(a3.x*16777216.+a3.y*65536.+a3.z*256.)/16843008.;}vec2 F2(vec2 a1,sampler2D a2){float d=F1(a1,a2);vec2 e=vec2(1,0),n=d-vec2(F1(a1-e.xy,a2),F1(a1-e.yx,a2));return n;}vec3 F3(vec3 p,vec3 t){return p-t;}vec3 F4(vec3 p,vec3 r){vec3 q=p;float qx=q.x,qy=q.y*cos(r.x)-q.z*sin(r.x),qz=q.y*sin(r.x)+q.z*cos(r.x);q.x=qx;q.y=qy;q.z=qz;qx=q.x*cos(r.y)+q.z*sin(r.y);qy=q.y;qz=q.z*cos(r.y)-q.x*sin(r.y);q.x=qx;q.y=qy;q.z=qz;qx=q.x*cos(r.z)-q.y*sin(r.z);qy=q.x*sin(r.z)+q.y*cos(r.z);qz=q.z;q.x=qx;q.y=qy;q.z=qz;return q;}float F5(vec3 p,vec3 b){vec3 q=abs(p)-b;return length(max(q,0.))+min(max(q.x,max(q.y,q.z)),0.);}float F6(vec3 p,float h,float r){float a=clamp(F0(p.y,0.,h,0.,1.),0.,1.),b=F0(sin(a*PI*4.),-1.,1.,1.-a,1.);p.y-=clamp(p.y,0.,h);return length(p)-r*b*pow(1.-a,1.5);}float F7(float d1,float d2){return max(d1,-d2);}float F8(vec3 p,vec3 b){float a1=F5(p,b),a2=F5(p+vec3(0,.08,0),vec3(b.x*.9,(b.y-.08)*.9,b.z*.9)),a3=F7(a1,a2),a4=F5(F3(F4(p,vec3(0,0,PI*.025/b.x)),vec3(0,b.y,0)),vec3(b.x*2.,.1,b.z*2.)),a5=F5(p+vec3(-.6*b.x,-b.y+.1,.2*b.z),vec3(.05,.1,.05)),a6=min(F7(a3,a4),a5),a7=F5(p+vec3(b.x-.3,b.y-.25,b.z),vec3(.1,.25,.1)),a8=F7(a6,a7),a9=F5(p+vec3(b.x-.55,b.y-.4,b.z),vec3(.1)),a10=F5(p+vec3(b.x-.8,b.y-.4,b.z),vec3(.1)),a11=F5(p+vec3(-b.x,b.y-.4,0),vec3(1,.1,.1)),a12=F7(F7(F7(a8,a9),a10),a11),a13=F5(F3(F4(p,vec3(0,0,PI*.025/b.x)),vec3(0,b.y-.11,0)),vec3(b.x+.1,.01,b.z+.1));return min(a13,a12);}float F9(vec3 p,float a1){float a2=0.;if(p.x>=-10.&&p.x<=10.&&p.z>=-10.&&p.z<=10.)a2=F1(p.xz,U1)*a1;else{if(p.z>10.)return DMD;a2=0.;}return p.y-a2;}float F10(vec3 p,float a1,float a2,vec2 a3){vec3 _p=F4(p,vec3(0,a2,0)),w;_p=F3(_p,vec3(a3.x,0,a3.y));vec2 m=floor(_p.xz/a1),a4,c,a5,a6;float n=107.*m.x+113.*m.y+131.,a7,a8,dx,dz;a4=fract(n*fract(n/vec2(PI,E)))*2.-1.;c=a1*m+a1/2.+a4*a1*.25;a5=F4(F3(vec3(c.x,0,c.y),vec3(-a3.x,0,-a3.y)),vec3(0,-a2,0)).xz;w=vec3(_p.x-c.x,_p.y-F1(a5,U1)*DTH,_p.z-c.y);a6=F2(a5,U1);a7=0.;a8=dot(a6,U4);a7=clamp(a8*70.,0.,1.)*a1*.25;dx=p.x-U6.x;dz=p.z-U6.y;a7*=min(F0(pow(max(dx*dx+dz*dz,0.),.5),0.,.5,0.,1.),1.);a7*=step(.05,a7)*step(0.,a8);return mix(length(w)-a7,DMD,p.x>=-10.&&p.x<=10.&&p.z>=-10.&&p.z<=9.7?0.:1.);}struct S0{float d;bool burned;float burnAmt;};S0 F11(vec3 p,float a1,float a2,vec2 a3){vec3 _p=F4(p,vec3(0,a2,0)),w;_p=F3(_p,vec3(a3.x,0,a3.y));vec2 m=floor(_p.xz/a1),a4,c,a5;float n=107.*m.x+113.*m.y+131.,a6,a7,a8,a9;a4=fract(n*fract(n/vec2(PI,E)))*2.-1.;c=a1*m+a1/2.+a4*a1*.125;a5=F4(F3(vec3(c.x,0,c.y),vec3(-a3.x,0,-a3.y)),vec3(0,-a2,0)).xz;w=vec3(_p.x-c.x,_p.y-F1(a5,U1)*DTH,_p.z-c.y);a6=a1*.65;a7=F1(p.xz,U2);a8=1.-step(.1,a7);a6*=mix(F0(a7,.1,1.,0.,2.5),1.,a8);a9=(a4.x-sin((w.y+(a4.x+20.)*PI+w.x+(a4.y+20.)*PI)*(10./min(a1,1.))-U11*(a4.y+21.)))*.05;return S0(mix(mix(F6(w+vec3(a9,0,0),a6,a6*.115),F5(F4(w,vec3(PI*.25*a4.x,0,PI*.25*a4.y)),vec3((a4.y*.5+.5)*.5+.1,2,(a4.x*.5+.5)*.5+.1)),a8),DMD,p.x>=-10.&&p.x<=10.&&p.z>=-10.&&p.z<=10.?0.:1.),a8==1.,clamp(.1-a7,0.,.1));}struct DM{float d;int m;float f;};DM min(DM a,DM b){bool ab=step(b.d,a.d)==0.;return DM(ab?a.d:b.d,ab?a.m:b.m,ab?a.f:b.f);}DM F12(vec3 p,bool a1){float a2=F10(p,.9,PI/1.9,vec2(1312.231124,120)),a3=F10(p,.8,PI/5.,vec2(.1,0)),a4=F10(p,.7,PI/1.2,vec2(0)),a5=F10(p,.5,PI/3.,vec2(.1,1.1231)),a6=F10(p,.35,PI/7.,vec2(-.3111,1.31421)),a7,a8,a9,a10,a11,a14,a17,a19;S0 f1=F11(p,.5,PI/1.123,vec2(1312.231124,120.1)),f2=F11(p,1.,PI/8.9,vec2(-12.1124,10.2)),f3=F11(p,1.5,-PI/2.9,vec2(112.2324,20.3)),f4=F11(p,1.4,-PI/132.21319,vec2(198.534212324,22.8931218));a7=mix(f1.d,DMD,a1||f1.burned?1.:0.);a8=mix(f2.d,DMD,a1||f2.burned?1.:0.);a9=mix(f3.d,DMD,a1||f3.burned?1.:0.);a10=mix(f4.d,DMD,a1||f4.burned?1.:0.);a11=min(min(min(a7,a8),a9),a10);DM a12=DM(a11,4,1.),a16,a18,a20,d;vec3 a13=F4(vec3(U7.x,0,U7.z),vec3(0,U9,0)),a15;a14=min(F1(U6+vec2(-a13.x,a13.z),U1),F1(U6+vec2(-a13.x,-a13.z),U1));a14=min(a14,F1(U6+vec2(a13.xz),U1));a14=min(a14,F1(U6+vec2(a13.x,-a13.z),U1));a15=F4(F3(p,vec3(U6.x,a14*DTH+U7.y*.95*U8,U6.y)),vec3(0,U9,0));a16=DM(F8(a15/U8,U7)*U8,3,1.);a17=F5(a15/U8,U7)*U8;a18=DM(min(min(min(min(a2,a3),a4),a5),a6),1,1.);if(f1.burned)a18.d=F7(a18.d,f1.d),a16.d=F7(a16.d,f1.d),a17=F7(a17,f1.d);if(f2.burned)a18.d=F7(a18.d,f2.d),a16.d=F7(a16.d,f2.d),a17=F7(a17,f2.d);if(f3.burned)a18.d=F7(a18.d,f3.d),a16.d=F7(a16.d,f3.d),a17=F7(a17,f3.d);if(f4.burned)a18.d=F7(a18.d,f4.d),a16.d=F7(a16.d,f4.d),a17=F7(a17,f4.d);a18.d=F7(a18.d,a17);a19=F1(p.xz,U2);a20=DM(F7(F9(p,DTH),a17),int(1.-step(.1,a19))*5,(f1.burnAmt+f2.burnAmt+f3.burnAmt+f4.burnAmt)*2.5);d=min(a18,a20);d=min(a16,d);return min(d,a12);}DM F13(vec3 ro,vec3 rd,bool a1){float dO=0.,f,dS;int m=-1;f=-1.;dS=1.;bool a2=dO>DMD||dS<DSD;for(int i=0;i<DMS;i++){vec3 p=ro+rd*dO;DM dm=F12(p,a1);m=a2?m:dm.m;f=a2?f:dm.f;dS=a2?dS:dm.d;dO+=a2?0.:dS;a2=dO>DMD||dS<DSD;}return DM(dO,m,f);}vec3 F14(vec3 p){float d=F12(p,false).d;vec2 e=vec2(.005,0);vec3 n=vec3(d)-vec3(F12(p-e.xyy,false).d,F12(p-e.yxy,false).d,F12(p-e.yyx,false).d);return normalize(n);}vec3 F15(vec3 p,vec3 a1,float a2,float a3){vec3 a4=a1-p,l=normalize(a4),n;float a5=length(a4),a6,d,a7;n=F14(p);a6=clamp(dot(n,l)/max(pow(a5*a2,a3),1e-5),0.,1.);d=F13(p+n*DSD,l,true).d;a7=min(step(a5,d)+.1,1.);a6*=a7;return vec3(a6);}float F16(vec2 st){return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);}vec3 F17(vec3 p){vec3 a1=F14(p),a2=p+a1*DSD*2.;float res=1.,t=0.;for(int i=1;i<256;i++){float a3=step(1e4,t),h;vec3 a4=a2+a1*t,a5=vec3(F16(vec2(a4)),F16(vec2(a4.x+float(i),a4.y)),F16(vec2(a4.x+float(i+1),a4.y)));a4+=(a5*2.-1.)*.05;DM dm=F12(a4,false);h=dm.d;res=mix(mix(min(res,h),res,a3),res,dm.m==4?0.:1.);t+=mix(h,0.,a3);}return vec3(.1/max(1e-4,res),0,0);}void main(){vec2 uv=vec2(F0(vTexCoord.x,0.,1.,-(U0<=1.?1./U0:1.),U0<=1.?1./U0:1.),F0(vTexCoord.y,0.,1.,-1.,U0>1.?U0*1.5:1.));vec3 col=vec3(0),ro=vec3(0,4.4,-10)+vec3(uv*4.,0),rd=normalize(vec3(0,U12,1)),p;DM dm=F13(ro,rd,false);float d=dm.d;p=ro+rd*d;if(U3==0){vec3 a1=F15(p,U5,2e-4,.2),a2=F15(p,vec3(U6.x,F1(U6,U1)*DTH+U7.y*.5*U8,U6.y)-vec3(cos(U9),0,sin(U9))*.3*U8,1.,2.),a3=vec3(1,0,0),a4,a5;if(dm.m!=4)a3=F17(p)*.25*step(.15,U10);a3*=dm.m==0?4.:1.;a4=a1;a4+=a2*(1.-step(.95,U10));a4+=a3;a5=vec3(clamp(a4.x,0.,1.),clamp(a4.y,0.,1.),clamp(a4.z,0.,1.));col=mix(a5,vec3(F0(uv.y,-1.,1.,0.,1.)),step(DMD,d));}else if(U3==1){vec3 nrm=F14(p);col=vec3(F0(nrm.x,-1.,1.,0.,1.),F0(nrm.y,-1.,1.,0.,1.),F0(nrm.z,-1.,1.,0.,1.));}else if(U3==2)col=vec3(F0(p.x,-10.,10.,0.,1.),F0(p.y,0.,2.,0.,1.),F0(p.z,-10.,10.,0.,1.));else if(U3==3){if(dm.m==0)col=vec3(1,0,0);else if(dm.m==1)col=vec3(0,1,0);else if(dm.m==2)col=vec3(0,0,1);else if(dm.m==3)col=vec3(1,0,1);else if(dm.m==4)col=vec3(1,1,0);else if(dm.m==5)col=vec3(0,dm.f,dm.f);if(d>=DMD)col=vec3(0,0,1);}gl_FragColor=vec4(col,1);}`,vertShader=` precision lowp float; attribute vec3 aPosition; attribute vec2 aTexCoord; varying vec2 vTexCoord; void main() { vTexCoord = aTexCoord;// * vec2(0.5, 0.5); vec4 positionVec4 = vec4(aPosition, 1.0); positionVec4.xy = positionVec4.xy * 2.0 - 1.0; gl_Position = positionVec4; }`,sNoise,rSeed,nSeed;function setup(){handleUrlParams();let e="#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=e,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=e,document.querySelector("body").style.display="flex",document.querySelector("body").style.justifyContent="center",document.querySelector("body").style.alignItems="center",print(tokenData),rSeed=floor(1e8*R.random_dec()),nSeed=floor(1e8*R.random_dec()),randomSeed(rSeed),noiseSeed(nSeed),sNoise=new openSimplexNoise(nSeed),FI(),print("sizeAdjust",sizeAdjust=canvSzX/targetSzX),createCanvas(canvSzX,canvSzY),background(e),pixelDensity(1);inkColor=random([color("#01111f"),color("#011f01"),color("#510000"),color("#000"),color("#000"),color("#000"),color("#000"),color("#000"),color("#000"),color("#000")]),sunPosX=8*random(-1,1),sunPosY=7,sunPosZ=20,terrainPerspectiveFactor=random(.65,1),print("terrainPerspectiveFactor",terrainPerspectiveFactor),vegetationDir=random(0,PI),FK(),print("cloudTimeOffset",cloudTimeOffset),print("U11",timeOffset),print("U10",flameFactor),skyType=random([0,1]),skyAngle=-random(.2,.3),print("skyType",skyType),print("U12",skyAngle),FJ(),FM(),(terrainMap=createGraphics(mapW,mapH)).background(0),Fo(),(fireMap=createGraphics(mapW,mapH)).background(0),Fq(),FL(),print("packing")}let packingHouse=!0,packingLand=!1,packingSky=!1,packingClouds=!1,fail=0;function draw(){if(1==frameCount)print("rendering light map",frameCount),shaderBuffer.push(),shaderBuffer.shader(myShader),myShader.setUniform("U0",heightToWidth),myShader.setUniform("U1",terrainMap),myShader.setUniform("U2",fireMap),myShader.setUniform("U3",0),myShader.setUniform("U4",[cos(vegetationDir),sin(vegetationDir)]),myShader.setUniform("U5",[sunPosX,sunPosY,sunPosZ]),myShader.setUniform("U6",[houseX,houseZ]),myShader.setUniform("U7",[houseW,houseH,houseD]),myShader.setUniform("U8",houseScale),myShader.setUniform("U9",houseAngle),myShader.setUniform("U10",min(flameFactor,flameFactorMax)),myShader.setUniform("U11",timeOffset),myShader.setUniform("U12",skyAngle),shaderBuffer.rect(-targetSzX/2,-targetSzY/2,targetSzX,targetSzY),shaderBuffer.pop(),lightBuffer.image(shaderBuffer,0,0),image(lightBuffer,0,0,width,height),lightBuffer.loadPixels();else if(2==frameCount)print("rendering normal map",frameCount),shaderBuffer.push(),shaderBuffer.shader(myShader),myShader.setUniform("U3",1),shaderBuffer.rect(-targetSzX/2,-targetSzY/2,targetSzX,targetSzY),shaderBuffer.pop(),normalBuffer.image(shaderBuffer,0,0),normalBuffer.loadPixels();else if(3==frameCount)print("rendering xyz map",frameCount),shaderBuffer.push(),shaderBuffer.shader(myShader),myShader.setUniform("U3",2),shaderBuffer.rect(-targetSzX/2,-targetSzY/2,targetSzX,targetSzY),shaderBuffer.pop(),xyzBuffer.image(shaderBuffer,0,0),xyzBuffer.loadPixels();else if(4==frameCount){print("rendering material map",frameCount),shaderBuffer.push(),shaderBuffer.shader(myShader),myShader.setUn