0x9f79…7794

All memos sent from and to 0x9f79…7794.

You can't stare hard enough to see it all. Giant gas clouds roam the outer reaches of space. Finally, after all these years of human existence, we can see them clinging to the edge of the universe. What if this is the farthest we can see? In a Truman Show on a scale we can't comprehend, only now can we peer at the pixels that make up our reality. Space is rendered on a screen. I implore you to look closer... Nebulous is a piece of art that utilises shaders and techniques such as pigment blending, fractal brownian motion, domain warping, and pixelation to create astronomical phenomena in a digital universe. Press [S] to save
(()=>{const e=(e,r,t)=>{const a=e.createShader(t);if(e.shaderSource(a,r),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS))throw new Error(e.getShaderInfoLog(a));return a},r=(e,r)=>{const t=e.getProgramParameter(r,e.ACTIVE_UNIFORMS),a={};for(let c=-1;++c<t;){const t=e.getActiveUniform(r,c);a[t.name]={loc:e.getUniformLocation(r,t.name),type:t.type}}return a},t=(t,a,c,s={aUv:{data:new Float32Array([0,2,0,0,2,0]),mag:2},pos:{data:new Float32Array([-1,3,-1,-1,3,-1]),mag:2}})=>{const o=((r,t,a,c=null)=>{const s=r.createProgram(),o=e(r,t,r.VERTEX_SHADER),n=e(r,a,r.FRAGMENT_SHADER);if(r.attachShader(s,o),r.attachShader(s,n),r.deleteShader(o),r.deleteShader(n),c&&r.transformFeedbackVaryings(s,c,r.SEPARATE_ATTRIBS),r.linkProgram(s),!r.getProgramParameter(s,r.LINK_STATUS))throw new Error(r.getProgramInfoLog(s));return s})(t,a,c);return t.useProgram(o),t.bindVertexArray(((e,r,t)=>{const a=e.createVertexArray();return e.bindVertexArray(a),Object.keys(t).forEach(((a,c)=>{const s=((e,r,t=e.STATIC_DRAW,a=e.ARRAY_BUFFER)=>{const c=e.createBuffer();return e.bindBuffer(a,c),e.bufferData(a,r,t),c})(e,t[a].data);e.bindAttribLocation(r,c,a),e.enableVertexAttribArray(c),e.bindBuffer(e.ARRAY_BUFFER,s),e.vertexAttribPointer(c,t[a].mag,e.FLOAT,!1,0,0)})),a})(t,o,s)),{prog:o,uniforms:r(t,o),render(e=null,r=t.canvas.width,a=t.canvas.height,c=0,s=0){t.bindFramebuffer(t.FRAMEBUFFER,e),t.viewport(c,s,r,a),t.drawArrays(t.TRIANGLES,0,3)}}},a=document.createElement("canvas");a.style.setProperty("display","Block"),a.style.setProperty("max-height","100vh"),a.style.setProperty("max-width","100vw");const c=Math.min(Math.max(Math.min(window.innerWidth,window.innerHeight),2e3),1e4),s=new URLSearchParams(window.location.search).get("w"),o=s&&0!==s.length?Math.min(Math.max(s,2e3),1e4):c,n=Math.floor(1.5*o);a.width=o,a.height=n,document.body.appendChild(a),window.addEventListener("keydown",(e=>{"s"===e.key&&F()}));const i=a.getContext("webgl2",{alpha:!1,premultipliedAlpha:!0,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!0});i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!0);const v=new class{constructor(){this.useA=!1;let e=function(e){let r=parseInt(e.substring(0,8),16),t=parseInt(e.substring(8,16),16),a=parseInt(e.substring(16,24),16),c=parseInt(e.substring(24,32),16);return function(){r|=0,t|=0,a|=0,c|=0;let e=(r+t|0)+c|0;return c=c+1|0,r=t^t>>>9,t=a+(a<<3)|0,a=a<<21|a>>>11,a=a+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substring(2,34)),this.prngB=new e(tokenData.hash.substring(34,66));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}r(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}rB(e,r){return e+(r-e)*this.r()}rA(){return 2*this.r()*3.14159265}randPick(e){return e[this.r()*e.length|0]}weightedPick(e){let r=[];for(let t in e)r=r.concat(new Array(e[t][1]).fill(e[t][0]));return this.randPick(r)}shuffleArr(e){let r,t=e.length;for(;0!=t;)r=this.r()*t|0,t--,[e[t],e[r]]=[e[r],e[t]];return e}},l=v.weightedPick([["Carina",2],["Bubble",1],["Rosette",2],["Trifid",1],["Eskimo",2],["Footprint",1],["Medusa",1],["Heart",2],["Coalsack",2],["Dragonfish",1],["Pleiades",2],["Prawn",2],["Orion",2],["Retina",2],["Omega",2],["Saturn",2],["Horsehead",1]]),f=v.weightedPick([[3,3],[5,2],[7,1]]),u=v.weightedPick([[.04,3],[.08,4],[.12,2],[.16,1]]),d=v.randPick([0,.2,.4,.6,.8,1]),h=v.randPick([.01,.2,.4,.6,.8,1]),x=v.weightedPick([[0,1],[.01,7],[.02,5],[.05,3],[.1,2]]),b=v.weightedPick([["White",2],["Cream",1]]),m={Red:{w:"vec3(0.886,0.176,0.271)",b:"vec3(0.263,0.471,0.471)"},Blue:{w:"vec3(0.165,0.435,0.678)",b:"vec3(0.784,0.304,0.304)"},Yellow:{w:"vec3(0.969,0.745,0.18)",b:"vec3(0.355,0.314,0.549)"},Cerulean:{w:"vec3(.475, .580, .710)",b:"vec3(.957, .064, .075)"},Cream:{w:"vec3(.953, .914, .792)",b:"vec3(.018, .020, .062)"},Purple:{w:"vec3(.345, .298, .467)",b:"vec3(.463, .089, .390)"},Magnolia:{w:"vec3(.902, .816, .345)",b:"vec3(.042, .051, .135)"},White:{w:"vec3(.949, .922, .904)",b:"vec3(.020, .018, .047)"},Green:{w:"vec3(.200, .263, .118)",b:"vec3(.721, .278, .762)"},Crimson:{w:"vec3(.714, .243, .212)",b:"vec3(.064, .528, .364)"},Black:{w:"vec3(.141, .122, .125)",b:"vec3(.121, .157, .145)"},Grey:{w:"vec3(0.169,0.161,0.169)",b:"vec3(0.843,0.843,0.843)"},Pink:{w:"vec3(0.949,0.584,0.569)",b:"vec3(0.459,0.303,0.255)"},Orange:{w:"vec3(0.729,0.278,0.192)",b:"vec3(0.287,0.392,0.686)"},Teal:{w:"vec3(0.153,0.635,0.569)",b:"vec3(0.790,0.765,0.851)"}},p={Carina:{arr:["Red","Blue","Yellow","Red","Blue","Yellow"]},Bubble:{arr:["Cerulean","Cream","Purple","Cerulean","Cream","Grey"]},Rosette:{arr:["Cerulean","Cream","Magnolia","Cerulean","Blue","Magnolia"]},Trifid:{arr:["Teal","Magnolia","Pink","Teal","Magnolia","Pink"]},Eskimo:{arr:["Crimson","Blue","White","Crimson","Magnolia","White"]},Footprint:{arr:["Purple","Magnolia","Orange","Purple","Magnolia","Orange"]},Medusa:{arr:["Cerulean","Cream","Blue","Cerulean","Cream","Grey"]},Heart:{arr:["Crimson","Pink","Cerulean","Red","Grey","Cerulean"]},Coalsack:{arr:["Black","White","White","Black","White","Black"]},Dragonfish:{arr:["Black","Orange","Magnolia","Cream","Magnolia","Crimson"]},Pleiades:{arr:["Teal","Crimson","Yellow","Orange","Cream","Teal"]},Prawn:{arr:["Pink","Purple","Red","Blue","Orange","Crimson"]},Orion:{arr:["Pink","Blue","Cream","Blue","Red","White"]},Retina:{arr:["Crimson","Purple","Teal","Crimson","Purple","Teal"]},Omega:{arr:["Crimson","Cerulean","Magnolia","Crimson","Cerulean","Magnolia"]},Saturn:{arr:["Yellow","Teal","Orange","Green","Yellow","Orange"]},Horsehead:{arr:["White","Magnolia","Crimson","Grey","Magnolia","Blue"]}},g=p[l].arr.slice(0,3),w=p[l].arr.slice(3,6);v.shuffleArr(g),v.shuffleArr(w);const y=[...g,...w],_="mat2 rot(float t){ return mat2(cos(t), -sin(t), sin(t), cos(t)); }",$="p^=p>>5;p*=0x88E2BC69U;p^=p>>18;p*=0x5F82F8D9U;p^=p>>25;p*=0x36424E81U;p^=p>>12;return p;",T=`uint hash1(uint p){${$}}uvec4 hash4(uvec4 p){${$}}float n21(vec2 p){uint s=hash1(floatBitsToUint(p.x))+hash1(floatBitsToUint(p.y)>>4);uint u=s^0x3F666300U;uint v=hash1(u);return f(v)/f(0xFFFFFFFFU);}vec4 n44(vec4 p){uint s=hash1(floatBitsToUint(p.x))+hash1(floatBitsToUint(p.y)>>4)+hash1(floatBitsToUint(p.z)>>8)+hash1(floatBitsToUint(p.w)>>16);uvec4 u=uvec4(s^0x3F666300U,s^0x9FE52AF2U,s^0xB06C6948U,s^0x2568A0B6U);uvec4 v=hash4(u);return vec4(v)/vec4(0xFFFFFFFFU);}`,B="vec3 m0(vec3 x){return x-floor(x*.00346020761246)*289.;} vec2 m0(vec2 x){return x-floor(x*.00346020761246)*289.;} vec3 m1(vec3 x){return m0(((x*34.)+10.)*x);} float sn(vec2 v,float q){v*=q;vec4 C=vec4(.211324865405187,.366025403784439,-.577350269189626,.024390243902439);vec2 i=floor(v+dot(v,C.yy));vec2 x0=v-i+dot(i,C.xx);vec2 i1=(x0.x>x0.y)?vec2(1.,0.):vec2(0.,1.);vec4 x12=x0.xyxy+C.xxzz;x12.xy-=i1;i=m0(i);vec3 p=m1(m1(i.y+vec3(0.,i1.y,1.))+i.x+vec3(0.,i1.x,1.));vec3 m=max(.5-vec3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.);vec3 x=2.*fract(p*C.www)-1.;vec3 h=abs(x)-.5;vec3 a0=x-floor(x+.5);vec3 g=vec3(a0.x*x0.x+h.x*x0.y,a0.yz*x12.xz+h.yz*x12.yw);m*=m*m*m*(1.79284291400159-.85373472095314*(a0*a0+h*h));return 130.*dot(m,g)*.5+.5;}",A="float fbm(vec2 p,float t,float h,float w,float dW,float q){mat2 r=rot(t);float j=.5,s=0.,u=1.,v=0.;for(int i=-1;++i<6;){v+=j*sn(p,q);p*=r*w*u;s+=j;j*=h;u*=dW;}return v/s;}",E="#version 300 es\nin vec2 pos;out vec2 uv;void main(){uv=pos,gl_Position=vec4(pos*2.-1.,0,1);}",R=`#version 300 es\nprecision highp float;\n#define f(d) float(d)\nin vec2 uv;out vec4 col;${B}${_}${A}void main(){vec2 st=(uv*2.-1.);st*=rot(f(${v.rA()}));vec2 d=vec2(fbm(uv+vec2(${v.rB(2,128)},${v.rB(2,128)}),f(${v.rA()}),.49,1.4,1.4,1.2));st+=d*f(${d});vec2 d1=vec2(${v.rB(-1,1)},${v.rB(-1,1)}),d2=vec2(0.);float f1=f(${h}),f2=f(${u})+f(${u})*${v.r()>.5?"uv.y*uv.y*uv.y":"(1.-uv.y*uv.y*uv.y)"},f3=f(${f}),ds=f(${x/h});col=pow(vec4(fract(sn(st+sn(st+d2,f1),f2)*f3+.333),fract(sn(st+sn(st+d2+ds,f1),f2)*f3+.333),fract(sn(st+sn(st+d2+ds*2.,f1),f2)*f3+.333),1),vec4(1));}`,q=`#version 300 es\nprecision highp float;in vec2 uv;out vec4 col;uniform sampler2D t;\n#define bnd(p) texture(t, p)\n#define s2rgb(c) pow(c, vec3(2.2))\n#define rgb2s(c) pow(c, vec3(1. / 2.2))\n#define acoth(x) .5 * log((x + 1.) / (x - 1.))\n#define sinh_(x) (exp(x) - 1. / exp(x)) / 2.\n#define cosh_(x) (exp(x) + 1. / exp(x)) / 2.\n#define f(d) float(d)\nvec2 res=vec2(1.,1.5)*2000.;${T}${B}${_}${A}void KM(vec3 k,vec3 s,float h,out vec3 ia0,out vec3 ib0){vec3 a=k/s+1.0;vec3 b=sqrt(a*a-1.0);vec3 c=b*s*h;vec3 d=sinh_(c);vec3 f=a*d+b*cosh_(c);ia0=d/f;ib0=b/f;}void layer(vec3 ia0,vec3 ib0,vec3 ia1,vec3 ib1,out vec3 oa,out vec3 ob){vec3 a=1.0/(1.0-ia0*ia1);oa=ia0+ib0*ib0*ia1*a;ob=ib0*ib1*a;}void RGB_KM(vec3 rgb,vec3 op,out vec3 k,out vec3 s){vec3 bk=rgb*op;vec3 a=0.5*(rgb+(bk-rgb+1.0)/bk);vec3 b=sqrt(a*a-1.0);s=1.0/b*acoth((b*b-(a-rgb)*(a-1.0))/(b*(1.0-rgb)));k=s*(a-1.0);}void RGB(vec3 srgb,vec3 op,float h,out vec3 ia0,out vec3 ib0){vec3 k,s,rgb=s2rgb(srgb);RGB_KM(rgb,op,k,s);KM(k,s,h,ia0,ib0);}float smax(float x,float y,float t){float h=max(t-abs(x-y),0.)/t;return max(x,y)+h*h*t*(1./4.);}vec2 sabs(vec2 x){return sqrt(x*x+.01);}float sdRec(vec2 p,vec2 s,float x){vec2 q=sabs(p)-s;return length(max(q,0.0))+min(smax(q.x,q.y,x),0.);}float paper(vec2 st,float i){return fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)}),3.+f(${v.rA()}),.7,2.1,.99,20.)*.005*i+n21(floor(st*res*.2)/(res*.2)*9999.)*i*i*i;}vec2 normal(vec2 st,float i){vec2 dt=1./res;float e=1.;float o=paper(st,i);float dh=paper(st+dt*vec2(e,0),i);float dv=paper(st+dt*vec2(0,e),i);return (o-vec2(dh,dv))/dt;}float sdBox(vec2 st,vec2 b){vec2 d=abs(st)-b;return -length(max(d,0.))-min(max(d.x,d.y),0.);}vec3 watercolour(vec2 st,vec3 s){return pow(max(vec3(0),1.-s*10.),vec3(3))*smoothstep(-.00001,fbm(st,f(${v.rA()}),.5,2.5,1.1,1.)*.04,s);}vec4 blur(vec2 st,int n){vec4 col=vec4(0);float c=0.;float h;vec2 d;for(int x=-n/2;x<n/2;++x){for(int y=-n/2;y<n/2;++y){d=vec2(x,y);h=.63662*f(n*n)*exp(-((d.x*d.x+d.y*d.y)/(f(n*n)*.125)));col+=bnd(st+(2./vec2(4000))*d)*h;c+=h;}}return col/c;}vec3 sat(vec3 c,float a){return vec3(mix(vec3(dot(vec3(.2126,.7152,.0722),c)),c,1.+a));}vec3 cont(vec3 c,float a){return .5+(1.+a)*(c-.5);}vec3 brit(vec3 c,float a){return a+c;}vec3 expo(vec3 c,float a){return(1.+a)*c;}void main(){vec2 aspect=res/res.y;vec2 st=(uv*2.-1.)*aspect;vec4 bnds=blur(uv,40);vec3 sq=bnds.rgb;sq=smoothstep(.0,1.,bnds.rgb)+(n44(floor(uv.xyxy*res.xyxy*.2)/(res.xyxy*.2)*9999.).rgb-.5);float bpx=res.x-res.x*(sn(uv+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)}),3.)*.05+.85);float brd=sdRec(uv*2.-1.,1.-bpx/res.xx,1.);sq*=smoothstep(.1,.0,brd);vec3 c=vec3(fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)})+fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)}),f(${v.rA()}),.5,2.,1.1,.9),f(${v.rA()}),.5,2.,1.1,.9),fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)})+fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)}),f(${v.rA()}),.5,2.,1.1,.9),f(${v.rA()}),.5,2.,1.1,.9),fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)})+fbm(st+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)}),f(${v.rA()}),.5,2.,1.1,.9),f(${v.rA()}),.5,2.,1.1,.9));vec3 surfPos=vec3(uv,0.);float theta=f(${v.rA()});float rad=f(${v.r()})+2.;vec3 lightPos=vec3(aspect*vec2(rad*cos(theta),rad*sin(theta)),1.*max(res.x,res.y)/res.x);vec3 lightDir=normalize(lightPos-surfPos);vec3 surfNorm=normalize(vec3(normal(uv,dot(sq,vec3(0.299,0.587,0.114))),1));float diffuse=dot(surfNorm,lightDir);diffuse=diffuse*.35+.65;sq=smoothstep(.0001,1.,sq*c*.2);vec3 sq_=watercolour(st,sq);sq=1.-exp(-sq*10.);float sq0_=sq_.x*pow((1.-sq.y-sq_.y)*(1.-sq.z-sq_.z),.5)+sq.x;float sq1_=sq_.y*pow((1.-sq.x-sq_.x)*(1.-sq.z-sq_.z),.5)+sq.y;float sq2_=sq_.z*pow((1.-sq.y-sq_.y)*(1.-sq.x-sq_.x),.5)+sq.z;float th=f(${v.rA()});float rd=1.6;float ds=dot(sq,vec3(0.299,0.587,0.114));ds*=pow(distance(uv*2.-1.,vec2(rd*cos(th),rd*sin(th))),2.)*.25;sq0_+=ds*.5;sq1_+=ds*.5;sq2_+=ds*.5;vec3 r0,t0,r1,t1;vec3 c0k=vec3(${m[y[0]].w});vec3 c1k=vec3(${m[y[1]].w});vec3 c2k=vec3(${m[y[2]].w});vec3 c3k=vec3(${m[y[3]].w});vec3 c4k=vec3(${m[y[4]].w});vec3 c5k=vec3(${m[y[5]].w});vec3 c0s=vec3(${m[y[0]].b});vec3 c1s=vec3(${m[y[1]].b});vec3 c2s=vec3(${m[y[2]].b});vec3 c3s=vec3(${m[y[3]].b});vec3 c4s=vec3(${m[y[4]].b});vec3 c5s=vec3(${m[y[5]].b});float sn0=smoothstep(.05,.95,sn((uv*rot(${v.rA()}))+vec2(${v.r()},${v.r()})*f(${v.rB(2,128)}),f(${v.rB(1.75,2.25)})));sn0*=sn0;float sq3_=sq0_*(1.-sn0);sq0_*=sn0;float sq4_=sq1_*(1.-sn0);sq1_*=sn0;float sq5_=sq2_*(1.-sn0);sq2_*=sn0;RGB(${m[b].w},${m[b].b},.5,r0,t0);RGB(c0k,c0s,sq0_,r1,t1);layer(r0,t0,r1,t1,r0,t0);RGB(c1k,c1s,sq1_,r1,t1);layer(r0,t0,r1,t1,r0,t0);RGB(c2k,c2s,sq2_,r1,t1);layer(r0,t0,r1,t1,r0,t0);RGB(c3k,c3s,sq3_,r1,t1);layer(r0,t0,r1,t1,r0,t0);RGB(c4k,c4s,sq4_,r1,t1);layer(r0,t0,r1,t1,r0,t0);RGB(c5k,c5s,sq5_,r1,t1);layer(r0,t0,r1,t1,r0,t0);vec3 col_=(r0+t0);col_=expo(col_,.2);col_=sat(col_,.1);col_*=diffuse;col_=clamp(col_,0.,1.);col=vec4(col_,1);}`;let P={};P.bnds=t(i,E,R),P.post=t(i,E,q);let k={};k.bnds=((e,r=e.canvas.width,t=e.canvas.height,a=e.CLAMP_TO_EDGE,c=e.UNSIGNED_BYTE,s=e.RGBA,o=e.RGBA,n=null,i=e.LINEAR,v=i,l=!1)=>{const f=((e,r,t,a=e.CLAMP_TO_EDGE,c=e.UNSIGNED_BYTE,s=e.RGBA,o=e.RGBA,n=null,i=e.LINEAR,v=i,l=!1)=>{const f=e.createTexture();return e.bindTexture(e.TEXTURE_2D,f),e.texImage2D(e.TEXTURE_2D,0,o,r,t,0,s,c,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,v),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,a),l&&e.generateMipmap(e.TEXTURE_2D),f})(e,r,t,a,c,s,o,n,i,v,l),u=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,u),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,f,0),{fbo:u,tex:f}})(i,i.canvas.width,i.canvas.height);let C=P.bnds;i.useProgram(C.prog),C.render(k.bnds.fbo),C=P.post,i.useProgram(C.prog),((e,r,t,a)=>{e.activeTexture(e.TEXTURE0+0),e.bindTexture(e.TEXTURE_2D,a),e.uniform1i(t,0)})(i,0,C.uniforms.t.loc,k.bnds.tex),C.render(),Object.keys(P).forEach((e=>{i.deleteProgram(P[e].prog)})),Object.keys(k).forEach((e=>{i.deleteTexture(k[e].tex),i.deleteFramebuffer(k[e].fbo)}));const F=()=>{console.log("Saving Image..."),a.toBlob((e=>{const r=document.createElement("a"),t=URL.createObjectURL(e);r.href=t,r.download=`${tokenData.hash}.png`,document.body.appendChild(r),r.click(),setTimeout((function(){document.body.removeChild(r),window.URL.revokeObjectURL(t)}),0)}))}})();
*Whispers of Knowledge was developed in C# on Unity. Thousands of outputs were pre-rendered and co-curated with the Hodlers community. The end result was 100 highly curated pieces, hosted on IPFS.* ––– Legacy is inevitable and sacred. It embodies order, authority and truth. It is reassuring because it has outlived its time. It is a temple of knowledge, the foundation on which we build. But time passes and we forget. The world changes. Voluntarily or not, we adapt, we interpret, we rewrite. The seed is gradually corrupted. The meanings slip away. Facts become blurred. We assert wrongly, and chaos ensues. Lies become truths. History is changed. The new heritage is born, whispering it’s knowledge. In live view, press 's' to download a high resolution ( 5000px * 7000px ) version of the piece. It is a heavy file so please be patient as it might take time to load and download.
!function(){"use strict";var e=Math.max,t=Math.pow;const o=t(2,-32),n=32557,r=19605,a=new Uint16Array(4),s=new DataView(a.buffer),l=()=>{const e=a[0],t=a[1],s=a[2],l=a[3],d=0|33103+n*e,i=0|63335+n*t+(r*e+(d>>>16)),c=0|31614+n*s+r*t+(62509*e+(i>>>16));a[0]=d,a[1]=i,a[2]=c,a[3]=5125+n*l+(r*s+62509*t)+(22609*e+(c>>>16));const m=(l<<21)+((l>>2^s)<<5)+((s>>2^t)>>11);return o*((m>>>(l>>11)|m<<(31&-(l>>11)))>>>0)},d=(e,t=0)=>{const o=16,n=65535,r=255;for(var a,s=1540483477,l=e.length,d=t^l,i=0;4<=l;)a=((a=e[i]&r|(e[++i]&r)<<8|(e[++i]&r)<<16|(e[++i]&r)<<24)&n)*s+(((a>>>o)*s&n)<<o),d=(d&n)*s+(((d>>>o)*s&n)<<o)^(a=((a^=a>>>24)&n)*s+(((a>>>o)*s&n)<<o)),l-=4,++i;switch(l){case 3:d^=(e[i+2]&r)<<o;case 2:d^=(e[i+1]&r)<<8;case 1:d=((d^=e[i]&r)&n)*s+(((d>>>o)*s&n)<<o)}return d=((d^=d>>>13)&n)*s+(((d>>>16)*s&n)<<16),(d^=d>>>15)>>>0},i=(t,o,n)=>e(Math.min(t,n),o),c=(e,t,o)=>{e=m(e),t=m(t);for(var n=0;3>n;n++)t[n]=t[n]*o+e[n]*(1-o);return a=i(~~(r=t)[0],0,255),s=i(~~r[1],0,255),"#"+(i(~~r[2],0,255)|s<<8|a<<16|16777216).toString(16).slice(1);var r,a,s},m=e=>{var t=e.replace("#","");3===t.length&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);var o=parseInt(t,16);return[o>>16,255&o>>8,255&o]},h=[{Name:"#1",Colors:["#03071e","#2d2a32"],Mono:"#F2EFDE"},{Name:"#8",Colors:["#1A4AA1","#F26642","#FFFFFF","#81368F","#E4202A","#AFDBF5","#017D59","#FCD009"],Mono:"#E3EAEA"},{Name:"#9",Colors:["#3185B0","#C3EAEA","#DEDEDE","#769b49","#F1983F","#DDB90C","#D41A08","#071539"],Mono:"#DEDEDE"},{Name:"#2",Colors:["#5ABAD9","#d86c66","#FF977D","#AEC2C1"],Mono:"#E4E3DE"},{Name:"#3",Colors:["#3d5a80","#7fc6f0","#fe938c","#ee6c4d","#293241","#fed766"],Mono:"#ffd7cc"},{Name:"#4",Colors:["#f94e4e","#2f9be1","#70a538"],Mono:"#DFDAD7"},{Name:"#5",Colors:["#C0559D","#EABA00","#118CC5"],Mono:"#CAC8C6"},{Name:"#6",Colors:["#0189AD","#C6693D","#EDE2B1"],Mono:"#cEcEc9"},{Name:"#7",Colors:["#85BAD1","#abd8c8","#E59D8A","#E7B5D2","#F6d26F"],Mono:"#a0a0b5"}],x=(e,t,o)=>{let n=t,r=o,a=[],s=.01*n,l=.01*r,d=random([.075,random(.05,.25)]),i=random([.075,random(.05,.25)]),c=random([.075,random(.05,.25)]),m=random([.075,random(.05,.25)]),h={min:createVector(d,c),max:createVector(n-d,r-c),fhex:random(palette.Colors)},x={min:createVector(-i,-m),max:createVector(n+i,r+m),fhex:random(palette.Colors)};const u=e.round(e.random(4,8));return f(a,h,s,l,0,u),doublelayer&&f(a,x,10*s,10*l,0,2,!0),a},f=(e,t,o,n,r,a,s=!1)=>{const l=t.max.x-t.min.x,d=t.max.y-t.min.y;if(r===a)return void e.push(t);if(l<2*o||d<2*n)return void e.push(t);let i={},c={};const m=e=>{let n=random(t.min.x+o,t.max.x-o);e&&(n=t.min.x+l/2),i={min:t.min,max:createVector(n,t.max.y),fhex:random(palette.Colors),double:s},c={min:createVector(n,t.min.y),max:t.max,fhex:random(palette.Colors),double:s}},h=e=>{let o=random(t.min.y+n,t.max.y-n);e&&(o=t.min.y+d/2),i={min:t.min,max:createVector(t.max.x,o),fhex:random(palette.Colors),double:s},c={min:createVector(t.min.x,o),max:t.max,fhex:random(palette.Colors),double:s}};"alternate"===gridStyle?0==r%2?(m(!0),h()):(h(!0),m()):"regular"===gridStyle?l>d?m(!0):h(!0):"normal"===gridStyle?l>d?m():h():"column"===gridStyle?2>r&.5<random()?h(!0):m():"row"===gridStyle&&(2>r&.5<random()?m(!0):h()),f(e,i,o,n,50>e.length||.2<random()?r+1:a,a,s),f(e,c,o,n,50>e.length||.2<random()?r+1:a,a,s)},u=(e,t,o,n)=>e.drawingContext.isPointInPath(t,o,n),g=(t,o,n,r,a,s)=>{const l=t.drawingContext,d=b(o,.15,2);if(0===d.length)return;const{fhex:i,useGradient:m,sx:h,w:x,v:f}=n;let u=.95<random(),g=.99<random()&&!a;t.push(),t.noFill();let p=random(.5,20);u&&(p=random(5,150)),g&&!s&&(p=random(100,400));let y=sw*p,v=random(palette.Colors);.25<random()&&!s&&l.setLineDash([sw*random(20,200),50*sw]),t.strokeWeight(y),t.strokeCap(PROJECT),t.strokeJoin(ROUND);let C=c(i,v,map(o[0].x,h,h+x,0,1,!0)),D=c(palette.Mono,bgColor,map(o[0].y,0,height,0,.5,!0));(E=l.createLinearGradient(o[0].x,o[0].y,o[o.length-1].x,o[o.length-1].y)).addColorStop(0,C+"99"),E.addColorStop(1,D),l.strokeStyle=m?E:C+"99",t.push(),t.strokeWeight(y+e(20*sw,y*(g?0:.5))),t.blendMode(BLEND),l.translate(-5e3,0),l.shadowColor=bgColor,l.shadowBlur=0,l.shadowOffsetX=5e3*pixelDensity(),l.strokeStyle=i,t.translate(o[0].x,o[0].y),t.translate(-o[0].x,-o[0].y),w(t,d,.5,1),t.pop(),t.push(),t.blendMode(BLEND),.25<random()&&(l.shadowColor=.5<random()?palette.Mono:random(palette.Colors),l.shadowBlur=random(2),l.shadowOffsetX=.5<random()?-10*sw:10*sw,l.shadowOffsetY=.5<random()?-10*sw:10*sw);const S=random(.5,1);if(w(t,d,0,0),t.pop(),i!==bgColor&&(t.push(),t.blendMode(random([SOFT_LIGHT,BLEND])),w(t,d,.5,S),t.pop()),r){const e=random(3e3);var E;t.push(),t.blendMode("#1f1f1f"==bgColor?SCREEN:BLEND),t.stroke(i+("#1f1f1f"==bgColor?"33":"11")),t.fill(i+"33"),(E=l.createRadialGradient(d[0|int(d.length/2)].x,d[0|int(d.length/2)].y,0,d[0|int(d.length/2)].x*random(.95,1.05),d[0|int(d.length/2)].y*random(.95,1.05),e/2*sw)).addColorStop(0,i+("#1f1f1f"==bgColor?"88":"11")),E.addColorStop(1,bgColor+"11"),l.fillStyle=E,t.circle(d[0|int(d.length/2)].x,d[0|int(d.length/2)].y,e*sw),t.pop()}t.pop()},w=(e,t,o=0,n=2)=>{e.beginShape(),e.vertex(t[0].x,t[0].y);for(var r=0;r<t.length-1;r++){let x=map(r,-t.length/10,t.length,o,n,!0);var a=0<r?t[r-1]:t[0],s=t[r],l=t[r+1],d=r==t.length-2?l:t[r+2],i=s.x+(l.x-a.x)/6*x,c=s.y+(l.y-a.y)/6*x,m=l.x-(d.x-s.x)/6*x,h=l.y-(d.y-s.y)/6*x;e.bezierVertex(i,c,m,h,l.x,l.y)}e.endShape()},p=(e,t,o)=>e*(1-o)+t*o,y=(e,t,o)=>[{x:p(e.x,t.x,o),y:p(e.y,t.y,o)},{x:p(t.x,e.x,o),y:p(t.y,e.y,o)}],b=(e,t,o,n)=>{if(0===o)return e;const r=[],a=Object.keys(e),s=n?a.length:a.length-1;for(let o=0;o<s;o++){const l=e[a[o]],d=e[a[(o+1)%a.length]],i=y(l,d,t);n||0!==o?n||o!==s-1?(r.push({x:i[0].x,y:i[0].y}),r.push({x:i[1].x,y:i[1].y})):(r.push({x:i[0].x,y:i[0].y}),r.push({x:d.x,y:d.y})):(r.push({x:l.x,y:l.y}),r.push({x:i[1].x,y:i[1].y}))}return b(r,t,o-1,n)},v=(e,o,n,r,a,s)=>{let l=void 0===r?noiseScale:r,d=void 0===a?noiseScaleX:a,i=void 0===s?noiseScaleY:s;l/=sw,d/=sw,i/=sw;const c=(e,o,n)=>((e,t,o)=>noise(e*d,t*i,o*l))(e,o,n)*((e,o)=>{const n=createVector(width/2,height/2),r=min(width,height);var a=(n.copy().sub(e,o).mag()-r)/l;return 1<=a?1:-1>=a?-1:t(a,2)})(e,o);let m=sw;var h,x,f,u=m;return f=(c(e,o+u,n)-c(e,o-u,n))/(2*m*u),h=c(e+u,o,n),x=c(e-u,o,n),createVector(f,-(h-x)/(2*m*u))},C=e=>{const t=v(e.x,e.y,0,.5,.05,0).setMag(sw).mult(1);return e.add(t)},D=e=>{let t=v(e.x,e.y,0,.5,0,.05).setMag(2*sw).mult(1);return t=L(t,round(t.heading()/HALF_PI)*HALF_PI),e.add(t)},S=e=>{let t=v(e.x,e.y,0,.5,.05,0).setMag(2*sw).mult(1);return t=L(t,round(t.heading()/HALF_PI)*HALF_PI),e.add(t)},E=e=>{let t=v(e.x,e.y,0,.05,0,.05).setMag(5*sw).mult(5);return t=L(t,round(t.heading()/HALF_PI)*HALF_PI),e.add(t)},A=e=>{let t=v(e.x,e.y,0,.05,.05,0).setMag(5*sw).mult(5);return t=L(t,round(t.heading()/HALF_PI)*HALF_PI),e.add(t)},F=e=>{e.special=!0;let t=v(e.x,e.y,0,10.5,5e-4,5e-4).setMag(10*sw).mult(10);return noflow&&L(t,round(t.heading()/HALF_PI)*HALF_PI),e.add(t)},_=e=>{e.special=!0;let t=v(e.x,e.y,0,5e-4,5e-4,5e-4).setMag(15*sw).mult(noDiagonal?1e3:5);return L(t,round(t.heading()/HALF_PI*.5)*HALF_PI*.5),e.add(t)},M=e=>{e.curved=!0;const t=v(e.x,e.y,0,5e-4,5e-4,5e-4).setMag(5*sw).mult(1);return e.add(t)},L=(e,t)=>{var o=Math.sin,n=Math.cos;let r=e.mag();return e.x=r*n(t),e.y=r*o(t),e};let k="undefined"==typeof tokenData?(()=>{let e="0x";for(let t=64;0<t;--t)e+="0123456789abcdef"[~~(16*Math.random())];return e})():"string"==typeof tokenData?tokenData:tokenData.hash;const B=window;let P;B.hash=k;let R,G,I,N=new URLSearchParams(window.location.search).has("disablegrain")||!1;B.p5.RendererGL.prototype._initContext=function(){try{if(this.drawingContext=this.canvas.getContext("webgl2",this._pInst._glAttributes)||this.canvas.getContext("experimental-webgl",this._pInst._glAttributes),null===this.drawingContext)throw new Error("Error creating webgl context");{const e=this.drawingContext;e.enable(e.DEPTH_TEST),e.depthFunc(e.LEQUAL),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),this._viewport=this.drawingContext.getParameter(this.drawingContext.VIEWPORT)}}catch(e){throw e}};let H,U=null;B.setup=()=>{windowWidth<.7*windowHeight?(U=windowWidth*(1/.7),H=windowWidth):(U=windowHeight,H=.7*windowHeight),createCanvas(H,U),R=createGraphics(width,height),G=createGraphics(width,height,WEBGL),I=G.createShader("\n#ifdef GL_ES\nprecision mediump float;\n#endif\nattribute vec3 aPosition;attribute vec2 aTexCoord;varying vec2 vTexCoord;void main(){vTexCoord=aTexCoord;vec4 positionVec4=vec4(aPosition,1);positionVec4.xy=positionVec4.xy*2.-1.,gl_Position=positionVec4;}\n","\n#ifdef GL_ES\nprecision mediump float;\n#endif\nvarying vec2 vTexCoord;uniform sampler2D tex0;uniform bool u_grain;uniform float u_noise_val;float random(vec2 n,float offset){return .5-fract(sin(dot(n.xy+vec2(offset,0),vec2(12.9898,78.233)))*43758.5453);}vec3 permute2(vec3 x){return mod((x*34.+1.)*x,289.);}float snoise(vec2 v){const vec4 C=vec4(.211325,.366025,-.57735,.02439);vec2 i=floor(v+dot(v,C.yy)),x0=v-i+dot(i,C.xx),i1;i1=x0.x>x0.y?vec2(1,0):vec2(0,1);vec4 x12=x0.xyxy+C.xxzz;x12.xy-=i1,i=mod(i,289.);vec3 p=permute2(permute2(i.y+vec3(0,i1.y,1))+i.x+vec3(0,i1.x,1)),m=max(.5-vec3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.);m=m*m,m=m*m;vec3 x=2.*fract(p*C.www)-1.,h=abs(x)-.5,ox=floor(x+.5),a0=x-ox;m*=1.792843-.853735*(a0*a0+h*h);vec3 g;g.x=a0.x*x0.x+h.x*x0.y,g.yz=a0.yz*x12.xz+h.yz*x12.yw;return 130.*dot(m,g);}vec2 nD(vec2 uv){float noise=snoise(uv),l=snoise(uv*20.*mod(uv.y*.5,.25))*7.5e-4,angle=snoise(uv*2.5);vec2 offset=vec2(cos(angle)*l,sin(angle)*l);offset+=(noise-.5)/1000.,uv+=offset;return uv;}float sdc(in vec2 p,in float r){return length(p)-r;}float intrs(float shape1,float shape2){return max(shape1,shape2);}float sbtrc(float base,float subtraction){return intrs(base,-subtraction);}float blendReflect(float base,float blend){return blend==1.?blend:min(base*base/(1.-blend),1.);}vec3 blendReflect(vec3 base,vec3 blend){return vec3(blendReflect(base.r,blend.r),blendReflect(base.g,blend.g),blendReflect(base.b,blend.b));}vec3 blendGlow(vec3 base,vec3 blend){return blendReflect(blend,base);}vec3 blendGlow(vec3 base,vec3 blend,float opacity){return blendGlow(base,blend)*opacity+base*(1.-opacity);}void main(){vec2 uv=vTexCoord;uv.y=1.-uv.y;vec2 ouv=uv;uv=nD((ouv-.5)*1.+.5);vec2 dUv=nD((ouv-.5)*1.001+.5);float c=sdc(.5+vec2(.845-.7*uv.x,vTexCoord.y)-1.,.7),m=sbtrc(c,1.);vec4 ca=texture2D(tex0,uv);if(u_grain)ca+=random(dUv,5e-4)*snoise(dUv)*u_noise_val;ca.rgb*=1.-exp(-1e+4*abs(m)),ca.rgb*=.99+.75*cos(2000.*m)*.005,ca.rgb=mix(ca.rgb,texture2D(tex0,dUv).rgb,.05-smoothstep(2e-3,.05,abs(m*1.))),gl_FragColor=vec4(blendGlow(vec3(.2,.2,.2),ca.rgb,.975),1);}\n"),pixelDensity(2),G.pixelDensity(2),R.pixelDensity(2),(e=>{const t=~~((e.length-2)/2),o=[];for(let n=0;n<t;n++){const t=2+2*n;o.push(parseInt(e.slice(t,t+2),16))}const n=d(o,1690382925),r=d(o,72970470);s.setUint32(0,n),s.setUint32(4,r)})(k);const e=4294967295*l()>>>0;Math.random=l,randomSeed(e),noiseSeed(e),colorMode(HSB,360,100,100,255);const t=random(h)||h[0];B.palette=t,P=random([..."#1"==t.Name?[,,].fill("#1f1f1f"):[],...[,,,].fill("#dfdfdf"),...[,,,,].fill("#cfcfcf"),"#e1e3e5"]),B.bgColor=P;let o=random(["alternate","alternate","regular","normal","column","column","row"]);B.gridStyle=o,B.noiseScale=.005,B.noiseScaleX=.005,B.noiseScaleY=.005,B.maxScaleX=random(5e-4,.05),B.maxScaleY=random(5e-4,.05),B.allConstrained=.75<random(),B.allGradient=.9<random(),B.darkDots=.5<random(),B.showBg=.2<random(),B.noDiagonal=.8<random(),B.noflow=.125<random(),B.doublelayer=.9<random(),B.shaderNoiseAmount=random(.075,.1),B.shaderRotateY=.5<random(),B.shaderRotateX=.5<random(),B.offsetF=random([-10,50,0,25,50]),B.boxes=x(B,.7,1),B.totalBoxes=B.boxes.length,console.table({offsetF,gridStyle:o,allConstrained,allGradient,palette:t.Name,darkDots,showBg,noDiagonal,noflow,doublelayer,hash:k,total:B.boxes.length}),background(P),R.background(P),B.pts=[]},B.applyShader=e=>{G._renderer.GL,G.clear(),G.reset(),G.push(),G.shader(I),I.setUniform("tex0",e),I.setUniform("resolution",[width,height]),I.setUniform("u_grain",!N),I.setUniform("u_rotate_y",shaderRotateY),I.setUniform("u_rotate_x",shaderRotateX),I.setUniform("u_noise_val",map(height,500,5e3,.025,.15,!0)),G.rectMode(CENTER),G.noStroke(),G.rect(0,0,width,height),G.pop(),push();const t=G.elt.toDataURL();loadImage(t,(e=>{clear(),image(e,0,0,width,height)})),pop()},B.draw=()=>{render()},B.render=async()=>{let e=U,t=.5*(width-.7*e),o=.5*(height-e);B.sw=e/5e3;let n=0==B.boxes.length;B.boxes.splice(0,2).forEach((n=>{if(n){const r=T(B.totalBoxes-B.boxes.length,B.totalBoxes);((e,t,o,n,r,a)=>{const s=e.drawingContext;e.push();const l=palette.Colors[0]===bgColor?palette.Colors[1]:palette.Colors[0],d=c(l,palette.Mono,.2);e.textFont("Arial"),e.fill(d),e.stroke(bgColor),e.strokeWeight(10*sw);const i=s.createLinearGradient(600*sw,height/2+40*sw,width-800*sw,height/2+40*sw);i.addColorStop(0,bgColor),i.addColorStop(.5,d),i.addColorStop(1,bgColor),s.fillStyle=i,e.textSize(160*sw),e.textAlign(CENTER),e.text("Wired wonders, 2023",width/2,height/2),e.fill(bgColor),e.textSize(158*sw),e.stroke(d),99>a&&e.noStroke(),e.strokeWeight(map(a,0,100,0,10*sw,!0)),e.text("Wired wonders, 2023",map(a,0,100,0,width/2,!0)-sw,height/2+sw),e.pop()})(B,0,0,0,0,r),3<B.boxes.length&&.7<random()&&((e,t,o,n,r)=>{const a=t.max.x-t.min.x,s=t.max.y-t.min.y;e.stroke(t.fhex),e.blendMode(BLEND),e.strokeWeight(random(2,10)*sw),e.fill(random(palette.Colors)+"99"),e.rect(o+t.min.x*r+10*sw,n+t.min.y*r+10*sw,a*r-20*sw,s*r-20*sw)})(R,n,t,o,e),((e,t,o,n,r)=>{const a=t.max.x-t.min.x,s=t.max.y-t.min.y;((e,t,o,n,r,a=!1,s,d=!1)=>{noiseScale=random(.01,2e-4);const i=new Path2D,c=(m=random(-10,120)*sw,Math.round(1e3*m)/1e3);var m;i.rect(c,c,width-2*c,height-2*c);const h=(e=>{for(var t,o,n=e.length,r=[...e];n;)t=~~(l()*n--),o=r[n],r[n]=r[t],r[t]=o;return r})([{name:"1",func:C},{name:"2",func:D},{name:"3",func:S},{name:"4",func:E},{name:"5",func:A},{name:"6",func:F},{name:"7",func:_},{name:"8",func:M}]);let x=0;const f=random(["all",..."row"==gridStyle?[]:["right-left"],..."column"==gridStyle?[]:["top-bottom"],"all","top","bottom","left","right"]),p={sx:t,sy:o,w:n,h:r,offset:-50*sw,constrained:.85<random(),fhex:s,useGradient:allGradient||.5<random(),constrainSide:f,ofc:sw*offsetF};min(60,round(r/16/sw));for(let s=round(o/sw);s<round((o+r)/sw);s+=min(random([120,60,60]),round(r/8/sw))){const l=constrain(int(map(s,round(o/sw),round((o+r)/sw),0,7)),0,7);p.fhex=palette.Colors[l]||p.fhex,!a&&s>(o+r/2)/sw&&4>x&&(x++,p.fhex=random(palette.Colors));let d=min(random([120,60,60]),round(n/8/sw));for(let o=round(t/sw);o<round((t+n)/sw);o+=d){const t=[],n=.998<random();let r=createVector(o*sw,s*sw);for(let o=0;o<(n?550:int(random(2,16)));o++)for(let a=0;a<(n?1:max(int(random(.1*o,2*o)),1));a++){r=h[l].func(r);const o=createVector(r.x,r.y);u(e,i,r.x*pixelDensity(),r.y*pixelDensity())&&t.push(o)}if(0!==t.length&&(g(e,t,p,n,r.special,r.curved),!r.special&&!r.curved)){let o=random(2,p.constrained?50:150);e.push(),e.drawingContext.globalAlpha=.7,e.noFill(),e.drawingContext.setLineDash([1*sw,24*sw]),e.strokeCap(SQUARE),e.stroke(random(palette.Colors)),e.strokeWeight(o*sw),w(e,t,1),e.pop()}}}if(!d){e.push();let a=color(p.fhex);a.setAlpha(150),e.rectMode(CORNERS),e.blendMode(SOFT_LIGHT),e.noStroke(),e.fill(a),e.rect(t+2*p.ofc,o+2*p.ofc,t+n-2*p.ofc,o+r-2*p.ofc),e.pop()}})(e,o+t.min.x*r,n+t.min.y*r,a*r,s*r,1<boxes.length&&.5<random(),t.fhex,t.double)})(R,n,t,o,e)}})),n&&(V(),noLoop(),await applyShader(R))},B.keyPressed=()=>{if(83==keyCode&&save("wired_wonders"+k+".png"),70==keyCode){let e=fullscreen();fullscreen(!e)}};const T=(e,t)=>100*e/t,V=()=>{R.push(),R.blendMode("#1f1f1f"==P?ADD:MULTIPLY);const e=color("#1f1f1f"==P?"#f0f0f0":"#202020");e.setAlpha(200),R.stroke(e),R.strokeCap(SQUARE),R.drawingContext.setLineDash([2*sw,int(random(10,20))*sw]),R.strokeWeight(2*sw);for(let e=200;e<height/sw-200;e+=16+random(-2,2))R.line(200*sw,e*sw,width-200*sw,e*sw);R.pop()}}();
function fisherYatesShuffle(seed, array) { let currentIndex = array.length; let temporaryValue, randomIndex; while (currentIndex !== 0) { randomIndex = (seed + currentIndex) % currentIndex; currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } function generateIndices(seed, totalImages) { const array = Array.from({ length: totalImages }, (_, i) => i + 1); return fisherYatesShuffle(seed, array); } function selectImage(tokenId, totalImages = 100) { const seed = 104456; const indices = generateIndices(seed, totalImages); console.log(`tokenId: ${tokenId}`) console.log(`Selection: ${indices[tokenId % totalImages]}`) return indices[tokenId % totalImages]; } const selectedImage = selectImage(tokenData.tokenId); let img; var cnv; function preload() { img = loadImage(`https://pinata.hodlers.one/ipfs/QmadfHs2ZdRwkVB7KT4UMbkqbFaAHwpVBDTBGTz5Fdy62Z/${selectedImage}.png`); } function setup() { if( windowWidth / windowHeight <= (img.width / img.height) ){ cnv = createCanvas(windowWidth , windowWidth * (img.height / img.width) ); }else{ cnv = createCanvas(windowHeight * (img.width / img.height), windowHeight ); } cnv.style('display', 'block'); } function draw() { background(255); image(img, 0, 0, width, height); } function windowResized() { if( windowWidth / windowHeight <= (img.width / img.height) ){ resizeCanvas(windowWidth , windowWidth * (img.height / img.width) ); }else{ resizeCanvas(windowHeight * (img.width / img.height), windowHeight ); } } function keyTyped() { if (key === 's') { img.save('Whispers of Knowledge', 'png'); } }
*Whispers of Knowledge was developed in C# on Unity. Thousands of outputs were pre-rendered and co-curated with the Hodlers community. The end result was 100 highly curated pieces, hosted on IPFS.* ––– Legacy is inevitable and sacred. It embodies order, authority and truth. It is reassuring because it has outlived its time. It is a temple of knowledge, the foundation on which we build. But time passes and we forget. The world changes. Voluntarily or not, we adapt, we interpret, we rewrite. The seed is gradually corrupted. The meanings slip away. Facts become blurred. We assert wrongly, and chaos ensues. Lies become truths. History is changed. The new heritage is born, whispering it’s knowledge. In live view, press 's' to download a high resolution ( 5000px * 7000px ) version of the piece. It is a heavy file so please be patient as it might take time to load and download.
!function(){"use strict";var e=Math.max,o=Math.pow;const t=o(2,-32),n=32557,r=19605,a=new Uint16Array(4),s=new DataView(a.buffer),l=()=>{const e=a[0],o=a[1],s=a[2],l=a[3],i=0|33103+n*e,d=0|63335+n*o+(r*e+(i>>>16)),c=0|31614+n*s+r*o+(62509*e+(d>>>16));a[0]=i,a[1]=d,a[2]=c,a[3]=5125+n*l+(r*s+62509*o)+(22609*e+(c>>>16));const m=(l<<21)+((l>>2^s)<<5)+((s>>2^o)>>11);return t*((m>>>(l>>11)|m<<(31&-(l>>11)))>>>0)},i=(e,o=0)=>{const t=16,n=65535,r=255;for(var a,s=1540483477,l=e.length,i=o^l,d=0;4<=l;)a=((a=e[d]&r|(e[++d]&r)<<8|(e[++d]&r)<<16|(e[++d]&r)<<24)&n)*s+(((a>>>t)*s&n)<<t),i=(i&n)*s+(((i>>>t)*s&n)<<t)^(a=((a^=a>>>24)&n)*s+(((a>>>t)*s&n)<<t)),l-=4,++d;switch(l){case 3:i^=(e[d+2]&r)<<t;case 2:i^=(e[d+1]&r)<<8;case 1:i=((i^=e[d]&r)&n)*s+(((i>>>t)*s&n)<<t)}return i=((i^=i>>>13)&n)*s+(((i>>>16)*s&n)<<16),(i^=i>>>15)>>>0},d=(o,t,n)=>e(Math.min(o,n),t),c=(e,o,t)=>{e=m(e),o=m(o);for(var n=0;3>n;n++)o[n]=o[n]*t+e[n]*(1-t);return a=d(~~(r=o)[0],0,255),s=d(~~r[1],0,255),"#"+(d(~~r[2],0,255)|s<<8|a<<16|16777216).toString(16).slice(1);var r,a,s},m=e=>{var o=e.replace("#","");3===o.length&&(o=o[0]+o[0]+o[1]+o[1]+o[2]+o[2]);var t=parseInt(o,16);return[t>>16,255&t>>8,255&t]},h=[{Name:"Cacciola #1",Colors:["#03071e","#2d2a32"],Mono:"#F2EFDE"},{Colors:["#1A4AA1","#F26642","#FFFFFF","#81368F","#E4202A","#AFDBF5","#017D59","#FCD009"],Mono:"#E3EAEA"},{Colors:["#3185B0","#C3EAEA","#DEDEDE","#769b49","#F1983F","#DDB90C","#D41A08","#071539"],Mono:"#DEDEDE"},{Name:"Griffa #1",Colors:["#5ABAD9","#d86c66","#FF977D","#AEC2C1"],Mono:"#E4E3DE"},{Name:"Griffa #2",Colors:["#3d5a80","#7fc6f0","#fe938c","#ee6c4d","#293241","#fed766"],Mono:"#ffd7cc"},{Name:"Buren #2",Colors:["#f94e4e","#2f9be1","#70a538"],Mono:"#DFDAD7"},{Name:"Buren #1",Colors:["#C0559D","#EABA00","#118CC5"],Mono:"#CAC8C6"},{Name:"Bartolini #1",Colors:["#0189AD","#C6693D","#EDE2B1"],Mono:"#cEcEc9"},{Name:"Griffa #4",Colors:["#6DA9C9","#abd8c8","#E59D8A","#E7B5D2","#F6d26F"],Mono:"#c0c0c5"}],x=(e,o,t)=>{let n=o,r=t,a=[],s=.01*n,l=.01*r,i=random([.075,random(.05,.25)]),d=random([.075,random(.05,.25)]),c=random([.075,random(.05,.25)]),m=random([.075,random(.05,.25)]),h={min:createVector(i,c),max:createVector(n-i,r-c),fhex:random(palette.Colors)},x={min:createVector(-d,-m),max:createVector(n+d,r+m),fhex:random(palette.Colors)};const u=e.round(e.random(4,8));return f(a,h,s,l,0,u),doublelayer&&f(a,x,10*s,10*l,0,2,!0),a},f=(e,o,t,n,r,a,s=!1)=>{const l=o.max.x-o.min.x,i=o.max.y-o.min.y;if(r===a)return void e.push(o);if(l<2*t||i<2*n)return void e.push(o);let d={},c={};const m=e=>{let n=random(o.min.x+t,o.max.x-t);e&&(n=o.min.x+l/2),d={min:o.min,max:createVector(n,o.max.y),fhex:random(palette.Colors),double:s},c={min:createVector(n,o.min.y),max:o.max,fhex:random(palette.Colors),double:s}},h=e=>{let t=random(o.min.y+n,o.max.y-n);e&&(t=o.min.y+i/2),d={min:o.min,max:createVector(o.max.x,t),fhex:random(palette.Colors),double:s},c={min:createVector(o.min.x,t),max:o.max,fhex:random(palette.Colors),double:s}};"alternate"===gridStyle?0==r%2?(m(!0),h()):(h(!0),m()):"regular"===gridStyle?l>i?m(!0):h(!0):"normal"===gridStyle?l>i?m():h():"column"===gridStyle?2>r&.5<random()?h(!0):m():"row"===gridStyle&&(2>r&.5<random()?m(!0):h()),f(e,d,t,n,50>e.length||.2<random()?r+1:a,a,s),f(e,c,t,n,50>e.length||.2<random()?r+1:a,a,s)},u=(e,o,t,n)=>e.drawingContext.isPointInPath(o,t,n),g=(o,t,n,r,a,s)=>{const l=o.drawingContext,i=b(t,.15,2);if(0===i.length)return;const{fhex:d,useGradient:m,sx:h,w:x,v:f}=n;let u=.95<random(),g=.99<random()&&!a;o.push(),o.noFill();let p=random(.5,20);u&&(p=random(5,150)),g&&!s&&(p=random(100,400));let y=sw*p,v=random(palette.Colors);.25<random()&&!s&&l.setLineDash([sw*random(20,200),50*sw]),o.strokeWeight(y),o.strokeCap(PROJECT),o.strokeJoin(ROUND);let C=c(d,v,map(t[0].x,h,h+x,0,1,!0)),D=c(palette.Mono,bgColor,map(t[0].y,0,height,0,.5,!0));(E=l.createLinearGradient(t[0].x,t[0].y,t[t.length-1].x,t[t.length-1].y)).addColorStop(0,C+"99"),E.addColorStop(1,D),l.strokeStyle=m?E:C+"99",o.push(),o.strokeWeight(y+e(20*sw,y*(g?0:.5))),o.blendMode(BLEND),l.translate(-5e3,0),l.shadowColor=bgColor,l.shadowBlur=0,l.shadowOffsetX=5e3*pixelDensity(),l.strokeStyle=d,o.translate(t[0].x,t[0].y),o.translate(-t[0].x,-t[0].y),w(o,i,.5,1),o.pop(),o.push(),o.blendMode(BLEND),.25<random()&&(l.shadowColor=.5<random()?palette.Mono:random(palette.Colors),l.shadowBlur=random(2),l.shadowOffsetX=.5<random()?-10*sw:10*sw,l.shadowOffsetY=.5<random()?-10*sw:10*sw);const S=random(.5,1);if(w(o,i,0,0),o.pop(),d!==bgColor&&(o.push(),o.blendMode(random([SOFT_LIGHT,BLEND])),w(o,i,.5,S),o.pop()),r){const e=random(3e3);var E;o.push(),o.blendMode("#1f1f1f"==bgColor?SCREEN:BLEND),o.stroke(d+("#1f1f1f"==bgColor?"33":"11")),o.fill(d+"33"),(E=l.createRadialGradient(i[0|int(i.length/2)].x,i[0|int(i.length/2)].y,0,i[0|int(i.length/2)].x*random(.95,1.05),i[0|int(i.length/2)].y*random(.95,1.05),e/2*sw)).addColorStop(0,d+("#1f1f1f"==bgColor?"88":"11")),E.addColorStop(1,bgColor+"11"),l.fillStyle=E,o.circle(i[0|int(i.length/2)].x,i[0|int(i.length/2)].y,e*sw),o.pop()}o.pop()},w=(e,o,t=0,n=2)=>{e.beginShape(),e.vertex(o[0].x,o[0].y);for(var r=0;r<o.length-1;r++){let x=map(r,-o.length/10,o.length,t,n,!0);var a=0<r?o[r-1]:o[0],s=o[r],l=o[r+1],i=r==o.length-2?l:o[r+2],d=s.x+(l.x-a.x)/6*x,c=s.y+(l.y-a.y)/6*x,m=l.x-(i.x-s.x)/6*x,h=l.y-(i.y-s.y)/6*x;e.bezierVertex(d,c,m,h,l.x,l.y)}e.endShape()},p=(e,o,t)=>e*(1-t)+o*t,y=(e,o,t)=>[{x:p(e.x,o.x,t),y:p(e.y,o.y,t)},{x:p(o.x,e.x,t),y:p(o.y,e.y,t)}],b=(e,o,t,n)=>{if(0===t)return e;const r=[],a=Object.keys(e),s=n?a.length:a.length-1;for(let t=0;t<s;t++){const l=e[a[t]],i=e[a[(t+1)%a.length]],d=y(l,i,o);n||0!==t?n||t!==s-1?(r.push({x:d[0].x,y:d[0].y}),r.push({x:d[1].x,y:d[1].y})):(r.push({x:d[0].x,y:d[0].y}),r.push({x:i.x,y:i.y})):(r.push({x:l.x,y:l.y}),r.push({x:d[1].x,y:d[1].y}))}return b(r,o,t-1,n)},v=(e,t,n,r,a,s)=>{let l=void 0===r?noiseScale:r,i=void 0===a?noiseScaleX:a,d=void 0===s?noiseScaleY:s;l/=sw,i/=sw,d/=sw;const c=(e,t,n)=>((e,o,t)=>noise(e*i,o*d,t*l))(e,t,n)*((e,t)=>{const n=createVector(width/2,height/2),r=min(width,height);var a=(n.copy().sub(e,t).mag()-r)/l;return 1<=a?1:-1>=a?-1:o(a,2)})(e,t);let m=sw;var h,x,f,u=m;return f=(c(e,t+u,n)-c(e,t-u,n))/(2*m*u),h=c(e+u,t,n),x=c(e-u,t,n),createVector(f,-(h-x)/(2*m*u))},C=e=>{const o=v(e.x,e.y,0,.5,.05,0).setMag(sw).mult(1);return e.add(o)},D=e=>{let o=v(e.x,e.y,0,.5,0,.05).setMag(2*sw).mult(1);return o=L(o,round(o.heading()/HALF_PI)*HALF_PI),e.add(o)},S=e=>{let o=v(e.x,e.y,0,.5,.05,0).setMag(2*sw).mult(1);return o=L(o,round(o.heading()/HALF_PI)*HALF_PI),e.add(o)},E=e=>{let o=v(e.x,e.y,0,.05,0,.05).setMag(5*sw).mult(5);return o=L(o,round(o.heading()/HALF_PI)*HALF_PI),e.add(o)},A=e=>{let o=v(e.x,e.y,0,.05,.05,0).setMag(5*sw).mult(5);return o=L(o,round(o.heading()/HALF_PI)*HALF_PI),e.add(o)},F=e=>{e.special=!0;let o=v(e.x,e.y,0,10.5,5e-4,5e-4).setMag(10*sw).mult(10);return noflow&&L(o,round(o.heading()/HALF_PI)*HALF_PI),e.add(o)},_=e=>{e.special=!0;let o=v(e.x,e.y,0,5e-4,5e-4,5e-4).setMag(15*sw).mult(noDiagonal?1e3:5);return L(o,round(o.heading()/HALF_PI*.5)*HALF_PI*.5),e.add(o)},M=e=>{e.curved=!0;const o=v(e.x,e.y,0,5e-4,5e-4,5e-4).setMag(5*sw).mult(1);return e.add(o)},L=(e,o)=>{var t=Math.sin,n=Math.cos;let r=e.mag();return e.x=r*n(o),e.y=r*t(o),e};let k="undefined"==typeof tokenData?(()=>{let e="0x";for(let o=64;0<o;--o)e+="0123456789abcdef"[~~(16*Math.random())];return e})():"string"==typeof tokenData?tokenData:tokenData.hash;const B=window;let G;B.hash=k;let P,R,I,H=new URLSearchParams(window.location.search).has("disablegrain")||!1;B.p5.RendererGL.prototype._initContext=function(){try{if(this.drawingContext=this.canvas.getContext("webgl2",this._pInst._glAttributes)||this.canvas.getContext("experimental-webgl",this._pInst._glAttributes),null===this.drawingContext)throw new Error("Error creating webgl context");{const e=this.drawingContext;e.enable(e.DEPTH_TEST),e.depthFunc(e.LEQUAL),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),this._viewport=this.drawingContext.getParameter(this.drawingContext.VIEWPORT)}}catch(e){throw e}};let N,U=null;B.setup=()=>{windowWidth<.7*windowHeight?(U=windowWidth*(1/.7),N=windowWidth):(U=windowHeight,N=.7*windowHeight),createCanvas(N,U),P=createGraphics(width,height),R=createGraphics(width,height,WEBGL),I=R.createShader("\n#ifdef GL_ES\nprecision mediump float;\n#endif\nattribute vec3 aPosition;attribute vec2 aTexCoord;varying vec2 vTexCoord;void main(){vTexCoord=aTexCoord;vec4 positionVec4=vec4(aPosition,1);positionVec4.xy=positionVec4.xy*2.-1.,gl_Position=positionVec4;}\n","\n#ifdef GL_ES\nprecision mediump float;\n#endif\nvarying vec2 vTexCoord;uniform sampler2D tex0;uniform bool u_grain;uniform float u_noise_val;float random(vec2 n,float offset){return .5-fract(sin(dot(n.xy+vec2(offset,0),vec2(12.9898,78.233)))*43758.5453);}vec3 permute2(vec3 x){return mod((x*34.+1.)*x,289.);}float snoise(vec2 v){const vec4 C=vec4(.211325,.366025,-.57735,.02439);vec2 i=floor(v+dot(v,C.yy)),x0=v-i+dot(i,C.xx),i1;i1=x0.x>x0.y?vec2(1,0):vec2(0,1);vec4 x12=x0.xyxy+C.xxzz;x12.xy-=i1,i=mod(i,289.);vec3 p=permute2(permute2(i.y+vec3(0,i1.y,1))+i.x+vec3(0,i1.x,1)),m=max(.5-vec3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.);m=m*m,m=m*m;vec3 x=2.*fract(p*C.www)-1.,h=abs(x)-.5,ox=floor(x+.5),a0=x-ox;m*=1.792843-.853735*(a0*a0+h*h);vec3 g;g.x=a0.x*x0.x+h.x*x0.y,g.yz=a0.yz*x12.xz+h.yz*x12.yw;return 130.*dot(m,g);}vec2 nD(vec2 uv){float noise=snoise(uv),l=snoise(uv*20.*mod(uv.y*.5,.25))*7.5e-4,angle=snoise(uv*2.5);vec2 offset=vec2(cos(angle)*l,sin(angle)*l);offset+=(noise-.5)/1000.,uv+=offset;return uv;}float sdc(in vec2 p,in float r){return length(p)-r;}float intrs(float shape1,float shape2){return max(shape1,shape2);}float sbtrc(float base,float subtraction){return intrs(base,-subtraction);}float blendReflect(float base,float blend){return blend==1.?blend:min(base*base/(1.-blend),1.);}vec3 blendReflect(vec3 base,vec3 blend){return vec3(blendReflect(base.r,blend.r),blendReflect(base.g,blend.g),blendReflect(base.b,blend.b));}vec3 blendGlow(vec3 base,vec3 blend){return blendReflect(blend,base);}vec3 blendGlow(vec3 base,vec3 blend,float opacity){return blendGlow(base,blend)*opacity+base*(1.-opacity);}void main(){vec2 uv=vTexCoord;uv.y=1.-uv.y;vec2 ouv=uv;uv=nD((ouv-.5)*1.+.5);vec2 dUv=nD((ouv-.5)*1.001+.5);float c=sdc(.5+vec2(.845-.7*uv.x,vTexCoord.y)-1.,.7),m=sbtrc(c,1.);vec4 ca=texture2D(tex0,uv);if(u_grain)ca+=random(dUv,5e-4)*snoise(dUv)*u_noise_val;ca.rgb*=1.-exp(-1e+4*abs(m)),ca.rgb*=.99+.75*cos(2000.*m)*.005,ca.rgb=mix(ca.rgb,texture2D(tex0,dUv).rgb,.05-smoothstep(2e-3,.05,abs(m*1.))),gl_FragColor=vec4(blendGlow(vec3(.2,.2,.2),ca.rgb,.975),1);}\n"),pixelDensity(2),R.pixelDensity(2),P.pixelDensity(2),(e=>{const o=~~((e.length-2)/2),t=[];for(let n=0;n<o;n++){const o=2+2*n;t.push(parseInt(e.slice(o,o+2),16))}const n=i(t,1690382925),r=i(t,72970470);s.setUint32(0,n),s.setUint32(4,r)})(k);const e=4294967295*l()>>>0;Math.random=l,randomSeed(e),noiseSeed(e),colorMode(HSB,360,100,100,255);const o=random(h)||h[0];B.palette=o,G=random([..."Cacciola #1"==o.Name?[,,].fill("#1f1f1f"):[],...[,,,].fill("#dfdfdf"),...[,,,,].fill("#cfcfcf"),"#e1e3e5"]),B.bgColor=G;let t=random(["alternate","alternate","regular","normal","column","column","row"]);B.gridStyle=t,B.noiseScale=.005,B.noiseScaleX=.005,B.noiseScaleY=.005,B.maxScaleX=random(5e-4,.05),B.maxScaleY=random(5e-4,.05),B.allConstrained=.75<random(),B.allGradient=.9<random(),B.darkDots=.5<random(),B.showBg=.2<random(),B.noDiagonal=.8<random(),B.noflow=.05<random(),B.doublelayer=.9<random(),B.shaderNoiseAmount=random(.075,.1),B.shaderRotateY=.5<random(),B.shaderRotateX=.5<random(),B.offsetF=random([-10,50,0,25,50]),B.boxes=x(B,.7,1),B.totalBoxes=B.boxes.length,console.table({offsetF,gridStyle:t,allConstrained,allGradient,palette:o.Name,darkDots,showBg,noDiagonal,noflow,doublelayer,hash:k,total:B.boxes.length}),background(G),P.background(G),B.pts=[]},B.applyShader=e=>{R._renderer.GL,R.clear(),R.reset(),R.push(),R.shader(I),I.setUniform("tex0",e),I.setUniform("resolution",[width,height]),I.setUniform("u_grain",!H),I.setUniform("u_rotate_y",shaderRotateY),I.setUniform("u_rotate_x",shaderRotateX),I.setUniform("u_noise_val",map(height,500,5e3,.025,.15,!0)),R.rectMode(CENTER),R.noStroke(),R.rect(0,0,width,height),R.pop(),push();const o=R.elt.toDataURL();loadImage(o,(e=>{clear(),image(e,0,0,width,height)})),pop()},B.draw=()=>{render()},B.render=async()=>{let e=U,o=.5*(width-.7*e),t=.5*(height-e);B.sw=e/5e3;let n=0==B.boxes.length;B.boxes.splice(0,2).forEach((n=>{if(n){const r=T(B.totalBoxes-B.boxes.length,B.totalBoxes);((e,o,t,n,r,a)=>{const s=e.drawingContext;e.push();const l=palette.Colors[0]===bgColor?palette.Colors[1]:palette.Colors[0],i=c(l,palette.Mono,.2);e.textFont("Arial"),e.fill(i),e.stroke(bgColor),e.strokeWeight(10*sw);const d=s.createLinearGradient(600*sw,height/2+40*sw,width-800*sw,height/2+40*sw);d.addColorStop(0,bgColor),d.addColorStop(.5,i),d.addColorStop(1,bgColor),s.fillStyle=d,e.textSize(160*sw),e.textAlign(CENTER),e.text("Wired wonders, 2023",width/2,height/2),e.fill(bgColor),e.textSize(158*sw),e.stroke(i),99>a&&e.noStroke(),e.strokeWeight(map(a,0,100,0,10*sw,!0)),e.text("Wired wonders, 2023",map(a,0,100,0,width/2,!0)-sw,height/2+sw),e.pop()})(B,0,0,0,0,r),3<B.boxes.length&&.7<random()&&((e,o,t,n,r)=>{const a=o.max.x-o.min.x,s=o.max.y-o.min.y;e.stroke(o.fhex),e.blendMode(BLEND),e.strokeWeight(random(2,10)*sw),e.fill(random(palette.Colors)+"99"),e.rect(t+o.min.x*r+10*sw,n+o.min.y*r+10*sw,a*r-20*sw,s*r-20*sw)})(P,n,o,t,e),((e,o,t,n,r)=>{const a=o.max.x-o.min.x,s=o.max.y-o.min.y;((e,o,t,n,r,a=!1,s,i=!1)=>{noiseScale=random(.01,2e-4);const d=new Path2D,c=(m=random(-10,120)*sw,Math.round(1e3*m)/1e3);var m;d.rect(c,c,width-2*c,height-2*c);const h=(e=>{for(var o,t,n=e.length,r=[...e];n;)o=~~(l()*n--),t=r[n],r[n]=r[o],r[o]=t;return r})([{name:"1",func:C},{name:"2",func:D},{name:"3",func:S},{name:"4",func:E},{name:"5",func:A},{name:"6",func:F},{name:"7",func:_},{name:"8",func:M}]);let x=0;const f=random(["all",..."row"==gridStyle?[]:["right-left"],..."column"==gridStyle?[]:["top-bottom"],"all","top","bottom","left","right"]),p={sx:o,sy:t,w:n,h:r,offset:-50*sw,constrained:.85<random(),fhex:s,useGradient:allGradient||.5<random(),constrainSide:f,ofc:sw*offsetF};min(60,round(r/16/sw));for(let s=round(t/sw);s<round((t+r)/sw);s+=min(random([120,60,60]),round(r/8/sw))){const l=constrain(int(map(s,round(t/sw),round((t+r)/sw),0,7)),0,7);p.fhex=palette.Colors[l]||p.fhex,!a&&s>(t+r/2)/sw&&4>x&&(x++,p.fhex=random(palette.Colors));let i=min(random([120,60,60]),round(n/8/sw));for(let t=round(o/sw);t<round((o+n)/sw);t+=i){const o=[],n=.998<random();let r=createVector(t*sw,s*sw);for(let t=0;t<(n?550:int(random(2,16)));t++)for(let a=0;a<(n?1:max(int(random(.1*t,2*t)),1));a++){r=h[l].func(r);const t=createVector(r.x,r.y);u(e,d,r.x*pixelDensity(),r.y*pixelDensity())&&o.push(t)}if(0!==o.length&&(g(e,o,p,n,r.special,r.curved),!r.special&&!r.curved)){let t=random(2,p.constrained?50:150);e.push(),e.drawingContext.globalAlpha=.7,e.noFill(),e.drawingContext.setLineDash([1*sw,24*sw]),e.strokeCap(SQUARE),e.stroke(random(palette.Colors)),e.strokeWeight(t*sw),w(e,o,1),e.pop()}}}if(!i){e.push();let a=color(p.fhex);a.setAlpha(150),e.rectMode(CORNERS),e.blendMode(SOFT_LIGHT),e.noStroke(),e.fill(a),e.rect(o+2*p.ofc,t+2*p.ofc,o+n-2*p.ofc,t+r-2*p.ofc),e.pop()}})(e,t+o.min.x*r,n+o.min.y*r,a*r,s*r,1<boxes.length&&.5<random(),o.fhex,o.double)})(P,n,o,t,e)}})),n&&(V(),noLoop(),await applyShader(P))},B.keyPressed=()=>{if(83==keyCode&&save("wired_wonders"+k+".png"),70==keyCode){let e=fullscreen();fullscreen(!e)}};const T=(e,o)=>100*e/o,V=()=>{P.push(),P.blendMode("#1f1f1f"==G?ADD:MULTIPLY);const e=color("#1f1f1f"==G?"#f0f0f0":"#202020");e.setAlpha(200),P.stroke(e),P.strokeCap(SQUARE),P.drawingContext.setLineDash([2*sw,int(random(10,20))*sw]),P.strokeWeight(2*sw);for(let e=200;e<height/sw-200;e+=16+random(-2,2))P.line(200*sw,e*sw,width-200*sw,e*sw);P.pop()}}();
I was a kid of the 80s, and like many of my generation, I loved arcade games. What made it even more special was that my father worked as an operator in the Arcade industry. Sometimes the malfunctioning machines were just dismissed, but other times these were brought to the workshop to be analyzed and repaired. One of my most vivid childhood memories is spending entire days surrounded by old motherboards of arcades and pinball machines, components, and spare parts, exploring how they were working while my father tried to fix them up. This project is my nostalgic, abstract tribute to those chaotic tangles of plastics, buttons, switches, and electric cables that ignited my fascination for technology, which was appearing chaotic yet colorful, alive, and full of wonder in my eyes at that time.
const hash=tokenData.hash,ID=parseFloat(tokenData.tokenId)%1e3,initPRNG=()=>Uint32Array.from([0,0,0,0].map(((e,n)=>parseInt(hash.substr(8*n+2,8),16))));let xS=initPRNG();const prng=e=>{let n,r=xS[3];return xS[3]=xS[2],xS[2]=xS[1],xS[1]=n=xS[0],r^=r<<11,r^=r>>>8,xS[0]=r^n^n>>>19,Math.floor(e*(xS[0]/4294967296))},prand=(e,n)=>e+prng(n-e),fract=e=>e-Math.floor(e),PI=Math.PI,D2G=Math.PI/180,G2D=180/Math.PI,RATIO=9/16,DW=2400,DH=Math.round(1350);let WIDTH,HEIGHT,scene,graphics,graphics2,decals,ani,LW,PD=1,F=setF(),NX=0,stop=!1,initTime=0;function setup(){createCanvas(DW,DH),noiseSeed(1),PD=pixelDensity(1),colorMode(HSB,360,100,100,100),canvasResize(),scene=makeGraphics(DW,DH),sc2=makeGraphics(1584,.66*DH),graphics=makeGraphics(DW,DH),graphics2=makeGraphics(DW,DH),decals=makeGraphics(DW,DH),ani=makeGraphics(DW,DH),resetScene(),document.addEventListener("dblclick",(e=>{ndv()}))}function draw(){drawingContext.imageSmoothingEnabled=!0,background(F.HUE,20,100);for(let e=0;e<10;e++)LW.move(),LW.display(),addNoise();scene.background(F.HUE,20,F.BW||F.BBG?0:100),scene.image(graphics,0,0),F.burn?(scene.blendMode(BURN),scene.image(graphics2,0,0)):(scene.blendMode(MULTIPLY),scene.image(graphics,0,0)),scene.blendMode(SOFT_LIGHT),scene.image(decals,0,0),scene.blendMode(BLEND),imageMode(CENTER),rectMode(CENTER),push(),translate(width/2,height/2),image(scene,0,0,1.1*WIDTH,1.1*HEIGHT),F.BW&&(noStroke(),blendMode(OVERLAY),fill(0,0,100,80),rect(0,0,width,height)),pop(),stop||0!=LW.walkers.length||(stop=!0)}function ndv(){noiseSeed(floor(1e8*Math.random())),resetScene()}function keyPressed(){if(stop&&("s"==key||"S"==key)){let e=makeGraphics(DW,DH);e.imageMode(CENTER),e.push(),e.translate(1200,DH/2),e.image(scene,0,0,2640,1.1*DH),F.BW&&(e.noStroke(),e.blendMode(OVERLAY),e.fill(0,0,100,80),e.rect(0,0,e.width,e.height)),e.pop(),e.save("renaissance.png")}"r"!=key&&"R"!=key||ndv()}function windowResized(){canvasResize()}function setF(){for(let e=0;e<500;e++)prng(2);let e=1200+prand(-1,2)*DW*.66,n=DH/2+prand(-1,2)*DH*.66;prng(5)||(e=1200,n=DH/2);let r=1200==e&&n==DH/2,a=0,t=0;prng(3)||(prng(2)||(a=prand(-5,6)/10),prng(2)||(t=prand(-5,6)/5));let i=Math.PI/prand(2,6);return{density:prand(3,7),sides:[2,2,3,3,4,4,6,8,60][prng(9)],branchAngleA:i,branchAngleB:-i,vgiro:(prng(2),.1),rotation:prng(9)*Math.PI/4,offset:!prng(10),shadow:1.5,nz:1e-4*(r?10:prand(1,11)),zoom:[15,30,45][prng(3)],vgGradient:prng(10),cooldown:[0,10,50,150][prng(4)],RAG:prng(2)?5e4:50,BBG:prng(3),BW:!prng(20),HUE:prng(360),HUE2:(250+prng(100))%360,polygon:4,burn:!prng(3),stripe:[10,60,90][prng(3)],hasCenter:prng(5),centerX:e,centerY:n,centerAngle:prand(0,5)*Math.PI/8,centerSides:300,gravityX:a,gravityY:t}}function resetScene(){xS=initPRNG(),NX=0,F=setF(),initTime=millis(),stop=!1,ani.clear(),decals.clear(),graphics2.clear(),graphics.clear(),ani.background(F.HUE,14,100),LW=new NWList(graphics);for(let e=0;e<DW;e+=60){let n=prng(DH);LW.add(e,n,-1)}if(1200==F.centerX&&F.centerY==DH/2)for(let e=0;e<10;e++)LW.add(1200,DH/2,-1)}function canvasResize(){let e=window.innerWidth,n=window.innerHeight;e<n/RATIO?(HEIGHT=n,WIDTH=n/RATIO):(WIDTH=e,HEIGHT=e*RATIO),resizeCanvas(window.innerWidth,window.innerHeight)}function makeGraphics(e,n){let r=createGraphics(e,n);return r.drawingContext.imageSmoothingEnabled=!0,r.pixelDensity(1),r.colorMode(HSB,360,100,100,100),r.clear(),r.rectMode(CENTER),r}function drawLights(){decals.rectMode(CENTER),decals.noStroke(),decals.fill(F.HUE2,10,100,15);for(let e=0;e<50;e++){let e=prand(50,200),n=(prand(50,500),prng(DW)),r=prng(DH);decals.rect(n,r,e,DH)}}function addNoise(){let e=NX,n=0;for(decals.strokeWeight(1.5);n<DH;)prng(5)&&(bri=100*noise(.01*e,.01*n),decals.stroke(F.HUE,0,10,70),decals.point(e,n)),n+=12*noise(.01*e,.01*n);NX+=2}class NWList{constructor(s){this.g=s,this.walkers=[],this.w=DW,this.h=DH}add(s,t,e=-1){-1==e&&(e=prng(360)*Math.PI/180);let l=new NoiseWalker(this,this.g,s,t,e);this.walkers.push(l)}move(){for(let s=0;s<this.walkers.length;s++)this.walkers[s].move();for(let s=this.walkers.length-1;s>=0;s--)this.walkers[s].alive||this.walkers.splice(s,1)}display(){for(let s=0;s<this.walkers.length;s++)this.walkers[s].display()}}class NoiseWalker{constructor(s,i,t,h,e=-1){this.swarm=s,this.g=i,this.x=t,this.y=h,this.W=i.width,this.H=i.height,this.speed=1,this.angle=e,this.targetAngle=e,this.life=0,this.lifespan=F.density*prand(100,500),this.alive=!0,this.offset=F.offset?prng(1e5):0,this.nz=F.nz,this.vgiro=F.vgiro,this.sides=F.sides,this.rot=F.rotation,this.gx=F.gravityX,this.gy=F.gravityY,this.grow=.6,this.cooldown=F.cooldown}move(){switch(this.life++,this.x+=cos(this.angle)*this.speed,this.y+=sin(this.angle)*this.speed,this.x+=this.gx*this.speed,this.y+=this.gy*this.speed,(this.x>this.W||this.x<0)&&(this.x=(this.x+this.W)%this.W,this.y=prng(this.H)),(this.y>this.H||this.y<0)&&(this.x=prng(this.W),this.y=(this.y+this.H)%this.H),F.vgGradient){case 1:this.vgiro=max(0,map(abs(this.x-DW/2),0,.5*DW,.1,-.1));break;case 2:this.vgiro=max(0,map(abs(this.x-DW/2),0,.5*DW,-.1,.1));break;case 3:this.vgiro=max(0,map(this.x,0,DW,-.05,.1));break;case 4:this.vgiro=max(0,map(this.x,0,DW,.1,-.05));break;case 5:this.vgiro=max(0,map(this.y,0,DH,-.05,.1));break;case 6:this.vgiro=max(0,map(this.y,0,DH,.1,-.05));break;case 7:this.vgiro=max(.01,map(dist(this.x,this.y,DW/2,DH/2),0,.8*DH,.1,-.1));break;case 8:this.vgiro=max(.01,map(dist(this.x,this.y,DW/2,DH/2),0,.8*DH,-.1,.1));break;default:break}if(F.hasCenter){if(dist(this.x,this.y,F.centerX,F.centerY)>200){let s=G2D*(atan2(this.y-F.centerY,this.x-F.centerX)+F.centerAngle);s=floor(s/(360/F.centerSides))*(360/F.centerSides),this.rot=s*D2G}}if(!prng(200)&&this.lifespan-this.life>10&&this.swarm.walkers.length<200){let s=new NoiseWalker(this.swarm,this.g,this.x,this.y,this.angle+F.branchAngleA);s.lifespan=(this.lifespan-this.life)*this.grow,this.swarm.walkers.push(s),s=new NoiseWalker(this.swarm,this.g,this.x,this.y,this.angle+F.branchAngleB),s.lifespan=(this.lifespan-this.life)*this.grow,this.swarm.walkers.push(s);let i=floor(100*noise(.006*this.x,.006*this.y)+F.HUE)%360,t=450;this.g.blendMode(F.BW?HARD_LIGHT:ADD),this.g.noStroke(),F.BW?this.g.fill(i,0,0,2):this.g.fill(i,60,50,3),this.g.ellipse(this.x,this.y,t,t),this.g.blendMode(BLEND)}if(this.cooldown<=0){let s=this.sides;this.targetAngle=this.rot+floor(map(noise((this.life+this.offset)*this.nz),0,1,0,2*s))*TWO_PI/s,this.targetAngle>TWO_PI?this.targetAngle-=TWO_PI:this.targetAngle<0&&(this.targetAngle+=TWO_PI),this.angle>TWO_PI?this.angle-=TWO_PI:this.angle<0&&(this.angle+=TWO_PI),this.targetAngle-this.angle>PI?this.targetAngle-=TWO_PI:this.targetAngle-this.angle<-PI&&(this.targetAngle+=TWO_PI),abs(this.targetAngle-this.angle)<=this.vgiro?this.angle=this.targetAngle:this.angle+=Math.sign(this.targetAngle-this.angle)*this.vgiro}else this.cooldown--}display(){let s=min(350,map(max(this.life,0),0,this.lifespan,10+this.lifespan/F.zoom,1));if(this.life<this.lifespan){if(this.g.push(),this.g.translate(this.x,this.y),this.g.strokeWeight(4),this.g.stroke(F.HUE,F.BW?0:100,prand(15,30),F.BW?30:20),this.life%2==0&&this.g.line(0,0,0,10+s*F.shadow),s>F.RAG&&this.g.scale(map(floor(this.life)%s,0,s-1,.75,1)),this.life%1==0){this.g.fill(F.HUE2,0,F.BW?0:min(F.stripe,map(this.life,0,100,0,F.stripe))),this.g.noStroke();let i=1.1,t=.3;this.g.rect(0,0,s*i,s*t),this.g.rect(0,0,s*t,s*i)}this.g.stroke(F.HUE,90,0,F.BW?5:10),this.g.strokeWeight(4),this.g.fill(F.HUE,0,200),this.g.rect(0,0,s,s),this.g.noStroke(),this.g.fill(F.HUE,0,10),this.g.rect(0,0,s-4,s-4),this.g.pop(),graphics2.push(),graphics2.translate(this.x,this.y),graphics2.stroke(F.HUE2+40*noise(.01*this.life),F.BW?0:35,F.BW?60:100,100),graphics2.strokeWeight(2),graphics2.noFill(),graphics2.rect(0,0,s-4,s-4),graphics2.pop()}else this.alive=!1}}
***Renaissance*** invites you to think about the process of growing back or regenerating after a period of loss or damage. It suggests the idea of new growth and renewal that is fueled by the energy released during the period of change. We see this in the world today. Abandoned cities after a catastrophe where nature claims the territory invading buildings and cracking structures. Or in a more intimate way, the energy that drives us to recover and rebuild after a loss. Renaissance always propels life forward, overcoming destruction. Without destruction, there is no room for new life. **Motivation** It’s all about two main concepts: Energy and transformation. The idea that life prevails even after the worst catastrophes made me imagine a scenario where a new form of life could emerge over the ruins and chaos, fueled by an enigmatic source of energy. The science fiction lover in me began to imagine an alien world where strange pseudo-organic forms started to emerge from the remnants of an abandoned structure, pushed forward by some mysterious energy source. On the other hand the romantic guy in me thinks of it as a regeneration period after a loss fueled by energy and motivation. A chaotic period full of emotions and encountered feelings. **Aesthetics** Renaissance is a collection where experimentation with light and movement has guided the creative process. An exploration of a visual territory where light and composition serve the initial concept: Energy and transformation. A convoluted system of pseudo-organic forms emerging over a more rigid and artificial structure represents the transformation, or the duality of destruction and life. Saturated colors, flash lights, and high contrast are used to illustrate the concept of energy driving and feeding the whole system. A composition where the strength lies in the light and the movement, enhances the idea of a world that is alive and constantly changing and regenerating. Through the creation of a pseudo-abstract work, the viewer is invited to envision various scenarios where transformation takes place: Science-fiction universes, unconventional architectural forms, or even fantastical botanical landscapes. **Animation** The animation has been added to enhance the rendering process of the final piece. It adds context to the work by presenting the transformation process in two phases: the creation of a chaotic state that gradually becomes organized and culminates in a final explosion of light and color to celebrate the emergence of a new life. **Non deterministic variations** In this project, the possibility for the viewer to interact with the artwork and generate non-deterministic variations is added. While the initial output is always the same, double-clicking or pressing 'R' reconstructs the piece by randomly modifying certain aspects of how the process of emergence occurs. This offers an opportunity to explore the algorithm within the scope of the minted piece, engaging the audience in the process of discovery and experimentation. I'm pleased to share with the viewer the feeling of exploration and discovery that artists experience when creating our collections. **Final words** The title 'Renaissance' means regeneration or being born again, but it also connects us with a period in history where there was a renewed interest in art and a burst of creativity. In a way, we are experiencing a second renaissance, this time focused on digital art. This collection aims to awaken the curiosity and imagination of the viewer, making them wonder: What is happening here? and hopefully communicate a positive message: There’s a new life when you find the energy and motivation. By adding non-deterministic variations, the viewer is encouraged to interact and better appreciate the beauty of the created artwork, making them part of the creation process. I hope you enjoy Renaissance.
const t=document,i=window,e=Math,s=e.PI,r=2*s,a=i.devicePixelRatio>1.5?i.devicePixelRatio:1;let h=i.innerWidth/a,n=i.innerHeight/a,o=e.min(h,n);function l(t,i,s){return e.max(i,e.min(t,s))}function c(t,i,e,s,r){return s+(r-s)*(t-i)/(e-i)}function f(t=[],i){let s=e.hypot(...t);t.forEach(((e,r)=>t[r]=s?e/s*i:0))}function d(t,i,e){let s=l((e-t)/(i-t),0,1);return s*s*(3-2*s)}function u(t,i,s,r){let a=parseInt(t.substring(1,3),16),h=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16),[o,l,c]=p(a,h,n);return o=(o+i)%360,l=e.min(l+s,100),c=e.min(c+r,100),`hsl(${o},${l}%,${c}%)`}function p(t,i,s){t/=255,i/=255,s/=255;let r=e.min(t,i,s),a=e.max(t,i,s),h=a-r,n=0,o=0,l=0;return n=0==h?0:a==t?(i-s)/h%6:a==i?(s-t)/h+2:(t-i)/h+4,n=(60*n+360)%360|0,l=(a+r)/2,o=0==h?0:h/(1-e.abs(2*l-1)),o=+(100*o).toFixed(1),l=+(100*l).toFixed(1),[n,o,l]}class m{constructor(){this.useA=!1;let t=function(t){let i=parseInt(t.substring(0,8),16),e=parseInt(t.substring(8,16),16),s=parseInt(t.substring(16,24),16),r=parseInt(t.substring(24,32),16);return function(){i|=0,e|=0,s|=0,r|=0;let t=(i+e|0)+r|0;return r=r+1|0,i=e^e>>>9,e=s+(s<<3)|0,s=s<<21|s>>>11,s=s+t|0,(t>>>0)/4294967296}};this.prngA=new t(tokenData.hash.substring(2,34)),this.prngB=new t(tokenData.hash.substring(34,66));for(let t=0;t<1e6;t+=2)this.prngA(),this.prngB()}D(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}N(t,i){return t+(i-t)*this.D()}I(t,i){return 0|this.N(t,i+1)}B(t){return this.D()<t}}const g=new m;class v{constructor(t,i,s,a,l,c,f,d,p,m,v,A){let b=g.D(),E=r*b,S=h/n;this.P=new Float32Array([[.5,.5],[1/S*e.cos(E)*.5*v/w+.5,.5*e.sin(E)*v/w+.5],[1/S*e.cos(E)*1/1.5*v/w,1*e.sin(E)/1.5*v/w],[b,g.D()],[b,.5],[.5,b],[b,1/(w-C)*(v-C+.5)],[b,(g.B(.5)?-1:1)*b],[1/(w-C)*(v-C+.5),b]][iDM]),this.rG=A,this.V=new Float32Array([g.N(-1e-6,1e-6),g.N(-1e-6,1e-6)]),this.A=new Float32Array([0,0]),this.mS=t,this.mSS=this.mS,this.mF=i,this.bs=s,this.bc=a,this.ba=l,this.pS=c,this.pC=f,this.pA=d,this.c=p,this.lc1=u(this.c,15,10,5),this.lc2=u(this.c,30,10,10),this.dc1=u(this.c,-10,15,-5),this.dc2=u(this.c,-20,15,-10),this.R=m,this.RB=m,this.RO=o*g.N(0,g.D())*.005,this.vis=0,this.g=v,this.an=g.D(r)}E(){this.P[0]=(this.P[0]+1)%1,this.P[1]=(this.P[1]+1)%1}AL(t){let i=this.pS,s=[0,0],r=0;for(let a of t){let[t,h]=a.P,[n,o]=this.P;if(e.abs(t-n)<=i&&e.abs(h-o)<=i){if(e.hypot(n-t,o-h)<=i&&a!=this){let t=B[this.g][a.g].a;s.forEach(((i,e,s)=>s[e]+=a.V[e]*t)),r++}}}return r>0&&(s.forEach(((t,i,e)=>e[i]=e[i]/r*this.mS-this.V[i])),f(s,this.mF)),s}CO(t){this.A=[-(this.P[0]-G[0]),-(this.P[1]-G[1])],f(this.A,this.mF*t)}CG(t,i){this.A=[-(this.P[0]-G[0]),-(this.P[1]-G[1])];let s=e.hypot(this.P[0]-G[0],this.P[1]-G[1])*i;f(this.V,this.mS/s),f(this.A,this.mF*t)}EX(){this.V=[5*g.N(-1,1),5*g.N(-1,1)],f(this.V,2*this.mS)}COH(t){let i=this.pC,s=[0,0],r=0;for(let a of t){let[t,h]=a.P,[n,o]=this.P;if(e.abs(t-n)<=i&&e.abs(h-o)<=i){if(e.hypot(n-t,o-h)<=i&&a!=this){let t=B[this.g][a.g].c;s.forEach(((i,e,s)=>s[e]+=a.P[e]*t)),r++}}}return r>0&&(s=s.map(((t,i,e)=>(t/r-this.P[i])*this.mS-this.V[i])),f(s,this.mF)),s}SE(t){let i=this.pA,s=[0,0],r=0;for(let a of t){let[t,h]=a.P,[n,o]=this.P;if(e.abs(t-n)<=i&&e.abs(h-o)<=i){let l=e.hypot(n-t,o-h);if(l<i&&a!==this){let[i,e]=[(n-t)/l,(o-h)/l],c=B[this.g][a.g].s;s=s.map(((t,s)=>t+[i,e][s]*c)),r++}}}return r>0&&(s.forEach(((t,i,e)=>e[i]=e[i]/r*this.mS-this.V[i])),f(s,this.mF)),s}F(t){let i=this.AL(t),e=this.COH(t),s=this.SE(t);this.A.forEach(((t,r,a)=>a[r]=this.bs*s[r]+this.bc*e[r]+this.ba*i[r]))}U(){this.P[0]+=this.V[0],this.P[1]+=this.V[1],this.V[0]+=this.A[0],this.V[1]+=this.A[1],f(this.V,this.mS)}SH(){let t=this.R,i=o/100,[s,a]=[this.P[0]*h|0,this.P[1]*n|0];t*=e.min(s<=i?s/i:1,s>=h-i?(h-s)/i:1,a<=i?a/i:1,a>=n-i?(n-a)/i:1),this.R+=this.RO,this.R>2*this.RB&&(this.R=this.RB);const l=F.createRadialGradient(s,a,0,s,a,this.R);this.g<y?(l.addColorStop(0,this.c+"25"),l.addColorStop(.2,this.c+"17"),l.addColorStop(1,this.c+"00")):(l.addColorStop(0,this.lc1),l.addColorStop(.01,this.c),l.addColorStop(.1,this.c+"17"),l.addColorStop(1,this.c+"00")),F.beginPath(),F.arc(s,a,e.abs(t),0,r),F.fillStyle=l,F.globalAlpha=this.vis,F.fill(),F.closePath();let c=o/250;if(c>=1&&this.g>y-1&&g.B(.5)){let t=e.abs(this.RB/7),i=t*e.sin(this.an),r=t*e.cos(this.an);this.an+=.01,F.fillStyle=this.lc1,F.fillRect(s+i,a+r,c,c),F.fillStyle=this.lc2,F.fillRect(s-i,a-r,c,c),F.fillStyle=this.dc1,F.fillRect(s+i,a-r,c,c),F.fillStyle=this.dc2,F.fillRect(s-i,a+r,c,c)}this.rG&&(F.beginPath(),F.strokeStyle=this.c+"30",1==this.rG&&F.arc(s-5*this.V[0]*o,a-5*this.V[1]*o,e.abs(t/4),0,r),F.lineWidth=.001*o,F.stroke(),F.closePath()),F.globalAlpha=1,this.vis+=.01}}let A=550,b=[],E=g.B(.3)?g.I(0,2):g.B(.65)?g.I(3,10):g.B(.65)?g.I(11,16):g.I(17,19);bV=.04,iDM=g.B(.65)?g.I(0,3):g.B(.65)?g.I(4,5):g.I(6,8),aM=g.B(.02)?4:g.I(0,3),dir=g.I(3,5);let S={Iris:dir,Creation:"☉◯✧░⦵⌽☰⦻〣"[iDM],Expansion:["F","E","GC","EC","SL"][aM],Palette:E};console.log(S,tokenData.hash);const R="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_res;varying vec2 vUv;void main(){vec2 clipSpace=a_position/u_res*2.-1.;gl_Position=vec4(clipSpace*vec2(1.,-1.),0.,1.);vUv=a_texCoord;}",P=`precision highp float;varying vec2 vUv;uniform sampler2D u_image;uniform float dl;uniform float t;const float dir=${dir}.,Pi=3.14159;float r(vec2 p){return fract(dot(p,vec2(12.9898,78.233))*43758.5453123);}float n(vec2 x){vec2 i=floor(x),l=fract(x),u=l*l*(3.-2.*l);float a=r(i+vec2(0,0)),b=r(i+vec2(1,0)),c=r(i+vec2(0,1)),d=r(i+vec2(1,1));return 2.*(a+(b-a)*u.x+(c-a)*u.y+(a-b-c+d)*u.x*u.y)-1.;}void main(){float nM=.5,tt=0.,off=n(vUv);mat2 mr=mat2(.96,.28,-.28,.96);for(float i=1.;i<3.;i++)mr*=mr,nM-=1./pow(2.,i)*n(pow(2.,i)*mr*vUv*${g.N(2,5)}-t/${g.N(50,200)});nM=clamp(nM,.25,.89);vec4 c=vec4(0.);for(float d=0.;d<Pi;d+=Pi/dir)for(float e=-17.;e<=17.;e++){float p=(e+off-.5)/17.,w=1.-abs(p);vec4 spl=texture2D(u_image,vUv+vec2(cos(d),sin(d))*dl*p*nM);c+=spl*w;tt+=w;}c/=tt;float l=length(c),m=smoothstep(1.15,1.731,l)*l*2.9,v=length(vUv-.5)/.8;vec4 L=c/l*m;v=smoothstep(1.,0.,v);gl_FragColor=vec4((c.rgb+L.rgb)*v,1.);}`;function N(t){return Array.from({length:t.length/3},((i,e)=>"#"+t.slice(3*e,3*e+3).split("").map((t=>(+t.charCodeAt()-333).toString(16).padStart(2,"0"))).join("")))}b=N(["ŤşŧŭśƃŸőųȠȷȍƃƯǝȯNJƟȺȒƤǵȧȆ","ŭŘŎōƀƢŘţųȿǒżƵȞȳɆƵōdzȧȤȬȐȘ","ŤőŒŖšŲōŭŽǵŭŧƻȂȱɌǘōȽȠǻȑȬȨ","ŘţųȁȪȪżŢŤƒǦȂǵƘŵȑȱǯ","šƃƏŜǘǚȹǧŶȧȟȥǵŭŧšƃƏȾɋȓ","šōŖŤşŧżŲƊƭƟǁȱƮƨȝŽƉǚǾȑɅȋǂ","ūūƊŶƀǨǁDZȉȃȣșɌƇŭūūƊȾɋȓ","ŞōƢżŢŤɀŷōŷǸȜȲƒŕƹȇȂȐȗǮɈȷȂ","ƛƀLjŭśƃȭƐƿƧǶȳŧŏŝƗƛƶȬǰȘɃȦǰ","ŠŠŐőŏŔƪƍŻȼǴżȼDŽŤDŽȌǴɈȷȂȑȬȨ","ŗŗŧşŏŏɌǘōŽŭŶƱǫȵǞnjɌ","ƒƐƿżŶưȼǡƹȑǴNJƽǔnj","ůůůDŽDŽDŽƑƑƑǷǷǷǭǭǭšššșșș","ūūƊŶŸŽƦźźƊƍƓȫȆƵưƴƽɋɊȫ","őŏŔōŭŽƬƥƝƛƀLjƭDzǷƭƟǁɇȺȎȍǿǤ","ŭŘŎȾȢǠƑƀŞɆŶōōƀƢǒȄǽȼȤǴ","ƇŧŷɃDZƍƑōžɀƩƘɆȖƲōƀƢɌɌǾ","ƛƀLjƦȉǙǯȞƿɂǨŠȱƵƚ","ȭǷƉƋżƨųŞſɌȅƼȇƩşƽǔnj","ūūƊȘſƋōŭŽōǬǼȷƴƍȹȕƝ"][E]);let I=[],w=b.length,C=3,y=6,_=8,B=[];for(let t=0;t<w;t++){B[t]=[];for(let i=0;i<w;i++)B[t][i]={a:g.I(-5,5),c:g.N(-2,5),s:t==i?g.N(1,2):g.N(-3,3)}}function T(t){for(let i=0;i<w;i++){let e=b[i],s=g.N(.04,.09),r=g.N(.04,.09),a=g.N(.04,.09),h=1e-4*g.N(15,g.N(15,70)),n=.001*g.N(1,5),l=.1*g.N(1,g.N(1,g.N(1,7))),c=.1*g.N(.5,g.N(.5,g.N(.5,2))),f=.1*g.N(1,g.N(1,g.N(5,10))),d=i>=y?1:0;spotsNumber=i<C?t/w/3:t/w;for(let t=0;t<spotsNumber;t++)radius=i<y?g.B(.3)?g.I(o/10,o/6):g.I(o/200,g.I(o/100,g.I(o/100,o/50))):g.B(.1)?g.I(o/10,o/5):g.I(o/200,g.I(o/150,g.I(o/100,o/10))),I.push(new v(h,n,f,c,l,a,r,s,e,0|radius,i,g.B(.2)?d:0))}}T(A);const x=document.createElement("canvas"),F=x.getContext("2d");x.width=h,x.height=n;let D=1100,U=2==aM?900:500,M=0,L=1e3,V=D+U+M,G=[.25+g.N(0,.5),.25+g.N(0,.5)];if(aM>0)for(let t of I)t.pS=.001,t.pC=.001,t.pA=.001;function O(){F.fillStyle="#00000001",F.fillRect(0,0,x.width,x.height);for(let t of I){if(t.E(),0==aM&&t.F(I),1==aM)if(L>D&&L<V-M){let i=(L-D)/U;t.CO(d(0,1,i))}else L>=V-M?L==V-M&&t.EX():t.F(I);if(2==aM&&L>D){let i=(L-D)/U;t.CG(i**3,4)}3==aM&&t.CG(1.51,g.N(3,5)),4==aM&&t.CG(.151,.01),t.U(),t.SH()}at(),L++,L==V&&(L%=V,G=[.1+g.N(0,.8),.1+g.N(0,.8)]),i.requestAnimationFrame(O)}function k(t,i,e){var s=t.createShader(i);return t.shaderSource(s,e),t.compileShader(s),s}function X(t,i,e){var s=t.createProgram();return t.attachShader(s,i),t.attachShader(s,e),t.linkProgram(s),s}function $(t,i,e,s,r){let a=i,h=i+s,n=e,o=e+r;t.bufferData(t.ARRAY_BUFFER,new Float32Array([a,n,h,n,a,o,a,o,h,n,h,o]),t.STATIC_DRAW)}const H=t.createElement("canvas"),W=H.getContext("webgl");t.body.appendChild(H),H.width=h,H.height=n,H.style.width="100%",H.style.height="100%",W.drawingBufferColorSpace="display-p3";let Y=k(W,W.VERTEX_SHADER,R),q=k(W,W.FRAGMENT_SHADER,P),j=X(W,Y,q),z=W.getAttribLocation(j,"a_position"),J=W.getAttribLocation(j,"a_texCoord"),K=W.ARRAY_BUFFER,Q=W.TEXTURE_2D;var Z=W.createBuffer();W.bindBuffer(K,Z),$(W,0,0,x.width,x.height);var tt=W.createBuffer();W.bindBuffer(K,tt),W.bufferData(K,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),W.STATIC_DRAW);var it=W.createTexture();W.bindTexture(Q,it),W.texParameteri(Q,W.TEXTURE_WRAP_S,W.CLAMP_TO_EDGE),W.texParameteri(Q,W.TEXTURE_WRAP_T,W.CLAMP_TO_EDGE),W.texParameteri(Q,W.TEXTURE_MIN_FILTER,W.NEAREST),W.texParameteri(Q,W.TEXTURE_MAG_FILTER,W.NEAREST);let et=W.getUniformLocation(j,"u_res"),st=W.getUniformLocation(j,"dl"),rt=W.getUniformLocation(j,"t");function at(){W.texImage2D(W.TEXTURE_2D,0,W.RGBA,W.RGBA,W.UNSIGNED_BYTE,F.canvas),W.useProgram(j),W.enableVertexAttribArray(z),W.bindBuffer(K,Z),W.vertexAttribPointer(z,2,W.FLOAT,!1,0,0),W.enableVertexAttribArray(J),W.bindBuffer(K,tt),W.vertexAttribPointer(J,2,W.FLOAT,!1,0,0),W.uniform2f(et,W.canvas.width,W.canvas.height),W.uniform1f(st,bV),W.uniform1f(rt,e.abs(L)),W.drawArrays(W.TRIANGLES,0,6)}function ht(){let i=parseInt(+new URLSearchParams(window.location.search).get("multiplier"))||4,e=h*i|0,s=n*i|0;function r(t,i){W.canvas.width=F.canvas.width=t,W.canvas.height=F.canvas.height=i,W.viewport(0,0,t,i),W.clear(W.COLOR_BUFFER_BIT),W.drawArrays(W.TRIANGLES,0,6)}r(e,s);let a=t.createElement("canvas"),o=a.getContext("2d"),l=new Image;[a.width,a.height]=[e,s],o.drawImage(H,0,0),l.src=a.toDataURL();let c=t.createElement("a");c.href=l.src,c.download=`Gravity ${e}x${s}px ${tokenData.hash}.png`,c.style.display="none",t.body.appendChild(c),c.click(),t.body.removeChild(c),r(h,n)}W.viewport(0,0,W.canvas.width,W.canvas.height),i.requestAnimationFrame(O);const nt=t=>{"s"===t.key&&ht()};t.addEventListener("keydown",nt);
`F = G⋅m⋅M⋅r⁻²` Newton’s law of universal gravitation is fairly simple and easy to understand in mathematical terms. Yet, the message behind variables carries a deeper meaning of inseparable inter-connection among all entities in the universe. “Gravity” visually explores various scenarios of multilateral interaction, such as collective behaviors, influence of omnipotent forces, and the cycle of creation/annihilation. The initial state (genesis) may seem to reflect recognizable phenomena. Yet, once the expansion occurs, the forces will begin the endless process of altering order and chaos. **Screenshot:** `[S]` – to take a screenshot of current frame 4× display size; to change the size multiplier add ``?multiplier=N`` to the URL, where ``N`` is the multiplier value **Technical specs:** - infinite long-form generative animation - resolution agnostic - VanillaJS, WebGL (no external libraries)
From chaos we find order. With Dead Air I hope to find just enough order in a form of chaos that I've worked with from my earliest code-based artworks: analog video and television noise, or static. Static is chaos at its simplest and finest; random, confused pixels with no organization fighting across the screen. But amongst this chaos, a beauty can be found. Even in the act of giving it a name, we start to turn the chaos into order, the random pixels into static. The individual pixels, looked at closely, still show the characteristic trait of disorder, but as a whole, its an idea we understand. Dead air is the concept of silence during a broadcast, and here I imagine it to represent the loss of a signal, the static taking over to kill the order that was present before. All individual blocks in these outputs are made up of static: random pixels with just a hint of order to turn them into art. In the end, we have a grid of squares, with each square made up of its own square grid. The entire work is created from these small individual squares or pixels, over a half a million tiny pixels building up to the full work. Zoom in and you can see the chaos, zoom out and you see the order. Each square of the larger grid can be seen as its own separate generative work, with a random mix of pixels drawn for each. There are three types of patterns used: random, shaded, and gradient. Random patterns are absolute static: random pixels of two colors, four colors, or any random rgb value. Shaded patterns are random individual shades of a single base color. Gradient patterns can be straight or centered. Straight patterns increase or decrase randomly from the top or left, while centered patterns randomly select more or less pixels near the center. As these patterns are selected for each output, a layer of order is needed to give some meaning to the work. Bitwise operations, Perlin noise, and trigonometric functions are used to create a flow between patterns, building on my knowledge from past grid based works like Over the Air, Ode to Untitled, and Mellifera. Once the final work is drawn, we are left with static static: a still image, made up of individual chaotic pixels, with just enough order to make art. Each work can be oriented in four different configurations using the S (Spin) and M (Mirror) keys. High-resolution, print-ready outputs are available with the 1 (3000 x 4500), 2 (6000 x 9000), and 3 (9000 x 13500) keys. See Display Notes for more information.
console.log("Dead Air\nAugust 2023\nartplusbrad\n\nID: "+tokenData.tokenId+"\nHash: "+tokenData.hash);class Rm{constructor(){this.useA=!1;let t=function(t){let i=parseInt(t.substr(0,8),16),s=parseInt(t.substr(8,8),16),n=parseInt(t.substr(16,8),16),c=parseInt(t.substr(24,8),16);return function(){let t=((i|=0)+(s|=0)|0)+(c|=0)|0;return c=c+1|0,i=s^s>>>9,s=(n|=0)+(n<<3)|0,n=(n=n<<21|n>>>11)+t|0,(t>>>0)/4294967296}};this.prngA=new t(tokenData.hash.substr(2,32)),this.prngB=new t(tokenData.hash.substr(34,32));for(let t=0;t<1e6;t+=2)this.prngA(),this.prngB()}r_d(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}r_n(t,i){return t+(i-t)*this.r_d()}r_i(t,i){return Math.floor(this.r_n(t,i+1))}r_b(t){return this.r_d()<t}r_c(t){return t[this.r_i(0,t.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,scP,niB,aN,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,nTT,exMu,tanD,iCh,nA,bop,ckp,ckpb,iRot,iRot2,yii,xii,iEnd,dCt,bina,BITS,BLIM,INTM,bisc,spP,ips,ibs,R=new Rm,nsq=[],sCt=0,apG=[],apS=[],apP=[],atC=new Array(5),aGF=[],aX=[],cr=[],lnT=-1;for(let t=0;t<5;t++)apG.push(()=>{gr(cr[t],t)});for(let t=0;t<5;t++)apP.push(()=>{sk(cr[t])});for(let t=1;t<=2;t++)apS[apS.length]=function(t,i){st(1)};apS[apS.length]=function(t,i){st(2)};for(let t=0;t<4;t++)apS.push(()=>{st(3,cr[t],t)});for(let t=1;t<=2;t++)apS[apS.length]=function(t,i){st(4)};function ck(t,i){let s;strokeWeight(sF/ckCt);for(let i=0;i<ckCt;i++)for(let n=0;n<ckCt;n++)(i%2==0&&n%2==0||i%2==1&&n%2==1)&&R.r_b(.15)&&(s=!0),s?(stroke(t),fill(t)):(stroke(tB),fill(tB)),rect(n*csSqZ,i*csSqZ,csSqZ,csSqZ)}function gr(t,i){let s;strokeWeight(sF/ckCt);for(let n=0;n<ckCt;n++)for(let c=0;c<ckCt;c++){if(0===ckpb){let t=0===ckp[i]?n:c;s=R.r_b(t/ckCt)}else s=0===ckp[i]?R.r_b((abs(n-ckCt/2)+abs(c-ckCt/2))/2/(ckCt/2)):R.r_b((ckCt/2-(abs(ckCt/2-n)+abs(ckCt/2-c))/2)/(ckCt/2));s?(stroke(t),fill(t)):(stroke(tB),fill(tB)),rect(c*csSqZ,n*csSqZ,csSqZ,csSqZ)}}function st(t,i,s){let n;strokeWeight(nsSW);for(let e=0;e<nsSqCt;e++)for(let r=0;r<nsSqCt;r++)1===t?n=c(R.r_i(0,255)):2===t?n=color(R.r_i(0,255),R.r_i(0,255),R.r_i(0,255)):3===t?n=lerpColor(i,c(255),R.r_n(0,scP[s])):4===t&&(n=R.r_c([cr[0],cr[1],cr[2],cr[3]])),fill(n),stroke(n),rect(r*nsSqZ,e*nsSqZ,nsSqZ,nsSqZ)}function sk(t){let i;strokeWeight(sF/ckCt);for(let s=0;s<ckCt;s++)for(let n=0;n<ckCt;n++)(i=R.r_b(spP))?(stroke(t),fill(t)):(stroke(tB),fill(tB)),rect(n*csSqZ,s*csSqZ,csSqZ,csSqZ)}function sFt(){gZ=pS([8,30,53,76,89,100],[8,10,12.5,16,20,25]),(aP=[])[0]=[c(40),c(80),c(120),c(160)],aP[1]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[2]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[3]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[4]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[5]=[c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[6]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[7]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[8]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[9]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[10]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[11]=[c("#164849"),c("#02aca3"),c("#2a2833"),c("#970126")],aP[12]=[c("#55d9c0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[13]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[14]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[15]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[16]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[17]=[c("#FF0F0F"),c("#0052FF"),c("#94B9EF"),c("#52607F")];let t=R.r_d();pID=t<.67?R.r_c([0,1,2,6,8,10,17]):R.r_c([3,4,5,7,9,11,12,13,14,15,16]);bO=R.r_b(.8)?1:0,aX.push([5,8,4]),aXID=0,ckpb=pS([40,100],[0,1]),iSH=R.r_b(.97),iSS=R.r_b(.4),noiseCt=pS([5,11,18,26,35,45,55,65,75,82,89,96,100],[4,5,6,7,8,9,11,13,15,19,23,27,49]),iRot=R.r_b(.5),iRot2=R.r_b(.5),ips=R.r_b(.2),ibs=R.r_b(.25)&&bO>0,spP=R.r_c([.33,.45,.5,.6,.7,.8])}function preload(){ps=getURLParams(),sFt(),iCh=R.r_b(.15),stC(),stCa(),stG(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ,ckCt=2*Math.floor(gZ/2.5),csSqZ=sqZ/ckCt,nsSqZ=sqZ/(nsSqCt=ckCt),nsSW=f3/nsSqCt,ckp=[];for(let t=0;t<5;t++)ckp[t]=R.r_i(0,1);pX=0;for(let t=0;t<aX[aXID].length;t++)pX+=aX[aXID][t];aR=new Array(pX);let t=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*t);for(let i=1;i<aR.length-1;i++)aR[i]=R.r_n(aR[i-1],aR[i-1]+(1-aR[i-1])/(aR.length-1)*t);aR[aR.length-1]=1,SH(aGF=[...apG,...apS,...apP]),skM=1,gZ<=20&&(skM=1.6),stN(),stBG(),stB()}function c(t){return color(t)}function stC(){cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3],cr[4]=color(0),scP=[];for(let t=0;t<4;t++)scP[t]=.1*R.r_n(3,9)}function stBG(){tB=pS([40,65,85,100],[c(255),c(247),c("#F0F0DC"),c("#E1E6EB")])}function stCa(){let t=window.innerWidth,i=window.innerHeight;ws=800,hs=1200,ps.size?(pixelDensity(1),w=ps.size,h=1.5*ps.size):1.5*t>=i?(w=.6667*i,h=i):(w=t,h=1.5*t)}function stF(){}function stG(){gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,gZ>=50?f2=.02*sqZ:gZ>=25?f2=.03*sqZ:gZ>=8&&(f2=.06*sqZ)}function stB(){bO>0&&(bop=aGF[R.r_i(0,aGF.length-1)])}function stN(){aN=[],nTT=pS([67,100],[1,2]),stNT();let t=pS([15,45,65,80,90,100],[.9,.8,.65,.5,.25,.05]);for(let i=0;i<noiseCt;i++)if(aN.push(stNI()),0===i)nsq[i]=0;else{let s=Math.floor(gxCt*gyCt/noiseCt);do{nsq[i]=s*(i-1)+R.r_i(s*(1-t),s*(1+t))}while(nsq[i]<=nsq[i-1])}niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0,BITS=R.r_i(10,31),BLIM=Math.pow(2,BITS),INTM=(1<<BITS)-1,bisc=R.r_i(1,BITS-1),bina=R.r_i(1,BLIM)}function stNT(){do{1===nTT?nT=R.r_c([0,2,5,8,14]):2===nTT&&(nT=R.r_c([5,8,14]))}while(lnT===nT);lnT=nT,ips&&SH(aGF),ibs&&stB(),0===nT||2===nT?(exMu=R.r_i(1,6),tanD=R.r_i(1,6)):(tanD=R.r_i(1,4),exMu=R.r_i(1,tanD))}function stNI(){return pS([22,45,68,90,100],[.005,.0075,.01,.05,.01])}function SH(t){for(let i=t.length-1;i>0;i--){let s=R.r_i(0,i),n=t[i];t[i]=t[s],t[s]=n}}function pS(t,i){let s=R.r_d();for(let n=0;n<t.length;n++)if(s<=t[n]/100)return i[n]}function setup(){createCanvas(w,h),strokeCap(SQUARE),xc=width/2,yc=height/2,frameRate(60),ps.size?dCt=1e4:25===gZ?dCt=2:20===gZ?dCt=4:16===gZ?dCt=8:10===gZ?dCt=12:8===gZ?dCt=15:gZ<13&&(dCt=10)}function draw(){1===frameCount&&(background(tB),xii=0,yii=0),translate(xc,yc),iRot&&rotate(PI),iRot2&&scale(-1,1),ps.spin&&rotate(PI),ps.mirror&&scale(-1,1);for(let t=0;t<dCt&&!iEnd;t++)iSH?((xii===gxCt||iSS&yii%2==1&&-1===xii)&&(iCh&&(aN[ni]=stNI()),xii=iSS&++yii%2==1?gxCt-1:0),yii===gyCt?(noLoop(),iEnd=!0):grid(yii,xii),xii+=iSS&yii%2==1?-1:1):((yii===gyCt||iSS&xii%2==1&&-1===yii)&&(iCh&&(aN[ni]=stNI()),yii=iSS&++xii%2==1?gyCt-1:0),xii===gxCt?(noLoop(),iEnd=!0):grid(yii,xii),yii+=iSS&xii%2==1?-1:1);iEnd&&savC()}function noiseCheck(t,i){return 0===nT?noise(niB)+Math.pow(sin(niB),exMu)/tanD:2===nT?Math.pow(cos(niB)*cos(niB),exMu):5===nT?sin(sin(niB)):8===nT?i%(hs/gZ)*(noise(niB)/tanD)/(t%(hs/gZ))*exMu:14===nT?(bina=leftRotate(bina,bisc))/BLIM:void 0}function leftRotate(t,i){return INTM&(t<<i|t>>>BITS-i)}function rightRotate(t,i){return INTM&(t<<BITS-i|t>>>i)}function grid(t,i){if(sCt++,push(),translate(i*sqZ-xc,t*sqZ-yc),bO>0&&(0===i||i===gxCt-1||0===t||t===gyCt-1))bop(t,i);else{let s=!1;for(let n=0;n<aR.length;n++)if(noiseCheck(t,i)<aR[n]){aGF[n](t,i),s=!0;break}s||aGF[aGF.length-1](t,i)}pop(),niB+=aN[ni],ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++,bisc=R.r_i(1,BITS-1))}function keyPressed(){let t=keyCode,i=!1,s=!1,n=new URL(window.location.href),c=n.searchParams;if(c.delete("size"),49!==t&&50!==t&&51!==t||(i=!0),i){let i=3e3;50===t?i*=2:51===t&&(i*=3),c.set("size",i),s=!0}if(83===t&&iEnd&&(ps.spin?c.delete("spin"):c.set("spin","true"),s=!0),77===t&&iEnd&&(ps.mirror?c.delete("mirror"):c.set("mirror","true"),s=!0),s)return n.search=c.toString(),window.location.href=n.toString(),!1}function savC(){ps.size&&saveCanvas("DeadAir_"+tokenData.tokenId+"_"+tokenData.hash,"png")}
"Imagine standing at the foot of a majestic mountain, gazing up at its towering peak that seems to touch the sky. 'Summit' inspire us to dream big and believe in our ability to conquer the impossible. The path to the top is not an easy one. It demands courage to confront the steep slopes, the uncertainties, and the unpredictable elements that test our limits. So dare to climb your personal summits. Embrace the challenges and keep your eyes fixed on the top. It is in the quest for the summit that we truly discover the extraordinary capabilities that exist within us." 'Summit' is a generative art collection that explores the harmonious convergence of nature and human imagination. Inspired by the majestic beauty of mountains. @gpitombo / Jul 2023 **press "3"** to render - 7228 × 9600 **press "4"** to render - 9036 × 12000 **press "s"** to save to PNG. **--attention--** _This artwork requires processing power and is intended for laptops and desktops primarily._
var ws,seed,ratio;let cols,rows;var density=2,w=1200,h=1200;let paletteRoot,palette,border,hasBackground,hasClouds,hasGradient,hasSun,hasTexture,hasColorVariation1,hasColorVariation2,R,groundH,r=1.5,k=10,grid=[],wg=r/Math.sqrt(2),active=[],horiz=0,render=0,palettes=[{name:"Ocean Breeze",colors:["#443A3A","#578672","#C4B79C","#648678"],bg:["#D5E5ED","#D5EDE8","#FCD89E","#E8D5B9"],cloudColor:"#ffffff",sunColor:"#FFFAE8"},{name:"Lush Highlands",colors:["#365246","#B3D1C4","#71837B","#222222"],bg:["#D5E5ED","#D5EDE8","#FCD89E","#E8D5B9"],cloudColor:"#ffffff",sunColor:"#FFFAE8"},{name:"Majestic Greens",colors:["#648678","#49866C","#3E524A","#3E3E3E"],bg:["#E8D5B9","#D5E5ED","#D5EDE8","#FCD89E"],cloudColor:"#ffffff",sunColor:"#EDBD8D"},{name:"Earthy Delight",colors:["#AC3622","#252726","#B93B22","#252726"],bg:["#DFBDA8","#BBC3D0","#88A09E","#C9C4B9"],cloudColor:"#FFD1B4",sunColor:"#FFD1B4"},{name:"Alpine Oasis",colors:["#0566AF","#DB4E55","#CB2931","#092C46"],bg:["#E6DEC3","#DFBDA8","#BBC3D0","#88A09E","#C9C4B9"],cloudColor:"#FFD1B4",sunColor:"#FCDBDD"},{name:"Autumn Spice",colors:["#BF9855","#9E8F67","#C05A23","#84290D"],bg:["#DFBDA8","#BBC3D0","#C9C4B9","#88A09E","#9DA59A"],cloudColor:"#FFD1B4",sunColor:"#ffffff"},{name:"Sun-Kissed Fields",colors:["#E07A7E","#D89484","#B18985","#4F4657"],bg:["#9DA59A","#88A09E"],cloudColor:"#CBAA9F",sunColor:"#E6DEC3"},{name:"Orchid Meadows",colors:["#523569","#A869B9","#A93488","#302934"],bg:["#D5E5ED","#D5EDE8","#FCD89E","#E8D5B9","#EDE6F5"],cloudColor:"#ffffff",sunColor:"#FFFBD8"},{name:"Enchanted Woods",colors:["#2E5D5A","#E88D15","#B94531","#452A20"],bg:["#E0D5A9","#E8DAD7","#D5E5ED","#9DA59A"],cloudColor:"#EAA99F",sunColor:"#FAC09A"},{name:"Midnight Sky",colors:["#222222","#333333","#666666","#999999"],bg:["#111111","#263743"],cloudColor:"#333333",sunColor:"#cccccc"},{name:"Spring Delight",colors:["#BF5334","#333333","#22699B","#6C954A"],bg:["#CCD6DE","#D5E5ED","#FCD89E","#E8D5B9"],cloudColor:"#CBAA9F",sunColor:"#FFF1DB"},{name:"Iceberg Breeze",colors:["#ffffff","#f0f0f0","#C3CFD8","#313538"],bg:["#9DB8CF","#E8E8E8","#fdc9b9"],cloudColor:"#ffffff",sunColor:"#FAF9DE"},{name:"Wildflower Meadows",colors:["#2B2F79","#5AA19B","#F2AD12","#D7542C"],bg:["#CCD6DE","#D5E5ED","#FCD89E","#E8D5B9"],cloudColor:"#ffffff",sunColor:"#FCECC9"},{name:"Golden Horizons",colors:["#F5D797","#E0BD71","#BC8D67","#39352D"],bg:["#6790BC","#527090"],cloudColor:"#cccccc",sunColor:"#F7D998"},{name:"Blossom Dream",colors:["#F29F80","#A9BF9F","#8C3E5B","#D9666F"],bg:["#95B9BF","#CCD6DE","#FCD89E"],cloudColor:"#f0f0f0",sunColor:"#F7D998"},{name:"Serene Sunrise",colors:["#5f5b6b","#f49d37","#ed6a5e","#ffaf87"],bg:["#FAE1D1","#EDE3BF","#CCD6DE"],cloudColor:"#FADCD7",sunColor:"#F7C47D"},{name:"Winter Wonderland",colors:["#0F3141","#214857","#8D9FA9","#ECEAE2","#C89C60"],bg:["#CCD6DE","#D5E5ED","#E8D5B9"],cloudColor:"#ffffff",sunColor:"#F3F4F3"},{name:"Citrus Delight",colors:["#CA5F3C","#98BFAD","#F2C266","#383020"],bg:["#EDE8D4","#95B9BF","#CCD6DE","#EDE3BF","#FCD89E"],cloudColor:"#ffffff",sunColor:"#ffffff"},{name:"Royal Sunset",colors:["#F2BC8D","#50342F","#D66269","#F0DF8C"],bg:["#968FA8","#95B9BF","#CCD6DE","#EDE3BF","#FCD89E"],cloudColor:"#E5B7BB",sunColor:"#F7D998"}];function setup(){ws=min(windowWidth,windowHeight),drawScene()}function drawScene(){R=new Random,seed=parseInt(tokenData.hash.slice(0,16),16),noiseSeed(seed),randomSeed(seed),calculateFeatures(tokenData),createGraphicsCanvas(),colorizeBackground(),setGrid(),noiseSeed(seed),randomSeed(seed),rw1=4*r,rw2=3*r,rw3=5*r;let o=[...palette];c1idx=floor(random(o.length)),c1=rgbToHsl(o[c1idx]),c1l=c1.l,c1s=c1.s,o.splice(c1idx,1),c2idx=floor(random(o.length)),c2=rgbToHsl(o[c2idx]),c2l=c2.l,c2s=c2.s,o.splice(c2idx,1),c3idx=floor(random(o.length)),c3=rgbToHsl(o[c3idx]),c3l=c3.l,c3s=c3.s,o.splice(c3idx,1),c4=rgbToHsl(random(o)),c4l=c4.l,c4s=c4.s,rcx=R.random_int(600,2400);let e=R.random_num(0,1);str=e<.5?R.random_int(400,500):e<.8?R.random_int(500,800):R.random_int(800,1200);let n=R.random_num(0,1);n<.2?(rx=100,ry=100,monH=300):n<.35?(rx=200,ry=300,monH=300):n<.5?(rx=200,ry=200,monH=800):n<.75?(rx=R.random_int(200,300),ry=R.random_int(200,300),monH=800):n<.9?(rx=200,ry=100,monH=600):(rx=300,ry=150,monH=800),xoffset=R.random_int(0,1e4),render=0,groundH=R.random_num(.6,.8)}function createGraphicsCanvas(){ratio=.753,createCanvas(ws*ratio,ws),pg=createGraphics(w*ratio-2*border,h-2*border),pgCanvas=createGraphics(w*ratio,h),pixelDensity(density),pg.pixelDensity(density),pgCanvas.pixelDensity(density),pX=.02*pg.height,colorMode(HSB,300)}function colorizeBackground(){if(background("#EEE3D0"),pg.background(backgroundColor),pgCanvas.background("#EEE3D0"),hasGradient){let o=color(R.random_choice(paletteRoot.bg)),r=rgbToHsl(o);r.l+=20,r=color(getHslColor(r)),pg.strokeWeight(5);for(let e=0;e<pg.height+10;e+=5){let n=map(e,0,.5*pg.height,0,1),t=lerpColor(o,r,n);pg.stroke(t),pg.line(0,e,pg.width,e)}}if(hasSun){pg.noStroke();let o=rgbToHsl(paletteRoot.sunColor);pg.fill(getHslColor(o));let r=random(20,40),e=R.random_num(border+r,.15*pg.height),n=R.random_num(border+r,pg.width-(border+r));pg.ellipse(n,e,r),pg.noFill();for(let t=0;t<10;t++){let l=map(t,0,20,.01,0);pg.fill(getHslaColor(o,abs(l))),pg.ellipse(n,e,r+10*t),pg.noFill()}}if(hasClouds){let o=isRaining?"#666666":paletteRoot.cloudColor,r=.3*pg.height;pg.strokeWeight(8);let e=100*PI;for(let n=0;n<pg.width;n+=2)for(let t=0;t<r;t+=2){let l=map(t,0,r,200,10,!0),a=map(t,0,.3*pg.height,1,0,!0),s=noise(n/300,t/l)*e,i=map(s,0,isRaining?e:e/2,.3,0,!0),c=rgbToHsl(o),d=min(.98,i*a);d=max(.001,d);let g=getHslaColor(c,d);pg.push(),pg.stroke(g),pg.translate(n,t),pg.point(0,0),pg.pop()}}}function setGrid(){grid=[],cols=floor(pg.width/wg),rows=floor(pg.height/wg);for(let o=0;o<cols*rows;o++)grid[o]=void 0;let o=pg.width/2,e=pg.height/2;var n=floor(o/wg),t=floor(e/wg);let l=createVector(o,e);for(grid[n+t*cols]=l,active.push(l);active.length>0;){let o=floor(random(active.length)),e=!1,n=active[o];for(let o=0;o<k;o++){let o=p5.Vector.random2D(),t=random(r,2*r);o.setMag(t),o.add(n);let l=floor(o.x/wg),i=floor(o.y/wg);if(l>-1&&i>-1&&l<cols&&i<rows&&!grid[l+i*cols]){let n=!0;for(let e=-1;e<=1;e++)for(let t=-1;t<=1;t++){var a=l+e+(i+t)*cols,s=grid[a];s&&p5.Vector.dist(o,s)<r&&(n=!1)}if(n){e=!0,grid[l+i*cols]=o,active.push(o);break}}}e||active.splice(o,1)}}function getNoise(o,r){return noise(o,r)}function draw(){pg.noStroke();for(let o=0;o<1e3;o++){let o=render;if(grid[o]){let r=grid[o].x,e=grid[o].y,n=map(e,0,10*pg.height,rcx/10,rcx,!0),t=map(e,0,pg.height*groundH,monH,0,!0),l=getNoise(r/rcx,e/n)*str,a=getNoise((r+xoffset)/rx,e/ry)*t,s=map(e,0,.4*pg.height,10,0,!0),i=r,c=a+e,d=l;if(c<pg.height){if(hasColorVariation1){let o=floor(map(l,0,str,0,palette.length));c4=rgbToHsl(palette[o])}if(hasColorVariation2){let o=floor(map(e,0,pg.height,0,palette.length));c4=rgbToHsl(palette[o])}c1.l=abs(c1l+random(-5,5)+s),brush(i,c,d/10,getHslColor(c1),rw1),c2.l=abs(c2l+random(-5,5)+s),brush(i,c,-d/20,getHslColor(c2),rw2),c3.l=abs(c3l+random(-5,5)+s),brush(i,c,d/30,getHslColor(c3),rw3),c4.l=abs(c4l+random(-5,5)+s),brush(i,c,-d/40,getHslColor(c4),rw3)}}render++}if(render>grid.length){if(isRaining){let o=radians(R.random_num(-20,20));for(let r=0;r<1500;r++){let r=random(pg.width),e=random(pg.height);pg.push(),pg.fill(R.random_int(200,250),120),pg.translate(r,e),pg.rotate(o);let n=R.random_int(10,random()>.8?80:40);pline(0,-n/2,0,n/2,R.random_num(.015,.04)),pg.pop()}}noLoop()}pgCanvas.image(pg,border,border),image(pgCanvas,0,0,ws*ratio,ws)}function brush(o,r,e,n,t){pg.push(),pg.translate(o,r),pg.rotate(e),pg.fill(n),pg.rect(0,0,2,t),pg.pop()}function handleSave(){pgCanvas.save("summit-"+tokenData.hash+"-gpitombo.png")}function keyPressed(){if("s"!==key)return"2"===key?(saving=!0,density=4,drawScene(),loop(),void draw()):"3"===key?(saving=!0,density=8,drawScene(),loop(),void draw()):"4"===key?(saving=!0,density=10,drawScene(),loop(),void draw()):void 0;handleSave()}function calculateFeatures(o){var r=parseInt(o.hash.slice(0,16),16);function e(){return r^=r<<13,r^=r>>17,((r^=r<<5)<0?1+~r:r)%1e3/1e3}function n(o){return o[(r=0,n=o.length-1,Math.floor(function(o,r){return o+(r-o)*e()}(r,n+1)))];var r,n}function t(o){return e()<o}return paletteRoot=n(palettes),palette=paletteRoot.colors,isRaining=t(.09),border=n([0,10,30]),hasClouds=!!isRaining||t(.3),hasGradient=t(.7),hasSun=!isRaining&&t(.3),hasColorVariation1=t(.3),hasColorVariation2=t(.3),backgroundColor=n(paletteRoot.bg),{border,palette:paletteRoot.name,clouds:hasClouds,gradientSky:hasGradient,sun:hasSun,raining:isRaining}}class Random{constructor(){this.useA=!1;let o=function(o){let r=parseInt(o.substring(0,8),16),e=parseInt(o.substring(8,16),16),n=parseInt(o.substring(16,24),16),t=parseInt(o.substring(24,32),16);return function(){r|=0,e|=0,n|=0,t|=0;let o=(r+e|0)+t|0;return t=t+1|0,r=e^e>>>9,e=n+(n<<3)|0,n=n<<21|n>>>11,n=n+o|0,(o>>>0)/4294967296}};this.prngA=new o(tokenData.hash.substring(2,34)),this.prngB=new o(tokenData.hash.substring(34,66));for(let o=0;o<1e6;o+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(o,r){return o+(r-o)*this.random_dec()}random_int(o,r){return Math.floor(this.random_num(o,r+1))}random_bool(o){return this.random_dec()<o}random_choice(o){return o[this.random_int(0,o.length-1)]}}function rgbToHsl(o){let r=color(o),e=_rgbToHsl(red(r),green(r),blue(r));return{h:e[0],s:e[1],l:e[2]}}function _rgbToHsl(o,r,e){o/=255,r/=255,e/=255,random(60,90);const n=Math.max(o,r,e),t=n-Math.min(o,r,e),l=t?n===o?(r-e)/t:n===r?2+(e-o)/t:4+(o-r)/t:0;return[round(100*l<0?60*l+360:60*l),100*(t?n<=.5?t/(2*n-t):t/(2-(2*n-t)):0),100*(2*n-t)/2]}function getHslColor(o){return`hsl(${o.h}, ${o.s}%, ${o.l}%)`}function getHslaColor(o,r){return`hsla(${o.h}, ${o.s}%, ${o.l}%, ${r})`}function pline(o,r,e,n,t){pg.push();let l=createVector(o,r),a=createVector(e,n),s=Math.atan2(n-r,e-o),i=l.dist(a);for(let o=0;o<i;o+=.4){let r=random()*pX*.05,e=l.x+o*cos(s.toFixed(2))+random(-.2,.2),n=l.y+o*sin(s.toFixed(2))+random(-.2,.2);pg.ellipse(e,n,r)}pg.pop()}
class Tile{constructor(e,t,i,s,r,a){this.x=e,this.y=t,this.w=i,this.h=s,this.scol=r,this.sweight=a}draw(e,t){e.push(),e.stroke(this.scol),e.strokeWeight(this.sweight);let i=g.features.Swell,s=t,r,a,n;switch(g.features.Extension){case"Complementary":switch(r=color((hue(t)+180)%360,saturation(t),brightness(t)),g.features.Filter){case"N":noise(this.x,this.y)>.5&&(s=r);break;case"ME":int(hue(t))%2==1&&(s=r);break;case"MU":int(hue(t))%3==1&&(s=r);break;case"RE":int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/2&&(s=r);break;case"RU":int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/7*5&&(s=r)}break;case"Split Complementary":switch(r=color((hue(t)+180-45)%360,saturation(t),brightness(t)),a=color((hue(t)+180+45)%360,saturation(t),brightness(t)),g.features.Filter){case"N":.33>noise(this.x,this.y)&&(s=r),noise(this.x,this.y)>.67&&(s=a);break;case"ME":int(hue(t))%3==1&&(s=r),int(hue(t))%3==2&&(s=a);break;case"MU":int(hue(t))%3==1&&(s=r),int(hue(t))%5==1&&(s=a);break;case"RE":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*2&&(s=a);break;case"RU":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/7*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/5*4&&(s=a)}break;case"Triad":switch(r=color((hue(t)-120)%360,saturation(t),brightness(t)),a=color((hue(t)+120)%360,saturation(t),brightness(t)),g.features.Filter){case"N":.33>noise(this.x,this.y)&&(s=r),noise(this.x,this.y)>.67&&(s=a);break;case"ME":int(hue(t))%3==1&&(s=r),int(hue(t))%3==2&&(s=a);break;case"MU":int(hue(t))%3==1&&(s=r),int(hue(t))%5==1&&(s=a);break;case"RE":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/3*2&&(s=a);break;case"RU":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/7*1&&(s=r),int(hue(t))>g.features.hue_min+(g.features.hue_max-g.features.hue_min)/5*4&&(s=a)}break;case"Square":switch(r=color((hue(t)-90)%360,saturation(t),brightness(t)),a=color((hue(t)+90)%360,saturation(t),brightness(t)),n=color((hue(t)+180)%360,saturation(t),brightness(t)),g.features.Filter){case"N":.25>noise(this.x,this.y)?s=r:noise(this.x,this.y)>.5?s=a:.75>noise(this.x,this.y)&&(s=n);break;case"ME":int(hue(t))%4==1&&(s=r),int(hue(t))%4==2&&(s=a),int(hue(t))%4==3&&(s=n);break;case"MU":int(hue(t))%7==1&&(s=r),int(hue(t))%9==1&&(s=a),int(hue(t))%11==1&&(s=n);break;case"RE":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/4*1?s=r:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/4*2?s=a:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/4*3&&(s=n);break;case"RU":int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/19*5?s=r:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/19*9?s=a:int(hue(t))<g.features.hue_min+(g.features.hue_max-g.features.hue_min)/19*11&&(s=n)}}e.fill(s);let l=this.x+this.w/2,u=this.y+this.h/2;if(e.translate(l,u),e.rotate(noise(this.x*i,this.y*i)*g.features.Swirl),noise(this.x*i,this.y*i)>g.features.scalingthreshold){let o=noise((this.y-this.x)*this.x*2*i,(this.x+this.y)/this.y*2*i);o=map(o,0,1,.75,2),e.scale(o)}"Rectangle"==g.features.Atom?e.rect(0,0,this.w,this.h):"Ellipse"==g.features.Atom?e.ellipse(0,0,this.w,this.h):"Tripoint"==g.features.Atom?star(e,0,0,.3*Math.min(this.w,this.h),1.3*Math.min(this.w,this.h),3):"Compass"==g.features.Atom&&star(e,0,0,.3*Math.min(this.w,this.h),1.15*Math.min(this.w,this.h),4),e.pop()}}function generateTilesAnarchia(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=[];for(let $=0;$<l;$++)for(let c=0;c<n;c++)h.push(new Tile(c*i+u,$*s+o,i,s,r,a));for(let f=h.length-1;f>0;f--){let p=g.R.random_int(0,f+1);[h[f],h[p]]=[h[p],h[f]]}return h}function generateTilesExspiralis(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2;n%2==0&&(u+=i/2),l%2==0&&(o+=s/2);let h=[],$=Array.from({length:l},()=>Array(n).fill(!1)),c=Math.floor((e/2-u)/i),f=Math.floor((t/2-o)/s),p=[0,-1,0,1],_=[1,0,-1,0],m=0;for(let d=1;d<=n*l;d++)for(let x=0;x<2;x++){for(let w=0;w<d;w++)c>=0&&c<n&&f>=0&&f<l&&!$[f][c]&&($[f][c]=!0,h.push(new Tile(c*i+u,f*s+o,i,s,r,a))),c+=p[m],f+=_[m];m=(m+1)%4}return h}function generateTilesBoustrophedon(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=[];for(let $=0;$<l;$++)for(let c=0;c<n;c++){let f=$%2==0?n-1-c:c;h.push(new Tile(f*i+u,y*s+o,i,s,r,a))}return h}function generateTilesDiagonios(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[];for(let p=0;p<=l+n-2;p++)for(let _=p;_>=0;_--){let m=p-_;m<n&&_<l&&f.push(h[_][m])}return f}function generateTilesFluctus(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[],p=l/2,_=2*Math.PI/n;for(let m=0;m<n;m++){let d=Math.round(p*Math.sin(_*m)+p);for(let x=0;x<l;x++){let w=(x+d)%l;f.push(h[w][m])}}return f}function generateTilesAdamas(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=Math.floor(n/2),p=Math.floor(l/2),_=[];for(let m=0;m<l;m++)for(let d=0;d<n;d++){let x=Math.abs(d-f)+Math.abs(m-p);void 0===_[x]&&(_[x]=[]),_[x].push(h[m][d])}return _.flat()}function generateTilesInspiralis(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[],p=[[1,0],[0,1],[-1,0],[0,-1]],_=0,m=0,d=0;for(let x=0;x<n*l;x++){f.push(h[d][m]),h[d][m]=null;let w=m+p[_][0],v=d+p[_][1];(w<0||w>=n||v<0||v>=l||null==h[v][w])&&(w=m+p[_=(_+1)%4][0],v=d+p[_][1]),m=w,d=v}return f}function generateTilesSinister(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=[];for(let $=n-1;$>=0;$--)for(let c=0;c<l;c++)h.push(new Tile($*i+u,c*s+o,i,s,r,a));return h}function generateTilesOccultum(e,t,i,s,r,a){let n=Math.floor(e/i)+6,l=Math.floor(t/s)+6,u=0-(n*i-e)/2,o=0-(l*s-t)/2,h=Array.from({length:l},()=>Array(n).fill(null));for(let $=0;$<l;$++)for(let c=0;c<n;c++)h[$][c]=new Tile(c*i+u,$*s+o,i,s,r,a);let f=[],p=Array.from({length:l},()=>Array(n).fill(!1)),_=[0,1,0,-1],m=[-1,0,1,0],d=g.R.random_int(0,n-1),x=[[g.R.random_int(0,l-1),d]];for(;x.length>0;){let[w,v]=x.shift();f.push(h[w][v]),p[w][v]=!0;let b=[];for(let S=0;S<4;S++){let T=v+_[S],k=w+m[S];T>=0&&T<n&&k>=0&&k<l&&!p[k][T]&&b.push([k,T])}if(b.length>0&&f.length%29!=0){let C=g.R.random_choice(b);x.push(C),p[C[0]][C[1]]=!0}else if(0===x.length){let I=[];for(let N=0;N<l;N++)for(let A=0;A<n;A++)p[N][A]||I.push([N,A]);if(I.length>0){let[D,M]=g.R.random_choice(I);x.push([D,M]),p[D][M]=!0}}}return f}function setup(){colorMode(HSB),frameRate((g=GetGlobals()).fps);let e=YMDfromDateString(g.features.Inception);g.canvas.rectMode(CENTER),g.canvas.ellipseMode(CENTER),createCanvas(window.innerWidth,window.innerHeight),windowResized();let t=getNextNumberAndRemainingDigits(g.features.Delta,getTotalSecondsFromInception(e[0],e[1],e[2],12,0,0)*g.fps*g.effectivetempo*6+1);g.digits.currentNumber=str(t[0]),g.digits.digits=t[1].split(""),g.digits.next(),g.showNumber=g.digits.currentNumber;noiseSeed(g.R.random_int(0,1e8))}function draw(){g.tick++,g.textUpdateTick++;for(let e=0;e<g.effectivetempo;e++){if(g.tilesIdx>=g.tilesIdxMax?g.tilesIdx=0:g.tilesIdx++,"anarchia"==g.features.Order){let t=g.tilesIdx,i=g.R.random_int(g.tilesIdx,g.tilesIdxMax),s=g.tiles[t];g.tiles[t]=g.tiles[i],g.tiles[i]=s}let r=map(g.digits.next(),0,99,g.features.hue_min,g.features.hue_max),a=map(g.digits.next(),0,99,g.features.sat_min,g.features.sat_max),n=map(g.digits.next(),0,99,g.features.bri_min,g.features.bri_max);AddLetterToDecodedText(HSB2Letter(r,a,n)),AddPixelToPreviewCanvas(HSB2Pixel(r,a,n)),g.tiles[g.tilesIdx].draw(g.canvas,color(r,a,n))}g.output.image(g.canvas,50*g.scale,50*g.scale),g.output.push(),g.output.noStroke(0);let l=color(0,0,0);l.setAlpha(1),g.output.fill(l),g.output.rect(0,0,50*g.scale,g.height),g.output.rect(g.width-50*g.scale,0,g.width,g.height),g.output.rect(0,0,g.width,50*g.scale),g.output.rect(0,g.height-250*g.scale,g.width,g.height),g.output.fill(color(255)),g.output.textFont("Georgia"),g.output.textAlign("center"),g.output.textSize(72*g.scale),0==g.showNumber&&(g.digits.currentNumber.length>30?g.showNumber=NumberStringtoScientificNotation(g.digits.currentNumber):g.showNumber=g.digits.currentNumber),g.tick%15==0&&(g.outputText=GetText(161),g.digits.currentNumber.length>33?g.showNumber=NumberStringtoScientificNotation(g.digits.currentNumber):g.showNumber=g.digits.currentNumber,UpdatePreviewCanvas()),(20==g.tick||g.tick>20&&g.textUpdateTick*g.repeatMax>g.previewCanvas.width/4*g.previewCanvas.height/4)&&(g.textUpdateTick=0),g.width/g.height>1.45&&(g.output.push(),g.output.noStroke(0),g.output.fill(color(255)),g.output.textFont("Courier"),g.output.textSize(18*g.scale),g.output.text(g.outputText,50*g.scale,g.height-200*g.scale,250*g.scale,170*g.scale),g.output.pop(),g.output.image(g.previewCanvas,g.width-50*g.scale-g.previewCanvas.width-5*g.scale,g.height-200*g.scale)),g.output.push(),g.output.stroke(0,0,0),g.output.strokeWeight(10*g.scale),g.output.text("THIS ART IS",g.width/2-175*g.scale,g.height-135*g.scale),g.output.noStroke(),g.output.pop(),g.output.push(),g.output.stroke(0,0,0),g.output.strokeWeight(8*g.scale),g.output.textStyle("italic"),g.output.textSize(22*g.scale),g.output.text("Decoded from concatenated digits near "+g.showNumber+",\nhaving started from zero by increments of "+g.features.Delta+" on "+g.features.Inception+".",g.width/2,g.height-85*g.scale),g.output.pop(),g.output.fill(color(0,0,0)),g.output.textFont("Georgia"),g.output.textAlign("center"),g.output.textSize(72*g.scale),g.output.stroke(color(0,0,0)),g.output.strokeWeight(10*g.scale),g.output.text("ILLEGAL!",g.width/2+217*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+219*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-134*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-136*g.scale),g.output.fill(color(0,100,100)),g.output.noStroke(),g.output.text("ILLEGAL!",g.width/2+217*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+219*g.scale,g.height-135*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-134*g.scale),g.output.text("ILLEGAL!",g.width/2+218*g.scale,g.height-136*g.scale),g.output.pop(),image(g.output,0,0,window.innerWidth,window.innerHeight)}function windowResized(){createCanvas(window.innerWidth,window.innerHeight),g.reinitializeSizes();let e=g.sdim/g.features.Dimension,t=g.sdim/g.features.Dimension;switch(e*=g.features.Aspect,g.repeatMax=Math.max(1,g.features.Dimension*g.features.Dimension/100),g.features.Order){case"Sinister":g.tiles=generateTilesSinister(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Anarchia":g.tiles=generateTilesAnarchia(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Occultum":g.tiles=generateTilesOccultum(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Inspiralis":g.tiles=generateTilesInspiralis(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Exspiralis":g.tiles=generateTilesExspiralis(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Adamas":g.tiles=generateTilesAdamas(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Boustrophedon":g.tiles=generateTilesBoustrophedon(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Fluctus":g.tiles=generateTilesFluctus(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;case"Diagonios":g.tiles=generateTilesDiagonios(g.canvas.width,g.canvas.height,e,t,color(0),1*g.scale);break;default:console.log("PANIC: Default switch for order should not be reachable.")}g.tilesIdxMax=g.tiles.length-1,g.textSize=int(g.tiles.length)}function HSB2Letter(e,t,i){return g.letters[int(map(e/3*(t/5)*(i/5),g.valueRangeMin,g.valueRangeMax,0,g.letters.length-1))]}function HSB2Pixel(e,t,i){let s=int(map(e*t*i*100,g.valueRangeMin,g.valueRangeMax,0,16777216));push(),colorMode(RGB);let r=color(s>>16&255,s>>8&255,255&s);return colorMode(HSB),pop(),r}function AddLetterToDecodedText(e){g.text.length<g.textSize||g.text.shift(),g.text.push(e)}function AddPixelToPreviewCanvas(e){g.previewPixels[g.previewCanvasPixelIdx]=[red(e),green(e),blue(e),alpha(e)],g.previewCanvasPixelIdx++,g.previewCanvasPixelIdx>=g.previewCanvasPixelMax&&(g.previewCanvasPixelIdx=0)}function UpdatePreviewCanvas(){tmpPixelDensity=pixelDensity(),g.previewCanvas.loadPixels();let e=4*tmpPixelDensity;for(let t=0;t<g.previewCanvasPixelMax;t++){let i=t%Math.floor(g.previewCanvasWidth/e)*e,s=Math.floor(t/Math.floor(g.previewCanvasWidth/e))*e;for(let r=0;r<e;r++)for(let a=0;a<e;a++){let n=4*((s+a)*g.previewCanvas.width+(i+r));g.previewCanvas.pixels[n]=g.previewPixels[t][0],g.previewCanvas.pixels[n+1]=g.previewPixels[t][1],g.previewCanvas.pixels[n+2]=g.previewPixels[t][2],g.previewCanvas.pixels[n+3]=g.previewPixels[t][3]}}g.previewCanvas.updatePixels()}function GetText(e){let t=g.text.join("").substring(0,e),i=Math.ceil(t.length/7),s="";for(let r=0;r<t.length;r+=i)s+=t.substring(r,r+i)+"\n";return s}function NumberStringtoScientificNotation(e,t=15){let i="";("-"===e[0]||"+"===e[0])&&(i=e[0],e=e.substring(1));let s=e.length-1,r=Math.max(0,t-(i?3:1)-(s>=10?3:2)),a=i+e[0];return r>0&&(a+="."+e.substring(1,1+r)),a+=" \xd7 10^"+s}function addStringNumbers(e,t){let i=0,s=[],r=Math.max(e.length,t.length);e=e.padStart(r,"0"),t=t.padStart(r,"0");for(let a=r-1;a>=0;a--){let n=parseInt(e[a])+parseInt(t[a])+i;s[a]=n%10,i=Math.floor(n/10)}return i>0&&s.unshift(i),s.join("")}function MultiplyStringNumbers(e,t){let i="";("-"===e[0]&&"-"!==t[0]||"-"!==e[0]&&"-"===t[0])&&(i="-"),"-"===e[0]&&(e=e.slice(1)),"-"===t[0]&&(t=t.slice(1));let s=Array(e.length+t.length).fill(0);for(let r=e.length-1;r>=0;r--)for(let a=t.length-1;a>=0;a--){let n=parseInt(e[r])*parseInt(t[a]),l=s[r+a+1]+n;s[r+a+1]=l%10,s[r+a]+=Math.floor(l/10)}for(;0===s[0];)s.shift();return 0===s.length?"0":i+s.join("")}function getTotalSecondsFromInception(e,t,i,s,r,a){let n=new Date,l=n.getUTCFullYear(),u=n.getUTCMonth()+1,o=n.getUTCDate(),h=n.getUTCHours(),$=n.getUTCMinutes(),c=n.getUTCSeconds(),f=(l-e)*31557600;return f+=(u-t)*2629800,f+=(o-i)*86400,f+=(h-s)*3600,f+=($-r)*60,(f+=c-a).toString()}function CalculateCurrentNumberFromInception(e,t,i,s,r){let a=r<0?"-":"";r=Math.abs(r);let n=getTotalSecondsFromInception(e,t,i,12,0,0),l;return a+MultiplyStringNumbers(n,MultiplyStringNumbers(s.toString(),r.toString()))}function YMDfromDateString(e){let t=e.split(", "),i=t[0].split(" "),s={January:1,February:2,March:3,April:4,May:5,June:6,July:7,August:8,September:9,October:10,November:11,December:12}[i[0]],r=parseInt(i[1]),a=t[1].split(" "),n=parseInt(a[0]);return"BC"===a[1]&&(n=-n),[n,s,r]}function numDigits(e){if(e<=0)throw Error("n must be a positive integer");return Math.floor(Math.log10(e))+1}function incrementsBetween(e,t,i){if(e<=0)throw Error("incr must be a positive number");return Math.floor((i-(t%e==0?t:t+e-t%e))/e)+1}function concatenatedIncrementSequenceDigitsUntil(e,t){if(t<1)return 0;let i=0;for(let s=1;s<=t;s*=10){let r=s,a=Math.min(10*r-1,t),n=incrementsBetween(e,r,a),l=numDigits(r);i+=n*l}return i+1}let cache={};function cachedConcatenatedIncrementSequenceDigitsUntil(e,t){let i=e+"-"+t;return void 0===cache[i]&&(cache[i]=concatenatedIncrementSequenceDigitsUntil(e,t)),cache[i]}function getNextNumberAndRemainingDigits(e,t){if(1===t)return[0,""];let i=0,s,r,a;for(r=1;;r*=2){if((a=cachedConcatenatedIncrementSequenceDigitsUntil(e,r))>=t){s=r;break}i=r}for(;s-i>1;)if((a=cachedConcatenatedIncrementSequenceDigitsUntil(e,r=i+Math.floor((s-i)/2)))>t){if(s==r&&cachedConcatenatedIncrementSequenceDigitsUntil(e,r)>=t)break;s=r}else if(a<t){if(i==r&&cachedConcatenatedIncrementSequenceDigitsUntil(e,r)<t)break;i=r}else break;let n=i+1,l=String(n),u=t-a;return[n,l.substring(u)]}function star(e,t,i,s,r,a){e.push(),e.rotate(TWO_PI/4);var n=TWO_PI/a,l=n/2;e.beginShape();for(var u=0;u<TWO_PI;u+=n){var o=t+cos(u)*s,h=i+sin(u)*s;e.vertex(o,h);var $=t+cos(u+l)*r,c=i+sin(u+l)*r;e.vertex($,c)}e.endShape(CLOSE),e.pop()}
var g;function calculateFeatures(t){R=new class e{constructor(){this.useA=!1;let e=function(t){let e=parseInt(t.substr(0,8),16),i=parseInt(t.substr(8,8),16),s=parseInt(t.substr(16,8),16),h=parseInt(t.substr(24,8),16);return function(){s|=0;let t=((e|=0)+(i|=0)|0)+(h|=0)|0;return h=h+1|0,e=i^i>>>9,i=s+(s<<3)|0,s=(s=s<<21|s>>>11)+t|0,(t>>>0)/4294967296}};this.prngA=new e(t.hash.substr(2,32)),this.prngB=new e(t.hash.substr(34,32));for(let i=0;i<1e6;i+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(t,e){return t+(e-t)*this.random_dec()}random_int(t,e){return Math.floor(this.random_num(t,e+1))}random_bool(t){return this.random_dec()<t}random_choice(t){return t[this.random_int(0,t.length-1)]}};let e={},i=R.random_choice(["July 1, 198000 BC","June 29, 9000 BC","February 5, 146 BC","April 1, 5 BC","June 29, 452 AD","March 15, 453 AD","June 8, 632 AD","June 15, 763 BC","May 2, 896 AD","March 27, 1239 AD","March 1, 1896 AD",]);switch(e.Inception=R.random_choice(["January","February","March","April","May","June","July","August","September","October","November","December"]),e.Inception){case"April":case"June":case"September":case"November":e.Inception+=" "+R.random_int(1,30).toString();break;case"February":e.Inception+=" "+R.random_int(1,28).toString();break;default:e.Inception+=" "+R.random_int(1,31).toString()}let s=R.random_choice(["AD","BC","AD","AD","AD","AD","UQ"]);"AD"==s?e.Inception+=", "+R.random_choice([R.random_int(2e3,2022),R.random_int(1980,2022),R.random_int(1900,2022),R.random_int(1500,2022),R.random_int(896,2022),R.random_int(1,2022)]).toString()+" "+s:"UQ"==s?e.Inception=i:e.Inception+=", "+R.random_choice([R.random_int(1,1e3),R.random_int(1,2e3),R.random_int(1,4e3),R.random_int(1,6e3),R.random_int(1,9e3)]).toString()+" "+s,e.Delta=R.random_choice([1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,5,5,5,5,5,5,7,7,7,7,7,11,11,11,13,13,13,13,13,17,17,17,17,17,19,19,19,23,23,23,23,23,29]),e.Dimension=R.random_choice([29,47,47,47,65,65,65,65,65,65,65,65,65,65,65,83,83,83,83,101,101,101,119]);let h=R.random_choice([100,100,100,100,100,100,75,75,75,75,75,75,50,50,50,50,25,25,25,25,1]);return e.Dimension>65&&h<25&&(h=25),e.Tempo=h,e.Order=R.random_choice(["Sinister","Adamas","Exspiralis","Inspiralis","Diagonios","Fluctus","Anarchia","Occultum"]),e.Core=R.random_choice([R.random_choice(["Smaragd","J\xe4ine","Keki","Lumivalge","Kincses","M\xe4lestus","K\xe9kfű","Sinapelsin","Prismaatiline","P\xf6\xf6ritus","Rohelus","V\xe4rvik\xfcllane","Elektrosz\xfcrke"]),R.random_choice(["Orgona","V\xe4rvigamma",R.random_choice(["Kuninglik","Paabulind","Vikerkaar","Punainen"]),"Piirilevy","Kommi","Kuldjas","Mustvalge",R.random_choice(["Fak\xf3","Veres","T\xfczes","Kollane"])])]),e.Extension=R.random_choice(["Monochromatic","Complementary","Split Complementary","Triad","Square"]),e.Filter=R.random_choice(["N","ME","MU","RE","RU"]),R.random_int(0,100)>50?e.Aspect=3.6*R.random_dec()+.4:e.Aspect=1,e.Atom=R.random_choice(["Rectangle",R.random_choice(["Ellipse",R.random_choice(["Ellipse","Tripoint","Compass","Compass"])])]),("Tripoint"==e.Atom||"Compass"==e.Atom)&&(e.Aspect=1),R.random_int(0,100)>33||1!=e.Aspect?(e.Swirl=R.random_int(0,6.28),e.Swell=.00495*R.random_dec()+195e-7):(e.Swirl=0,e.Swell=0),e}function GetGlobals(){return g=new class t{reinitializeSizes(){this.default_size=1e3,this.width=window.innerWidth,this.height=window.innerHeight;let t=Math.min(window.innerWidth,window.innerHeight)/g.features.Dimension,e=Math.min(window.innerWidth,window.innerHeight)/g.features.Dimension;t*=g.features.Aspect;let i=window.innerWidth-100*(Math.min(window.innerWidth,window.innerHeight)/1e3),s=window.innerHeight-50*(Math.min(window.innerWidth,window.innerHeight)/1e3)-250*(Math.min(window.innerWidth,window.innerHeight)/1e3);this.effectivetempo=Math.floor((Math.floor(i/t)+6)*(Math.floor(s/e)+6)/g.features.Tempo);let h=this.width,a=this.height;(this.width<this.default_size||this.height<this.default_size)&&(this.width>this.height?(this.height=this.default_size,this.width=Math.floor(this.height*(h/a))):(this.width=this.default_size,this.height=Math.floor(this.width*(a/h)))),this.sdim=Math.min(this.width,this.height),this.ldim=Math.max(this.width,this.height),this.centerx=Math.floor(this.width/2),this.centery=Math.floor(this.height/2),this.minx=0,this.maxx=this.width,this.miny=0,this.maxy=this.height,this.scale=this.sdim/this.default_size,this.width=window.innerWidth,this.height=window.innerHeight,h=this.width,a=this.height,(this.width<this.default_size||this.height<this.default_size)&&(this.width>this.height?(this.height=this.default_size,this.width=Math.floor(this.height*(h/a))):(this.width=this.default_size,this.height=Math.floor(this.width*(a/h)))),this.tick=0,this.textUpdateTick=0,this.showNumber=0,this.previewCanvasWidth=0,this.previewCanvasHeight=0,this.previewCanvasPixelIdx=0,this.previewCanvasPixelMax=0,push(),textFont("Courier"),textSize(18*g.scale),this.previewCanvasWidth=Math.ceil(textWidth("12345678901234567890123")),this.previewCanvasHeight=.6245353159851301*this.previewCanvasWidth,pop(),this.previewCanvas=createGraphics(this.previewCanvasWidth,this.previewCanvasHeight),this.previewCanvasPixelMax=Math.ceil(this.previewCanvasWidth/4)*Math.ceil(this.previewCanvasHeight/4),this.previewPixels=Array(g.previewCanvasPixelMax).fill([0,0,0,255]),this.text=[],this.outputText="",this.textSize=161,this.letters="abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()[]{};:\"',./<>?\\|`~-=_+ ",this.repeatMax=1,this.sdim=Math.min(this.width,this.height),this.ldim=Math.max(this.width,this.height),this.centerx=Math.floor(this.width/2),this.centery=Math.floor(this.height/2),this.minx=0,this.maxx=this.width,this.miny=0,this.maxy=this.height,this.scale=this.sdim/this.default_size,this.canvas=createGraphics(g.width-100*g.scale,g.height-50*g.scale-250*g.scale),this.canvas.background(0,0,0,255),this.output=createGraphics(this.width,this.height)}constructor(){this.R=new class t{constructor(){this.useA=!1;let t=function(t){let e=parseInt(t.substr(0,8),16),i=parseInt(t.substr(8,8),16),s=parseInt(t.substr(16,8),16),h=parseInt(t.substr(24,8),16);return function(){s|=0;let t=((e|=0)+(i|=0)|0)+(h|=0)|0;return h=h+1|0,e=i^i>>>9,i=s+(s<<3)|0,s=(s=s<<21|s>>>11)+t|0,(t>>>0)/4294967296}};this.prngA=new t(tokenData.hash.substr(2,32)),this.prngB=new t(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random_dec(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}random_num(t,e){return t+(e-t)*this.random_dec()}random_int(t,e){return Math.floor(this.random_num(t,e+1))}random_bool(t){return this.random_dec()<t}random_choice(t){return t[this.random_int(0,t.length-1)]}},this.features=calculateFeatures(tokenData);let t=/\bHeadlessChrome/.test(navigator.userAgent);switch(t&&(this.features.Tempo=1),this.features.scalingthreshold=R.random_dec(),this.features.Core){case"Kincses":this.features.hue_min=143,this.features.hue_max=193,this.features.sat_min=48,this.features.sat_max=97,this.features.bri_min=15,this.features.bri_max=76;break;case"M\xe4lestus":this.features.hue_min=265,this.features.hue_max=315,this.features.sat_min=7,this.features.sat_max=86,this.features.bri_min=47,this.features.bri_max=100;break;case"K\xe9kfű":this.features.hue_min=234,this.features.hue_max=284,this.features.sat_min=0,this.features.sat_max=95,this.features.bri_min=48,this.features.bri_max=97;break;case"Sinapelsin":this.features.hue_min=181,this.features.hue_max=231,this.features.sat_min=49,this.features.sat_max=90,this.features.bri_min=12,this.features.bri_max=91;break;case"Prismaatiline":this.features.hue_min=10,this.features.hue_max=60,this.features.sat_min=36,this.features.sat_max=72,this.features.bri_min=29,this.features.bri_max=75;break;case"P\xf6\xf6ritus":this.features.hue_min=21,this.features.hue_max=71,this.features.sat_min=16,this.features.sat_max=79,this.features.bri_min=46,this.features.bri_max=68;break;case"Rohelus":this.features.hue_min=133,this.features.hue_max=178,this.features.sat_min=48,this.features.sat_max=69,this.features.bri_min=32,this.features.bri_max=93;break;case"V\xe4rvik\xfcllane":this.features.hue_min=23,this.features.hue_max=73,this.features.sat_min=49,this.features.sat_max=99,this.features.bri_min=32,this.features.bri_max=87;break;case"Elektrosz\xfcrke":this.features.hue_min=165,this.features.hue_max=215,this.features.sat_min=12,this.features.sat_max=30,this.features.bri_min=12,this.features.bri_max=92;break;case"Orgona":this.features.hue_min=288,this.features.hue_max=338,this.features.sat_min=12,this.features.sat_max=67,this.features.bri_min=40,this.features.bri_max=97;break;case"V\xe4rvigamma":this.features.hue_min=212,this.features.hue_max=262,this.features.sat_min=40,this.features.sat_max=92,this.features.bri_min=55,this.features.bri_max=90;break;case"Smaragd":this.features.hue_min=103,this.features.hue_max=153,this.features.sat_min=21,this.features.sat_max=95,this.features.bri_min=28,this.features.bri_max=95;break;case"Kuninglik":this.features.hue_min=226,this.features.hue_max=276,this.features.sat_min=46,this.features.sat_max=66,this.features.bri_min=35,this.features.bri_max=68;break;case"Paabulind":this.features.hue_min=74,this.features.hue_max=124,this.features.sat_min=30,this.features.sat_max=87,this.features.bri_min=12,this.features.bri_max=80;break;case"Vikerkaar":this.features.hue_min=170,this.features.hue_max=220,this.features.sat_min=20,this.features.sat_max=86,this.features.bri_min=35,this.features.bri_max=70;break;case"J\xe4ine":this.features.hue_min=164,this.features.hue_max=214,this.features.sat_min=18,this.features.sat_max=80,this.features.bri_min=49,this.features.bri_max=100;break;case"Punainen":this.features.hue_min=88,this.features.hue_max=138,this.features.sat_min=18,this.features.sat_max=97,this.features.bri_min=23,this.features.bri_max=83;break;case"Piirilevy":this.features.hue_min=65,this.features.hue_max=115,this.features.sat_min=3,this.features.sat_max=82,this.features.bri_min=14,this.features.bri_max=83;break;case"Keki":this.features.hue_min=18,this.features.hue_max=68,this.features.sat_min=0,this.features.sat_max=19,this.features.bri_min=39,this.features.bri_max=100;break;case"Kommi":this.features.hue_min=50,this.features.hue_max=100,this.features.sat_min=17,this.features.sat_max=95,this.features.bri_min=31,this.features.bri_max=88;break;case"Kuldjas":this.features.hue_min=194,this.features.hue_max=244,this.features.sat_min=16,this.features.sat_max=93,this.features.bri_min=16,this.features.bri_max=89;break;case"Mustvalge":this.features.hue_min=0,this.features.hue_max=359,this.features.sat_min=0,this.features.sat_max=9,this.features.bri_min=10,this.features.bri_max=90;break;case"Fak\xf3":this.features.hue_min=0,this.features.hue_max=359,this.features.sat_min=15,this.features.sat_max=30,this.features.bri_min=70,this.features.bri_max=90;break;case"Veres":this.features.hue_min=0,this.features.hue_max=20,this.features.sat_min=70,this.features.sat_max=100,this.features.bri_min=50,this.features.bri_max=100;break;case"Lumivalge":this.features.hue_min=0,this.features.hue_max=359,this.features.sat_min=0,this.features.sat_max=100,this.features.bri_min=90,this.features.bri_max=100;break;case"T\xfczes":this.features.hue_min=21,this.features.hue_max=40,this.features.sat_min=70,this.features.sat_max=90,this.features.bri_min=70,this.features.bri_max=90;break;case"Kollane":this.features.hue_min=41,this.features.hue_max=80,this.features.sat_min=70,this.features.sat_max=100,this.features.bri_min=80,this.features.bri_max=100;break;default:console.log('ERROR! Should not be able to get to default in features["Core]" switch.')}this.fps=30,this.effectivetempo=9,this.valueRangeMin=int(this.features.hue_min/3*this.features.sat_min/5*this.features.bri_min/5),this.valueRangeMax=int(this.features.hue_max/3*this.features.sat_max/5*this.features.bri_max/5),this.default_size=1e3,this.width=window.innerWidth,this.height=window.innerHeight;let e=this.width,i=this.height;function s(t,e){t=t.replace(/^0+/,""),e=e.replace(/^0+/,""),t=("-"===t[0]?"":"+")+t,e=("-"===e[0]?"":"+")+e;let i="-"===t[0]?-1:1,s="-"===e[0]?-1:1;t=t.slice(1),e=e.slice(1);let h,a;return(i!==s?(a=function t(e,i){e<i&&([e,i]=[i,e]);let s=0,h=e.length-1,a=i.length-1,r=[];for(;h>=0;){let n=parseInt(e[h--]),u=a>=0?parseInt(i[a--]):0,m=n-u-s;m<0?(m+=10,s=1):s=0,r.unshift(m)}for(;0===r[0];)r.shift();return r.join("")||"0"}(t,e),h=t>=e?i:s):(a=function t(e,i){let s=0,h=e.length-1,a=i.length-1,r=[];for(;h>=0||a>=0||s>0;){let n=h>=0?parseInt(e[h--]):0,u=a>=0?parseInt(i[a--]):0,m=n+u+s;s=Math.floor(m/10),r.unshift(m%10)}return r.join("")}(t,e),h=i),"0"===a)?a:h<0?"-"+a:a}function h(t){return t.filter(t=>"string"==typeof t&&1===t.length&&!isNaN(Number(t)))}(this.width<this.default_size||this.height<this.default_size)&&(this.width>this.height?(this.height=this.default_size,this.width=Math.floor(this.height*(e/i))):(this.width=this.default_size,this.height=Math.floor(this.width*(i/e)))),this.sdim=Math.min(this.width,this.height),this.ldim=Math.max(this.width,this.height),this.centerx=Math.floor(this.width/2),this.centery=Math.floor(this.height/2),this.minx=0,this.maxx=this.width,this.miny=0,this.maxy=this.height,this.scale=this.sdim/this.default_size,this.canvas=createGraphics(this.width,this.height),this.canvas.background(0,0,0,255),this.output=createGraphics(this.width,this.height),this.tiles;let a=YMDfromDateString(this.features.Inception),r=CalculateCurrentNumberFromInception(a[0],a[1],a[2],30,this.features.Delta);this.digits=new class t{constructor(t="1",e="-3"){this.currentNumber=t,this.incrementValue=e,this.digits=h(this.currentNumber.split(""))}next(){for(this.digits=h(this.digits);this.digits.length<2;)this.currentNumber=s(this.currentNumber,this.incrementValue),this.digits=h(this.digits.concat(this.currentNumber.split("")));return Number(this.digits.shift()+this.digits.shift())}}(r,str(this.features.Delta)),this.tilesIdx=-1,this.tilesIdxMax=1}}}
"THIS ART IS ILLEGAL!" presents a bold critique of intellectual property norms and laws through an engaging blend of artistic and mathematical elements derived from an infinite series of concatenated digits that will, with time, encode every arbitrary finite sequence of characters and pixels, including ones deemed illegal for various reason by those in authority. The series uses a dynamic visual grid of rectangles, ellipses, and stars to create evolving patterns, reflecting a blend of order and chaos; and is intended as a sort of artistic homage to Jorge Luis Borges's Library of Babylon. Beyond the in-the-moment algorithmic organization, each work evolves over time, not from human interaction, but from the inexorable passage of time and the methodical progression of the numbers in each work's infinite series. The result is an experience that is not static but in perpetual flux and resumable, but not restartable, thereby guaranteeing short, medium, and long-term visual progression into an unbounded future. "THIS ART IS ILLEGAL!" is a resonant response to the rapidly shifting landscape of technology that is radically expanding the boundaries of human creative expression and the reflexive authoritarian responses it inspires among the masses. It eagerly implicates itself as leaning into the uncertain, the precarious, and the illicit, pulsating in defiance of the contemporary world and its long-standing obsession with restricting, subjugating, and criminalizing the uncontrollable.
Theoretical Townships explores the tension between flatness and depth within aerial representations of landscape. The title references a well-known diagram, created in 1785, illustrating the method for numbering sections of a standard township survey. Mirroring the structure of this diagram, each output from Theoretical Townships is subdivided into a grid of sections, ranging from one to thirty-six. In addition to incorporating landscape elements, such as pivot irrigators, roads, and buildings, the code also overlays large blocks of color, which create associations with two-dimensional quilting patterns. Through this representational conflation of flatness and depth, the project reveals an inherent conflict between landscape and the grid: the former being an irregular, topographic continuum, and the latter operating as an abstract, geometrical device for measurement and control. Embedded within the tension between landscape and the grid is a complex set of relations regarding the history and politics of territorial expansion.
Aesthethic and sounds of "Vendaval" is about the Wind, it means "Windstorm" or "Strong Wind" in Portuguese. In Brazil many houses use Wind Bells as decoration and for the relaxing song. So when the wind blows it plays totally randomly songs using the notes that are pre-defined in each tube, or bamboo. Vendaval is a work that mix Particle System in the visual and Generative Music. The user can interact by clicking in the work at any "tempo", each click will randomize a combination of notes, forming chords on oscilators. The music works with 2 oscilators wich "Oscilator A": randomizes frequencies (HZ) from 1hz to 200hz, and "Oscilator B" randomizes from 400hz to 1000hz, for each possible variable. So the viewer can interact with the work by helping creating the song in their own "tempo" if you click faster it will be played faster.... -Press "S" key to save a high quality .png file of the work. Created with noise algorythms and only points. 10 palletes, and some other attributes to ensure the variations will look very different one of each other.
Aesthethic and sounds of "Vendaval" is about the Wind, it means "Windstorm" or "Strong Wing" in Portuguese. In Brazil many houses use Wind Bells as decoration and for the relaxing song. So when the wind blows it plays totally randomly songs using the notes that are pre-defined in each tube, or bamboo. Vendaval is a work that mix Particle System in the visual and Generative Music. The user can interact by clicking in the work at any "tempo", each click will randomize a unique chord of oscilators. The music works with 2 oscilators wich "Oscilator A": randomizes frequencies (HZ) from 1hz to 200hz, and "Oscilator B" randomizes from 400hz to 1000hz, for each possible variable. So the viewer can interact with the work by helping creating the song in their own "tempo" if you click faster it will be played faster.... -Press "S" key to save a high quality .png file of the work. Created with noise algorythms and only points. 10 palletes, and some other attributes to ensure the variations will look very different one of each other.
Instructions; [space]: to pause and unpause [s]: saves the current canvas Click with cursor/tap with finger: populate the canvas and change the course of the animation To fully experience this artwork, it is recommended to open it in live view. There might be slight color variations between different aspect ratios -- "Life has a rhythm; it's constantly in motion"(Roebers, 2010), and embracing the notion that failure guides evolution(Whitehead, 1999). Aesthetics of Failure explores the organic fusion of two contrasting textures, seeking beauty within this blend. Dedicated to and inspired by Kim Cascone's article "The Aesthetics of Failure: Post-Digital Tendencies in Contemporary Computer Music"(2000), this collection employs custom shaders and p5.js to manipulate pixels and generate real-time animations that continuously evolve based on autonomous algorithmic choices. If the viewers choose to engage with the animation, they become active participants in shaping the artwork. By clicking and interacting with the animation, viewers populate the canvas and influence the computer's decision-making process. This interaction leads to a dynamic interplay between the human and the computer, blurring the boundaries in expression between creator, experiencer and the evolving creation. The animation's movement is guided by a steady rhythm, allowing viewers to perceive and adapt to the changes unfolding within the canvas. The computer continuously generates a stream of gestures, resulting in an ever-changing array of textures. Each gesture introduces new elements to the canvas, creating a fusion of watercolor-like forms and glitchy textures.
Lines of Memories is a project about how we remember the places that are dear to us. The places where we grew up. The places we had to leave for some reason. Different people had different reasons for that: some left in search of a better life, some for love, and others were forced to leave against their will. I haven't seen my home for almost a year and a half, haven't seen some family members, friends, colleagues. I long for the sight of a passenger plane soaring in the sky. That is what truly represents a symbol of peace. Because only where there are no wars or conflicts, airlines continue their operations, and people can peacefully fly to different cities for their own affairs. I miss the simple road trips across the country, where you can just look out the window and admire the beauty of fields, mountains, and forests on the horizon. I miss traveling to different cities, where you go not to escape from someone, but simply to relax and enjoy your time in a new place. I yearn for home. And all these places are still preserved in my memory, and in the memories of people like me. Over time, they have become blurry and less distinct. Details have faded, leaving only contours and outlines. But hope never disappears to restore them like a damaged file or restore them like an old photograph, to see these places again and overwrite them in my memory in the highest quality and resolution possible. - Press 's' to save a .png.
This project is a continuation of my research on particle systems. I like this process: using an algorithm to tame the chaos that particles create when they are impacted. And turn them into a finished work of art. It reminds us of our life: unlike chaos, we are constantly striving to build some kind of system, to gain a sense of balance and structure. The emergence of the concept was, in a certain sense, spontaneous, like much in the work with generative art. While experimenting with the code, I found an image that strongly reminded me of the abstract expressionist aesthetic. Many associations have emerged. Apart from abstract expressionism, it reminded me of the work of the Gutai group. Their work, often emerging from spontaneous meditation, has always been close to my heart. While working on the project, I delved deeper into their philosophy, which became even closer and clearer to me. After all, Gutai was founded in post-war Japan, and the artists of the group developed freedom of expression. While engaging with the enigmatic realm of chaotic phenomena, I find myself immersed in a meditative state, gently guiding the unruly currents of my thoughts. It is a graceful endeavor, seeking to imbue them with serenity and hush their ceaseless gallop. I explore different states of chaos and our emotions. From barely manageable to gradually gathering into a coherent system.
The strange shaped object in the center is drawn from a fractal formula based on mathematics. Around it are drawn like lines drawn by charcoal or chalk. These lines is also generated based on the same fractal formula as the central object. In other words, the same matter is expressed from different perspectives.The theme of this work is that expression comes with multiple perspectives. This approach to this idea of representation uses mathematical representation, which is my background.
th/6,height/2,width/3.1);fill("white") circle(width/6,height/2,width/60);fill("black") circle(width/6,height/2,width/70);push();translate(pivotX3,pivotY);rotate(pivotAngle4);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(width/6,height/2,width/100)} if(subject5>.5){noStroke();fill("tan") circle(width/2,height/2,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/2,height/2,width/3.1);fill("white") circle(width/2,height/2,width/60);fill("black") circle(width/2,height/2,width/70);push();translate(pivotX,pivotY);rotate(pivotAngle5);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(width/2,height/2,width/100)} if(subject6>.5){noStroke();fill("tan") circle(5*width/6,height/2,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/6,height/2,width/3.1);fill("white") circle(5*width/6,height/2,width/60);fill("black") circle(5*width/6,height/2,width/70);push();translate(pivotX4,pivotY);rotate(pivotAngle6);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(5*width/6,height/2,width/100)} if(subject7>.5){noStroke();fill("tan") circle(width/6,5*height/6,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/6,5*height/6,width/3.1);fill("white") circle(width/6,5*height/6,width/60);fill("black") circle(width/6,5*height/6,width/70);push();translate(pivotX3,pivotY4);rotate(pivotAngle7);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(width/6,5*height/6,width/100)} if(subject8>.5){noStroke();fill("tan") circle(width/2,5*height/6,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/2,5*height/6,width/3.1);fill("white") circle(width/2,5*height/6,width/60);fill("black") circle(width/2,5*height/6,width/70);push();translate(pivotX,pivotY4);rotate(pivotAngle8);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(width/2,5*height/6,width/100)} if(subject9>.5){noStroke();fill("tan") circle(5*width/6,5*height/6,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/6,5*height/6,width/3.1);fill("white") circle(5*width/6,5*height/6,width/60);fill("black") circle(5*width/6,5*height/6,width/70);push();translate(pivotX4,pivotY4);rotate(pivotAngle9);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(5*width/6,5*height/6,width/100)}}else if(subdivision>.025){push();if(subject2>.5){fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/4,height/4,width/2,height/2);noStroke();fill("tan") circle(width/4,height/4,width/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/4,height/4,width/2.1);fill("white") circle(width/4,height/4,width/40);fill("black") circle(width/4,height/4,width/50);push();translate(pivotX1,pivotY1);rotate(pivotAngle1);fill("white") rect(radius/4,0,width/4,width/800);rect(radius/4,0,width/500,width/80) rect(radius/4+width/20,0,width/1000,width/80) rect(radius/4-width/20,0,width/1000,width/80) rect(radius/4-width/10,0,width/1000,width/80) rect(radius/4+width/10,0,width/1000,width/80) pop();fill("grey") circle(width/4,height/4,width/80)} if(subject3>.5){fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/4,height/4,width/2,height/2);noStroke();fill("tan") circle(3*width/4,height/4,width/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/4,height/4,width/2.1);fill("white") circle(3*width/4,height/4,width/40);fill("black") circle(3*width/4,height/4,width/50);push();translate(pivotX2,pivotY1);rotate(pivotAngle2);fill("white") rect(radius/4,0,width/4,width/800);rect(radius/4,0,width/500,width/80) rect(radius/4+width/20,0,width/1000,width/80) rect(radius/4-width/20,0,width/1000,width/80) rect(radius/4-width/10,0,width/1000,width/80) rect(radius/4+width/10,0,width/1000,width/80) pop();fill("grey") circle(3*width/4,height/4,width/80)} if(subject4>.5){fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/4,3*height/4,width/2,height/2);noStroke();fill("tan") circle(3*width/4,3*height/4,width/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/4,3*height/4,width/2.1);fill("white") circle(3*width/4,3*height/4,width/40);fill("black") circle(3*width/4,3*height/4,width/50);push();translate(pivotX2,pivotY2);rotate(pivotAngle3);fill("white") rect(radius/4,0,width/4,width/800);rect(radius/4,0,width/500,width/80) rect(radius/4+width/20,0,width/1000,width/80) rect(radius/4-width/20,0,width/1000,width/80) rect(radius/4-width/10,0,width/1000,width/80) rect(radius/4+width/10,0,width/1000,width/80) pop();fill("grey") circle(3*width/4,3*height/4,width/80)} if(subject5>.5){fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/4,3*height/4,width/2,height/2);noStroke();fill("tan") circle(width/4,3*height/4,width/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/4,3*height/4,width/2.1);fill("white") circle(width/4,3*height/4,width/40);fill("black") circle(width/4,3*height/4,width/50);push();translate(pivotX1,pivotY2);rotate(pivotAngle4);fill("white") rect(radius/4,0,width/4,width/800);rect(radius/4,0,width/500,width/80) rect(radius/4+width/20,0,width/1000,width/80) rect(radius/4-width/20,0,width/1000,width/80) rect(radius/4-width/10,0,width/1000,width/80) rect(radius/4+width/10,0,width/1000,width/80) pop();fill("grey") circle(width/4,3*height/4,width/80)} if(subject3<.5&&subject4<.5&&subject6>.5){push();angleMode(DEGREES) translate(pivotX*2.5,-pivotY);rotate(90);noStroke();fill("black") rect(width/2,height/2,width*20,height/12);fill("gold") rect(width/2,height/2-height/800,width*20,height/1600);rect(width/2,height/2+height/800,width*20,height/1600);fill("white") rect(width/2,height/2-height/26,width*20,height/1600);rect(width/2,height/2+height/26,width*20,height/1600);if(subject2>.75){pop()}}else if(subject3<.5&&subject2<.5&&subject6>.5){push();angleMode(DEGREES) translate(0,-height/4);noStroke();fill("black") rect(width/2,height/2,width*20,height/12);fill("gold") rect(width/2,height/2-height/800,width*20,height/1600);rect(width/2,height/2+height/800,width*20,height/1600);fill("white") rect(width/2,height/2-height/26,width*20,height/1600);rect(width/2,height/2+height/26,width*20,height/1600);if(subject2>.75){pop()}}else if(subject4<.5&&subject5<.5&&subject6>.5){push();angleMode(DEGREES) translate(0,height/4);noStroke();fill("black") rect(width/2,height/2,width*20,height/12);fill("gold") rect(width/2,height/2-height/800,width*20,height/1600);rect(width/2,height/2+height/800,width*20,height/1600);fill("white") rect(width/2,height/2-height/26,width*20,height/1600);rect(width/2,height/2+height/26,width*20,height/1600);if(subject2>.75){pop()}}else if(subject2<.5&&subject5<.5&&subject6>.5){push();angleMode(DEGREES) translate(pivotX*1.5,-pivotY);rotate(90);noStroke();fill("black") rect(width/2,height/2,width*20,height/12);fill("gold") rect(width/2,height/2-height/800,width*20,height/1600);rect(width/2,height/2+height/800,width*20,height/1600);fill("white") rect(width/2,height/2-height/26,width*20,height/1600);rect(width/2,height/2+height/26,width*20,height/1600);if(subject2>.75){pop()}} pop()}else{if(subject>.5){fill(greenA+50,greenB+20,greenC+10) rect(width/2,height/2,width,height);noStroke();fill("tan") circle(width/2,height/2,width);fill(greenA,greenB,greenC) circle(width/2,height/2,width/1.05);fill("white") circle(width/2,height/2,width/20);fill("black") circle(width/2,height/2,width/25);push();translate(pivotX,pivotY);rotate(pivotAngle);fill("white") rect(radius/2,0,width/1.9,width/400);rect(radius/2,0,width/500,width/40) rect(radius/2+width/10,0,width/500,width/40) rect(radius/2-width/10,0,width/500,width/40) rect(radius/2-width/5,0,width/500,width/40) rect(radius/2+width/5,0,width/500,width/40) pop();fill("grey") circle(width/2,height/2,width/40)}else if(subject>.15){if(subject2>.75){push();angleMode(DEGREES) rotate(45);translate(pivotX,-pivotY)}else if(subject2>.5){push();angleMode(DEGREES) translate(pivotX*2,-pivotY);rotate(90)}else if(subject2>.25){push();angleMode(DEGREES) translate(-pivotX*2,pivotY*2.585);rotate(-45)} noStroke();fill("black") rect(width/2,height/2,width*20,height/6);fill("gold") rect(width/2,height/2-height/400,width*20,height/800);rect(width/2,height/2+height/400,width*20,height/800);fill("white") rect(width/2,height/2-height/13,width*20,height/800);rect(width/2,height/2+height/13,width*20,height/800);if(subject2>.75){pop()}else if(subject2>.5){pop()}else if(subject2>.25){pop()}}else if(subject>.08){noStroke();fill("black") rect(width/2,height/2,width*2,height/2.4);fill("white") rect(width/2,height/2-height/5,width*2,height/800);rect(width/2,height/2+height/5,width*2,height/800);rect(width/2,height/2-height/10,width*2,height/800);rect(width/2,height/2+height/10,width*2,height/800);fill("black") rect(width/2,height/2-height/10,width/16,height/9);rect(width/2+width/8,height/2-height/10,width/16,height/9);rect(width/2+width/4,height/2-height/10,width/16,height/9);rect(width/2+3*width/8,height/2-height/10,width/16,height/9);rect(width/2+width/2,height/2-height/10,width/16,height/9);rect(width/2+5*width/2,height/2-height/10,width/16,height/9);rect(width/2-width/8,height/2-height/10,width/16,height/9);rect(width/2-width/4,height/2-height/10,width/16,height/9);rect(width/2-3*width/8,height/2-height/10,width/16,height/9);rect(width/2-width/2,height/2-height/10,width/16,height/9);rect(width/2-5*width/2,height/2-height/10,width/16,height/9);rect(width/2,height/2+height/10,width/16,height/8);rect(width/2+width/8,height/2+height/10,width/16,height/8);rect(width/2+width/4,height/2+height/10,width/16,height/8);rect(width/2+3*width/8,height/2+height/10,width/16,height/8);rect(width/2+width/2,height/2+height/10,width/16,height/8);rect(width/2+5*width/2,height/2+height/10,width/16,height/8);rect(width/2-width/8,height/2+height/10,width/16,height/8);rect(width/2-width/4,height/2+height/10,width/16,height/8);rect(width/2-3*width/8,height/2+height/10,width/16,height/8);rect(width/2-width/2,height/2+height/10,width/16,height/8);rect(width/2-5*width/2,height/2+height/10,width/16,height/8);fill("gold") rect(width/2,height/2-height/400,width*2,height/800);rect(width/2,height/2+height/400,width*2,height/800)}else{stroke(0);strokeWeight(width/200);line(width/2-width/20,height/2,width/3,1.5*height/5);line(width/2+width/20.75,height/2,width/2.32,1.5*height/5);strokeWeight(width/80);line(width/1.99,height/1.98,width/2.62,1.5*height/5);fill(0);strokeWeight(width/400);line(width/2.35,height/2.2,width/2.01,height/2.42);line(width/2.55,height/2.5,width/2.16,height/2.765);line(width/2.55,height/2.5,width/2.01,height/2.42) line(width/2.35,height/2.2,width/2.16,height/2.765);noStroke();quad(width/3.04,1.48*height/5,width/2.44,1.275*height/5,width/2.2,1.7*height/5,width/2.62,1.9*height/5);noStroke();if(subject9>.5){fill("rgb(40,40,200)")}else{fill("rgb(200,40,40)")} circle(width/2,height/2,width/10);if(subject9>.5){fill("rgb(60,60,190)")}else{fill("rgb(190,60,60)")} circle(width/2,height/2,width/11);if(subject9>.5){fill("rgb(80,80,180)")}else{fill("rgb(180,80,80)")} circle(width/2,height/2,width/12);if(subject9>.5){fill("rgb(110,110,170)")}else{fill("rgb(170,110,110)")} circle(width/2,height/2,width/13)}} push();if(subdivision>.9){scale(.5);if(subject<.3){translate(-width/3,-height/3.5)}else if(subject2<.4){translate(-width/12,-height/3.25)}else if(subject34<.5){translate(width/1.5,height*1.35)}else{translate(width*8,height*8)}}else if(subdivision>.65){scale(.65);if(subject9<.3){translate(width/1.8,0)}else if(subject11<.4){translate(-width/3,height/3.25)}else if(subject21<.5){translate(-width/3,height/1.05)}else{translate(width*8,height*8)}}else if(subdivision>.45){scale(.75);if(subject8<.3){translate(width/1.5,height/12)}else if(subject11<.4){translate(width/3,height/3)}else if(subject13<.5){translate(-width/3,height/1.35)}else{translate(width*8,height*8)}}else if(subdivision>.25){scale(.85);if(subject2<.3){translate(width/12,-height/3.5)}else if(subject<.4){translate(-width/3,-height/3.5)}else if(subject9<.5){translate(width/2,height/2)}else{translate(width*8,height*8)}}else if(subdivision>.025){scale(.95);if(subject2<.3){translate(-width/2.75,-height/3)}else if(subject3<.4){translate(width/2.4,-height/3)}else if(subject4<.5){translate(width/2.35,height/2)}else if(subject5<.5){translate(-width/2.75,height/2.5)}else{translate(width*8,height*8)}}else{if(subject<.3){translate(width/3,height/6)}else{translate(width*8,height*8)}} houseX=R.random_int(5,25);houseY=random_int(20,36);fill("rgb(189,100,100)");rect(width/2+width/32,height/2-height/16,width/R.random_int(50,100),height/6);fill("black");rect(width/2+width/64,height/2-height/16,width/8-width/32,height/8);rect(width/2,height/2-width/32,width/8,height/12);triangle(width/2-width/16,height/2-height/14,width/2,height/2-height/16,width/2-width/32,height/2-height/8);rect(width/2+width/32,height/2-height/16,width/houseX,height/8);fill(R.random_choice(['white','rgb(251,241,241)','white','rgb(244,244,244)','rgb(242,244,231)','white']));rect(width/2,height/2,width/8,height/16);triangle(width/2-width/16,height/2-height/33,width/2,height/2-height/33,width/2-width/32,height/2-height/12);rect(width/2+width/32,height/2,width/houseX,height/16);fill("rgb(46,46,46)");rect(width/2-width/32,height/2+height/96,width/50,height/24);fill(R.random_choice(['#CE5272','#FF0000','#AB9B8E','#A37B82','#C29B9B','#FF7D96','#928BBA','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2-width/32,height/2+height/92,width/60,height/28);fill("rgb(86,85,92)");rect(width/2+width/32,height/2,width/64,height/houseY);fill("white");rect(width/2+width/32,height/2,width/64,height/400);rect(width/2+width/32,height/2,width/400,height/houseY);fill("gold") circle(width/2-width/38,height/2+height/90,width/300);if(R.random_int(1,10)>3){fill("rgb(150,138,138)");circle(width/2-width/32,height/2-height/32,width/R.random_int(50,96))} pop();push();if(plane>.48){rotate(R.random_dec()-R.random_dec()*3.5);translate(0,height/3-R.random_dec()*height/3);scale(R.random_dec()*3);fill("rgba(12,12,12,0.83)");quad(width/2-width/48,height/2-height/24,width/2-width/6,height/2+height/24,width/2-width/6,height/2,width/2-width/48,height/2-height/8);quad(width/2+width/48,height/2-height/24,width/2+width/6,height/2+height/24,width/2+width/6,height/2,width/2+width/48,height/2-height/8);ellipse(width/2,height/2-height/24,width/20,height/2.5);quad(width/2-width/30,height/2+height/6.5,width/2,height/2+height/8,width/2,height/2+height/6,width/2-width/30,height/2+height/5.5);quad(width/2+width/30,height/2+height/6.5,width/2,height/2+height/8,width/2,height/2+height/6,width/2+width/30,height/2+height/5.5)} pop(); addTexture(18); noLoop(); } function keyPressed(){if(keyCode===DOWN_ARROW){saveCanvas("Theoretical Township","png")} noLoop()}
dth/10,7*height/10,width/85);fill("black") circle(width/10,7*height/10,width/100);push();translate(pivotX9,pivotX12);rotate(pivotAngle16);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(width/10,7*height/10,width/180)} if(subject17>.5){noStroke();fill("tan") circle(3*width/10,7*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/10,7*height/10,width/5.2);fill("white") circle(3*width/10,7*height/10,width/85);fill("black") circle(3*width/10,7*height/10,width/100);push();translate(pivotX10,pivotX12);rotate(pivotAngle17);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(3*width/10,7*height/10,width/180)} if(subject18>.5){noStroke();fill("tan") circle(5*width/10,7*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/10,7*height/10,width/5.2);fill("white") circle(5*width/10,7*height/10,width/85);fill("black") circle(5*width/10,7*height/10,width/100);push();translate(pivotX11,pivotX12);rotate(pivotAngle18);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(5*width/10,7*height/10,width/180)} if(subject19>.5){noStroke();fill("tan") circle(7*width/10,7*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/10,7*height/10,width/5.2);fill("white") circle(7*width/10,7*height/10,width/85);fill("black") circle(7*width/10,7*height/10,width/100);push();translate(pivotX12,pivotX12);rotate(pivotAngle19);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(7*width/10,7*height/10,width/180)} if(subject20>.5){noStroke();fill("tan") circle(9*width/10,7*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/10,7*height/10,width/5.2);fill("white") circle(9*width/10,7*height/10,width/85);fill("black") circle(9*width/10,7*height/10,width/100);push();translate(pivotX13,pivotX12);rotate(pivotAngle20);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(9*width/10,7*height/10,width/180)} if(subject21>.5){noStroke();fill("tan") circle(width/10,9*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/10,9*height/10,width/5.2);fill("white") circle(width/10,9*height/10,width/85);fill("black") circle(width/10,9*height/10,width/100);push();translate(pivotX9,pivotX13);rotate(pivotAngle21);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(width/10,9*height/10,width/180)} if(subject22>.5){noStroke();fill("tan") circle(3*width/10,9*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/10,9*height/10,width/5.2);fill("white") circle(3*width/10,9*height/10,width/85);fill("black") circle(3*width/10,9*height/10,width/100);push();translate(pivotX10,pivotX13);rotate(pivotAngle22);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(3*width/10,9*height/10,width/180)} if(subject23>.5){noStroke();fill("tan") circle(5*width/10,9*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/10,9*height/10,width/5.2);fill("white") circle(5*width/10,9*height/10,width/85);fill("black") circle(5*width/10,9*height/10,width/100);push();translate(pivotX11,pivotX13);rotate(pivotAngle23);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(5*width/10,9*height/10,width/180)} if(subject24>.5){noStroke();fill("tan") circle(7*width/10,9*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/10,9*height/10,width/5.2);fill("white") circle(7*width/10,9*height/10,width/85);fill("black") circle(7*width/10,9*height/10,width/100);push();translate(pivotX12,pivotX13);rotate(pivotAngle24);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(7*width/10,9*height/10,width/180)} if(subject25>.5){noStroke();fill("tan") circle(9*width/10,9*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/10,9*height/10,width/5.2);fill("white") circle(9*width/10,9*height/10,width/85);fill("black") circle(9*width/10,9*height/10,width/100);push();translate(pivotX13,pivotX13);rotate(pivotAngle25);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(9*width/10,9*height/10,width/180)} if(subject13<.5&&church>.95){push();fill("black");rect(width/2,height/2-height/21,width/15,height/12);push();translate(0,-height/11.25);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);pop();fill("white");rect(width/2,height/2+width/35,width/15,height/15);rect(width/2,height/2,width/400,height/8);rect(width/2,height/2-height/17.5,width/90,height/400);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);fill("rgb(224,224,224)");rect(width/2,height/2+width/25,width/100,height/20);circle(width/2,height/2-height/100,height/60);fill("rgb(175,175,175)");rect(width/2,height/2+width/30,width/100,height/25);fill("rgb(179,76,76)");rect(width/2,height/2+width/35,width/100,height/35);pop()}else if(subject19<.5&&church>.95){push();scale(1.35);if(subject20<.5){translate(width/6,height/100)} fill("black");rect(width/2,height/2-height/21,width/15,height/12);push();translate(0,-height/11.25);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);pop();fill("white");rect(width/2,height/2+width/35,width/15,height/15);rect(width/2,height/2,width/400,height/8);rect(width/2,height/2-height/17.5,width/90,height/400);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);fill("rgb(224,224,224)");rect(width/2,height/2+width/25,width/100,height/20);circle(width/2,height/2-height/100,height/60);fill("rgb(175,175,175)");rect(width/2,height/2+width/30,width/100,height/25);fill("rgb(179,76,76)");rect(width/2,height/2+width/35,width/100,height/35);pop()}else if(subject14<.5&&church>.95){push();scale(1.15);{translate(width/(7+8*R.random_dec()),-height/(10+R.random_dec()))} fill("black");rect(width/2,height/2-height/21,width/15,height/12);push();translate(0,-height/11.25);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);pop();fill("white");rect(width/2,height/2+width/35,width/15,height/15);rect(width/2,height/2,width/400,height/8);rect(width/2,height/2-height/17.5,width/90,height/400);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);fill("rgb(224,224,224)");rect(width/2,height/2+width/25,width/100,height/20);circle(width/2,height/2-height/100,height/60);fill("rgb(175,175,175)");rect(width/2,height/2+width/30,width/100,height/25);fill("rgb(179,76,76)");rect(width/2,height/2+width/35,width/100,height/35);pop()}else if(subject7<.5&&church>.95){push();scale(1.15);{translate(-width/(4+R.random_dec()),-height/(3.65+R.random_dec()))} if(subject22<.5){translate(0,height/2)}else if(subject9<.5){translate(width/3,0)}else if(subject2<.5){scale(.8);translate(width/8,-height/25)} fill("black");rect(width/2,height/2-height/21,width/15,height/12);push();translate(0,-height/11.25);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);pop();fill("white");rect(width/2,height/2+width/35,width/15,height/15);rect(width/2,height/2,width/400,height/8);rect(width/2,height/2-height/17.5,width/90,height/400);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);fill("rgb(224,224,224)");rect(width/2,height/2+width/25,width/100,height/20);circle(width/2,height/2-height/100,height/60);fill("rgb(175,175,175)");rect(width/2,height/2+width/30,width/100,height/25);fill("rgb(179,76,76)");rect(width/2,height/2+width/35,width/100,height/35);pop()}else if(subject3<.5&&church>.95){push();scale(.65);translate(width/(4+R.random_dec()),-height/3.35);fill("black");rect(width/2,height/2-height/21,width/15,height/12);push();translate(0,-height/11.25);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);pop();fill("white");rect(width/2,height/2+width/35,width/15,height/15);rect(width/2,height/2,width/400,height/8);rect(width/2,height/2-height/17.5,width/90,height/400);triangle(width/2-width/30,height/2,width/2+width/30,height/2,width/2,height/2-height/20);fill("rgb(224,224,224)");rect(width/2,height/2+width/25,width/100,height/20);circle(width/2,height/2-height/100,height/60);fill("rgb(175,175,175)");rect(width/2,height/2+width/30,width/100,height/25);fill("rgb(179,76,76)");rect(width/2,height/2+width/35,width/100,height/35);pop()}}else if(subdivision>.45){if(subject>.5){noStroke();fill("tan") circle(width/8,height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/8,height/8,width/4.15);fill("white") circle(width/8,height/8,width/80);fill("black") circle(width/8,height/8,width/90);push();translate(pivotX5,pivotY5);rotate(pivotAngle1);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(width/8,height/8,width/160)} if(subject2>.5){noStroke();fill("tan") circle(3*width/8,height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/8,height/8,width/4.15);fill("white") circle(3*width/8,height/8,width/80);fill("black") circle(3*width/8,height/8,width/90);push();translate(pivotX6,pivotY5);rotate(pivotAngle2);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(3*width/8,height/8,width/160)} if(subject3>.5){noStroke();fill("tan") circle(5*width/8,height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/8,height/8,width/4.15);fill("white") circle(5*width/8,height/8,width/80);fill("black") circle(5*width/8,height/8,width/90);push();translate(pivotX7,pivotY5);rotate(pivotAngle3);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(5*width/8,height/8,width/160)} if(subject4>.5){noStroke();fill("tan") circle(7*width/8,height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/8,height/8,width/4.15);fill("white") circle(7*width/8,height/8,width/80);fill("black") circle(7*width/8,height/8,width/90);push();translate(pivotX8,pivotY5);rotate(pivotAngle4);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(7*width/8,height/8,width/160)} if(subject5>.5){noStroke();fill("tan") circle(width/8,3*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/8,3*height/8,width/4.15);fill("white") circle(width/8,3*height/8,width/80);fill("black") circle(width/8,3*height/8,width/90);push();translate(pivotX5,pivotX6);rotate(pivotAngle5);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(width/8,3*height/8,width/160)} if(subject6>.5){noStroke();fill("tan") circle(3*width/8,3*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/8,3*height/8,width/4.15);fill("white") circle(3*width/8,3*height/8,width/80);fill("black") circle(3*width/8,3*height/8,width/90);push();translate(pivotX6,pivotX6);rotate(pivotAngle6);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(3*width/8,3*height/8,width/160)} if(subject7>.5){noStroke();fill("tan") circle(5*width/8,3*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/8,3*height/8,width/4.15);fill("white") circle(5*width/8,3*height/8,width/80);fill("black") circle(5*width/8,3*height/8,width/90);push();translate(pivotX7,pivotX6);rotate(pivotAngle7);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(5*width/8,3*height/8,width/160)} if(subject8>.5){noStroke();fill("tan") circle(7*width/8,3*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/8,3*height/8,width/4.15);fill("white") circle(7*width/8,3*height/8,width/80);fill("black") circle(7*width/8,3*height/8,width/90);push();translate(pivotX8,pivotX6);rotate(pivotAngle8);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(7*width/8,3*height/8,width/160)} if(subject9>.5){noStroke();fill("tan") circle(width/8,5*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/8,5*height/8,width/4.15);fill("white") circle(width/8,5*height/8,width/80);fill("black") circle(width/8,5*height/8,width/90);push();translate(pivotX5,pivotX7);rotate(pivotAngle9);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(width/8,5*height/8,width/160)} if(subject10>.5){noStroke();fill("tan") circle(3*width/8,5*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/8,5*height/8,width/4.15);fill("white") circle(3*width/8,5*height/8,width/80);fill("black") circle(3*width/8,5*height/8,width/90);push();translate(pivotX6,pivotX7);rotate(pivotAngle10);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(3*width/8,5*height/8,width/160)} if(subject11>.5){noStroke();fill("tan") circle(5*width/8,5*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/8,5*height/8,width/4.15);fill("white") circle(5*width/8,5*height/8,width/80);fill("black") circle(5*width/8,5*height/8,width/90);push();translate(pivotX7,pivotX7);rotate(pivotAngle11);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(5*width/8,5*height/8,width/160)} if(subject12>.5){noStroke();fill("tan") circle(7*width/8,5*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/8,5*height/8,width/4.15);fill("white") circle(7*width/8,5*height/8,width/80);fill("black") circle(7*width/8,5*height/8,width/90);push();translate(pivotX8,pivotX7);rotate(pivotAngle12);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(7*width/8,5*height/8,width/160)} if(subject13>.5){noStroke();fill("tan") circle(width/8,7*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/8,7*height/8,width/4.15);fill("white") circle(width/8,7*height/8,width/80);fill("black") circle(width/8,7*height/8,width/90);push();translate(pivotX5,pivotX8);rotate(pivotAngle13);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(width/8,7*height/8,width/160)} if(subject14>.5){noStroke();fill("tan") circle(3*width/8,7*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/8,7*height/8,width/4.15);fill("white") circle(3*width/8,7*height/8,width/80);fill("black") circle(3*width/8,7*height/8,width/90);push();translate(pivotX6,pivotX8);rotate(pivotAngle14);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(3*width/8,7*height/8,width/160)} if(subject15>.5){noStroke();fill("tan") circle(5*width/8,7*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/8,7*height/8,width/4.15);fill("white") circle(5*width/8,7*height/8,width/80);fill("black") circle(5*width/8,7*height/8,width/90);push();translate(pivotX7,pivotX8);rotate(pivotAngle15);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(5*width/8,7*height/8,width/160)} if(subject16>.5){noStroke();fill("tan") circle(7*width/8,7*height/8,width/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/8,7*height/8,width/4.15);fill("white") circle(7*width/8,7*height/8,width/80);fill("black") circle(7*width/8,7*height/8,width/90);push();translate(pivotX8,pivotX8);rotate(pivotAngle16);fill("white") rect(radius/8,0,width/8,width/1000);rect(radius/8,0,width/650,width/100) rect(radius/8+width/60,0,width/1000,width/90) rect(radius/8-width/60,0,width/1000,width/90) rect(radius/8-width/30,0,width/1000,width/90) rect(radius/8+width/30,0,width/1000,width/90) pop();fill("grey") circle(7*width/8,7*height/8,width/160)}}else if(subdivision>.25){if(subject>.5){noStroke();fill("tan") circle(width/6,height/6,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/6,height/6,width/3.1);fill("white") circle(width/6,height/6,width/60);fill("black") circle(width/6,height/6,width/70);push();translate(pivotX3,pivotY3);rotate(pivotAngle1);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(width/6,height/6,width/100)} if(subject2>.5){noStroke();fill("tan") circle(width/2,height/6,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/2,height/6,width/3.1);fill("white") circle(width/2,height/6,width/60);fill("black") circle(width/2,height/6,width/70);push();translate(pivotX,pivotY3);rotate(pivotAngle2);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(width/2,height/6,width/100)} if(subject3>.5){noStroke();fill("tan") circle(5*width/6,height/6,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/6,height/6,width/3.1);fill("white") circle(5*width/6,height/6,width/60);fill("black") circle(5*width/6,height/6,width/70);push();translate(pivotX4,pivotY3);rotate(pivotAngle3);fill("white") rect(radius/6,0,width/6,width/900);rect(radius/6,0,width/600,width/100) rect(radius/6+width/40,0,width/1000,width/80) rect(radius/6-width/40,0,width/1000,width/80) rect(radius/6-width/20,0,width/1000,width/80) rect(radius/6+width/20,0,width/1000,width/80) pop();fill("grey") circle(5*width/6,height/6,width/100)} if(subject4>.5){noStroke();fill("tan") circle(width/6,height/2,width/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(wid
ct(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(9*width/12,7*height/12,width/200)} if(subject24>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(11*width/12,7*height/12,width/4)} noStroke();fill("tan") circle(11*width/12,7*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(11*width/12,7*height/12,width/6.3);fill("white") circle(11*width/12,7*height/12,width/90);fill("black") circle(11*width/12,7*height/12,width/120);push();translate(pivotX19,pivotX17);rotate(pivotAngle24);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(11*width/12,7*height/12,width/200)} if(subject25>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,9*height/12,width/4)} noStroke();fill("tan") circle(width/12,9*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/12,9*height/12,width/6.3);fill("white") circle(width/12,9*height/12,width/90);fill("black") circle(width/12,9*height/12,width/120);push();translate(pivotX14,pivotX18);rotate(pivotAngle25);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(width/12,9*height/12,width/200)} if(subject26>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(3*width/12,9*height/12,width/4)} noStroke();fill("tan") circle(3*width/12,9*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/12,9*height/12,width/6.3);fill("white") circle(3*width/12,9*height/12,width/90);fill("black") circle(3*width/12,9*height/12,width/120);push();translate(pivotX15,pivotX18);rotate(pivotAngle26);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(3*width/12,9*height/12,width/200)} if(subject27>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(5*width/12,9*height/12,width/4)} noStroke();fill("tan") circle(5*width/12,9*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/12,9*height/12,width/6.3);fill("white") circle(5*width/12,9*height/12,width/90);fill("black") circle(5*width/12,9*height/12,width/120);push();translate(pivotX16,pivotX18);rotate(pivotAngle27);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(5*width/12,9*height/12,width/200)} if(subject28>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(7*width/12,9*height/12,width/4)} noStroke();fill("tan") circle(7*width/12,9*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/12,9*height/12,width/6.3);fill("white") circle(7*width/12,9*height/12,width/90);fill("black") circle(7*width/12,9*height/12,width/120);push();translate(pivotX17,pivotX18);rotate(pivotAngle28);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(7*width/12,9*height/12,width/200)} if(subject29>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(9*width/12,9*height/12,width/4)} noStroke();fill("tan") circle(9*width/12,9*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/12,9*height/12,width/6.3);fill("white") circle(9*width/12,9*height/12,width/90);fill("black") circle(9*width/12,9*height/12,width/120);push();translate(pivotX18,pivotX18);rotate(pivotAngle29);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(9*width/12,9*height/12,width/200)} if(subject30>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(11*width/12,9*height/12,width/4)} noStroke();fill("tan") circle(11*width/12,9*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(11*width/12,9*height/12,width/6.3);fill("white") circle(11*width/12,9*height/12,width/90);fill("black") circle(11*width/12,9*height/12,width/120);push();translate(pivotX19,pivotX18);rotate(pivotAngle30);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(11*width/12,9*height/12,width/200)} if(subject31>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,11*height/12,width/4)} noStroke();fill("tan") circle(width/12,11*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/12,11*height/12,width/6.3);fill("white") circle(width/12,11*height/12,width/90);fill("black") circle(width/12,11*height/12,width/120);push();translate(pivotX14,pivotX19);rotate(pivotAngle31);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(width/12,11*height/12,width/200)} if(subject32>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(3*width/12,11*height/12,width/4)} noStroke();fill("tan") circle(3*width/12,11*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/12,11*height/12,width/6.3);fill("white") circle(3*width/12,11*height/12,width/90);fill("black") circle(3*width/12,11*height/12,width/120);push();translate(pivotX15,pivotX19);rotate(pivotAngle32);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(3*width/12,11*height/12,width/200)} if(subject33>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(5*width/12,11*height/12,width/4)} noStroke();fill("tan") circle(5*width/12,11*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/12,11*height/12,width/6.3);fill("white") circle(5*width/12,11*height/12,width/90);fill("black") circle(5*width/12,11*height/12,width/120);push();translate(pivotX16,pivotX19);rotate(pivotAngle33);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(5*width/12,11*height/12,width/200)} if(subject34>.5){if(R.random_dec()>.995){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,height/12,width/4)} noStroke();fill("tan") circle(7*width/12,11*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/12,11*height/12,width/6.3);fill("white") circle(7*width/12,11*height/12,width/90);fill("black") circle(7*width/12,11*height/12,width/120);push();translate(pivotX17,pivotX19);rotate(pivotAngle34);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(7*width/12,11*height/12,width/200)} if(subject35>.5){if(R.random_dec()>.995){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(9*width/12,11*height/12,width/4)} noStroke();fill("tan") circle(9*width/12,11*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/12,11*height/12,width/6.3);fill("white") circle(9*width/12,11*height/12,width/90);fill("black") circle(9*width/12,11*height/12,width/120);push();translate(pivotX18,pivotX19);rotate(pivotAngle35);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(9*width/12,11*height/12,width/200)} if(subject36>.5){if(R.random_dec()>.995){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(11*width/12,11*height/12,width/4)} noStroke();fill("tan") circle(11*width/12,11*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(11*width/12,11*height/12,width/6.3);fill("white") circle(11*width/12,11*height/12,width/90);fill("black") circle(11*width/12,11*height/12,width/120);push();translate(pivotX19,pivotX19);rotate(pivotAngle36);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(11*width/12,11*height/12,width/200)}}else if(subdivision>.65){if(subject>.5){noStroke();fill("tan") circle(width/10,height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/10,height/10,width/5.2);fill("white") circle(width/10,height/10,width/85);fill("black") circle(width/10,height/10,width/100);push();translate(pivotX9,pivotX9);rotate(pivotAngle1);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(width/10,height/10,width/180)} if(subject2>.5){noStroke();fill("tan") circle(3*width/10,height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/10,height/10,width/5.2);fill("white") circle(3*width/10,height/10,width/85);fill("black") circle(3*width/10,height/10,width/100);push();translate(pivotX10,pivotX9);rotate(pivotAngle2);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(3*width/10,height/10,width/180)} if(subject3>.5){noStroke();fill("tan") circle(5*width/10,height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/10,height/10,width/5.2);fill("white") circle(5*width/10,height/10,width/85);fill("black") circle(5*width/10,height/10,width/100);push();translate(pivotX11,pivotX9);rotate(pivotAngle3);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(5*width/10,height/10,width/180)} if(subject4>.5){noStroke();fill("tan") circle(7*width/10,height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/10,height/10,width/5.2);fill("white") circle(7*width/10,height/10,width/85);fill("black") circle(7*width/10,height/10,width/100);push();translate(pivotX12,pivotX9);rotate(pivotAngle4);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(7*width/10,height/10,width/180)} if(subject5>.5){noStroke();fill("tan") circle(9*width/10,height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/10,height/10,width/5.2);fill("white") circle(9*width/10,height/10,width/85);fill("black") circle(9*width/10,height/10,width/100);push();translate(pivotX13,pivotX9);rotate(pivotAngle5);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(9*width/10,height/10,width/180)} if(subject6>.5){noStroke();fill("tan") circle(width/10,3*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/10,3*height/10,width/5.2);fill("white") circle(width/10,3*height/10,width/85);fill("black") circle(width/10,3*height/10,width/100);push();translate(pivotX9,pivotX10);rotate(pivotAngle6);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(width/10,3*height/10,width/180)} if(subject7>.5){noStroke();fill("tan") circle(3*width/10,3*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/10,3*height/10,width/5.2);fill("white") circle(3*width/10,3*height/10,width/85);fill("black") circle(3*width/10,3*height/10,width/100);push();translate(pivotX10,pivotX10);rotate(pivotAngle7);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(3*width/10,3*height/10,width/180)} if(subject8>.5){noStroke();fill("tan") circle(5*width/10,3*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/10,3*height/10,width/5.2);fill("white") circle(5*width/10,3*height/10,width/85);fill("black") circle(5*width/10,3*height/10,width/100);push();translate(pivotX11,pivotX10);rotate(pivotAngle8);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(5*width/10,3*height/10,width/180)} if(subject9>.5){noStroke();fill("tan") circle(7*width/10,3*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/10,3*height/10,width/5.2);fill("white") circle(7*width/10,3*height/10,width/85);fill("black") circle(7*width/10,3*height/10,width/100);push();translate(pivotX12,pivotX10);rotate(pivotAngle9);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(7*width/10,3*height/10,width/180)} if(subject10>.5){noStroke();fill("tan") circle(9*width/10,3*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/10,3*height/10,width/5.2);fill("white") circle(9*width/10,3*height/10,width/85);fill("black") circle(9*width/10,3*height/10,width/100);push();translate(pivotX13,pivotX10);rotate(pivotAngle10);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(9*width/10,3*height/10,width/180)} if(subject11>.5){noStroke();fill("tan") circle(width/10,5*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/10,5*height/10,width/5.2);fill("white") circle(width/10,5*height/10,width/85);fill("black") circle(width/10,5*height/10,width/100);push();translate(pivotX9,pivotX11);rotate(pivotAngle11);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(width/10,5*height/10,width/180)} if(subject12>.5){noStroke();fill("tan") circle(3*width/10,5*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/10,5*height/10,width/5.2);fill("white") circle(3*width/10,5*height/10,width/85);fill("black") circle(3*width/10,5*height/10,width/100);push();translate(pivotX10,pivotX11);rotate(pivotAngle12);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(3*width/10,5*height/10,width/180)} if(subject13>.5){noStroke();fill("tan") circle(5*width/10,5*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/10,5*height/10,width/5.2);fill("white") circle(5*width/10,5*height/10,width/85);fill("black") circle(5*width/10,5*height/10,width/100);push();translate(pivotX11,pivotX11);rotate(pivotAngle13);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(5*width/10,5*height/10,width/180)} if(subject14>.5){noStroke();fill("tan") circle(7*width/10,5*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/10,5*height/10,width/5.2);fill("white") circle(7*width/10,5*height/10,width/85);fill("black") circle(7*width/10,5*height/10,width/100);push();translate(pivotX12,pivotX11);rotate(pivotAngle14);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(7*width/10,5*height/10,width/180)} if(subject15>.5){noStroke();fill("tan") circle(9*width/10,5*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/10,5*height/10,width/5.2);fill("white") circle(9*width/10,5*height/10,width/85);fill("black") circle(9*width/10,5*height/10,width/100);push();translate(pivotX13,pivotX11);rotate(pivotAngle15);fill("white") rect(radius/10,0,width/10,width/1050);rect(radius/10,0,width/700,width/110) rect(radius/10+width/80,0,width/1050,width/100) rect(radius/10-width/80,0,width/1050,width/100) rect(radius/10-width/40,0,width/1050,width/100) rect(radius/10+width/40,0,width/1050,width/100) pop();fill("grey") circle(9*width/10,5*height/10,width/180)} if(subject16>.5){noStroke();fill("tan") circle(width/10,7*height/10,width/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/10,7*height/10,width/5.2);fill("white") circle(wi
7','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(7*width/12,height/2,width/6,height)}else if(abstraction1>.575){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(9*width/12,height/2,width/6,height)}else if(abstraction1>.45){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,3*height/4,width,height/2)}else if(abstraction1>.375){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/4,height/2,width/2,height)}else if(abstraction1>.25){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/4,width,height/2)} pop();if(subdivision>.9){if(subject>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,height/12,width/4)} noStroke();fill("tan") circle(width/12,height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/12,height/12,width/6.3);fill("white") circle(width/12,height/12,width/90);fill("black") circle(width/12,height/12,width/120);push();translate(pivotX14,pivotX14);rotate(pivotAngle1);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(width/12,height/12,width/200)} if(subject2>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(3*width/12,height/12,width/4)} noStroke();fill("tan") circle(3*width/12,height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/12,height/12,width/6.3);fill("white") circle(3*width/12,height/12,width/90);fill("black") circle(3*width/12,height/12,width/120);push();translate(pivotX15,pivotX14);rotate(pivotAngle2);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(3*width/12,height/12,width/200)} if(subject3>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(5*width/12,height/12,width/4)} noStroke();fill("tan") circle(5*width/12,height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/12,height/12,width/6.3);fill("white") circle(5*width/12,height/12,width/90);fill("black") circle(5*width/12,height/12,width/120);push();translate(pivotX16,pivotX14);rotate(pivotAngle3);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(5*width/12,height/12,width/200)} if(subject4>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(7*width/12,height/12,width/4)} noStroke();fill("tan") circle(7*width/12,height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/12,height/12,width/6.3);fill("white") circle(7*width/12,height/12,width/90);fill("black") circle(7*width/12,height/12,width/120);push();translate(pivotX17,pivotX14);rotate(pivotAngle4);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(7*width/12,height/12,width/200)} if(subject5>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(9*width/12,height/12,width/4)} noStroke();fill("tan") circle(9*width/12,height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/12,height/12,width/6.3);fill("white") circle(9*width/12,height/12,width/90);fill("black") circle(9*width/12,height/12,width/120);push();translate(pivotX18,pivotX14);rotate(pivotAngle5);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(9*width/12,height/12,width/200)} if(subject6>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(11*width/12,height/12,width/4)} noStroke();fill("tan") circle(11*width/12,height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(11*width/12,height/12,width/6.3);fill("white") circle(11*width/12,height/12,width/90);fill("black") circle(11*width/12,height/12,width/120);push();translate(pivotX19,pivotX14);rotate(pivotAngle6);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(11*width/12,height/12,width/200)} if(subject7>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,3*height/12,width/4)} noStroke();fill("tan") circle(width/12,3*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/12,3*height/12,width/6.3);fill("white") circle(width/12,3*height/12,width/90);fill("black") circle(width/12,3*height/12,width/120);push();translate(pivotX14,pivotX15);rotate(pivotAngle7);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(width/12,3*height/12,width/200)} if(subject8>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(3*width/12,3*height/12,width/4)} noStroke();fill("tan") circle(3*width/12,3*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/12,3*height/12,width/6.3);fill("white") circle(3*width/12,3*height/12,width/90);fill("black") circle(3*width/12,3*height/12,width/120);push();translate(pivotX15,pivotX15);rotate(pivotAngle8);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(3*width/12,3*height/12,width/200)} if(subject9>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(5*width/12,3*height/12,width/4)} noStroke();fill("tan") circle(5*width/12,3*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/12,3*height/12,width/6.3);fill("white") circle(5*width/12,3*height/12,width/90);fill("black") circle(5*width/12,3*height/12,width/120);push();translate(pivotX16,pivotX15);rotate(pivotAngle9);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(5*width/12,3*height/12,width/200)} if(subject10>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(7*width/12,3*height/12,width/4)} noStroke();fill("tan") circle(7*width/12,3*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/12,3*height/12,width/6.3);fill("white") circle(7*width/12,3*height/12,width/90);fill("black") circle(7*width/12,3*height/12,width/120);push();translate(pivotX17,pivotX15);rotate(pivotAngle10);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(7*width/12,3*height/12,width/200)} if(subject11>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(9*width/12,3*height/12,width/4)} noStroke();fill("tan") circle(9*width/12,3*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/12,3*height/12,width/6.3);fill("white") circle(9*width/12,3*height/12,width/90);fill("black") circle(9*width/12,3*height/12,width/120);push();translate(pivotX18,pivotX15);rotate(pivotAngle11);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(9*width/12,3*height/12,width/200)} if(subject12>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(11*width/12,3*height/12,width/4)} noStroke();fill("tan") circle(11*width/12,3*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(11*width/12,3*height/12,width/6.3);fill("white") circle(11*width/12,3*height/12,width/90);fill("black") circle(11*width/12,3*height/12,width/120);push();translate(pivotX19,pivotX15);rotate(pivotAngle12);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(11*width/12,3*height/12,width/200)} if(subject13>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,5*height/12,width/4)} noStroke();fill("tan") circle(width/12,5*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/12,5*height/12,width/6.3);fill("white") circle(width/12,5*height/12,width/90);fill("black") circle(width/12,5*height/12,width/120);push();translate(pivotX14,pivotX16);rotate(pivotAngle13);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(width/12,5*height/12,width/200)} if(subject14>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(3*width/12,5*height/12,width/4)} noStroke();fill("tan") circle(3*width/12,5*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/12,5*height/12,width/6.3);fill("white") circle(3*width/12,5*height/12,width/90);fill("black") circle(3*width/12,5*height/12,width/120);push();translate(pivotX15,pivotX16);rotate(pivotAngle14);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(3*width/12,5*height/12,width/200)} if(subject15>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(5*width/12,5*height/12,width/4)} noStroke();fill("tan") circle(5*width/12,5*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/12,5*height/12,width/6.3);fill("white") circle(5*width/12,5*height/12,width/90);fill("black") circle(5*width/12,5*height/12,width/120);push();translate(pivotX16,pivotX16);rotate(pivotAngle15);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(5*width/12,5*height/12,width/200)} if(subject16>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(7*width/12,5*height/12,width/4)} noStroke();fill("tan") circle(7*width/12,5*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/12,5*height/12,width/6.3);fill("white") circle(7*width/12,5*height/12,width/90);fill("black") circle(7*width/12,5*height/12,width/120);push();translate(pivotX17,pivotX16);rotate(pivotAngle16);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(7*width/12,5*height/12,width/200)} if(subject17>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(9*width/12,5*height/12,width/4)} noStroke();fill("tan") circle(9*width/12,5*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/12,5*height/12,width/6.3);fill("white") circle(9*width/12,5*height/12,width/90);fill("black") circle(9*width/12,5*height/12,width/120);push();translate(pivotX18,pivotX16);rotate(pivotAngle17);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(9*width/12,5*height/12,width/200)} if(subject18>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(11*width/12,5*height/12,width/4)} noStroke();fill("tan") circle(11*width/12,5*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(11*width/12,5*height/12,width/6.3);fill("white") circle(11*width/12,5*height/12,width/90);fill("black") circle(11*width/12,5*height/12,width/120);push();translate(pivotX19,pivotX16);rotate(pivotAngle18);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(11*width/12,5*height/12,width/200)} if(subject19>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(width/12,7*height/12,width/4)} noStroke();fill("tan") circle(width/12,7*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(width/12,7*height/12,width/6.3);fill("white") circle(width/12,7*height/12,width/90);fill("black") circle(width/12,7*height/12,width/120);push();translate(pivotX14,pivotX17);rotate(pivotAngle19);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(width/12,7*height/12,width/200)} if(subject20>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(3*width/12,7*height/12,width/4)} noStroke();fill("tan") circle(3*width/12,7*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(3*width/12,7*height/12,width/6.3);fill("white") circle(3*width/12,7*height/12,width/90);fill("black") circle(3*width/12,7*height/12,width/120);push();translate(pivotX15,pivotX17);rotate(pivotAngle20);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(3*width/12,7*height/12,width/200)} if(subject21>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(5*width/12,7*height/12,width/4)} noStroke();fill("tan") circle(5*width/12,7*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(5*width/12,7*height/12,width/6.3);fill("white") circle(5*width/12,7*height/12,width/90);fill("black") circle(5*width/12,7*height/12,width/120);push();translate(pivotX16,pivotX17);rotate(pivotAngle21);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(5*width/12,7*height/12,width/200)} if(subject22>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(7*width/12,7*height/12,width/4)} noStroke();fill("tan") circle(7*width/12,7*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(7*width/12,7*height/12,width/6.3);fill("white") circle(7*width/12,7*height/12,width/90);fill("black") circle(7*width/12,7*height/12,width/120);push();translate(pivotX17,pivotX17);rotate(pivotAngle22);fill("white") rect(radius/12,0,width/12,width/1100);rect(radius/12,0,width/760,width/120) rect(radius/12+width/90,0,width/1100,width/120) rect(radius/12-width/90,0,width/1100,width/120) rect(radius/12-width/45,0,width/1100,width/120) rect(radius/12+width/45,0,width/1100,width/120) pop();fill("grey") circle(7*width/12,7*height/12,width/200)} if(subject23>.5){if(R.random_dec()>.985){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));circle(9*width/12,7*height/12,width/4)} noStroke();fill("tan") circle(9*width/12,7*height/12,width/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);circle(9*width/12,7*height/12,width/6.3);fill("white") circle(9*width/12,7*height/12,width/90);fill("black") circle(9*width/12,7*height/12,width/120);push();translate(pivotX18,pivotX17);rotate(pivotAngle23);fill("white") rect(radius/12,0,width/12,width/1100);re
let hash=tokenData.hash;class Random{constructor(){this.useA=!1;let 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(tokenData.hash.substr(2,32));this.prngB=new sfc32(tokenData.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 R=new Random();let church=R.random_dec();let abstraction=R.random_dec();let abstraction1=R.random_dec();let plane=R.random_dec();let var1=R.random_dec();let subject=R.random_dec();let subject2=R.random_dec();let subject3=R.random_dec();let subject4=R.random_dec();let subject5=R.random_dec();let subject6=R.random_dec();let subject7=R.random_dec();let subject8=R.random_dec();let subject9=R.random_dec();let subject10=R.random_dec();let subject11=R.random_dec();let subject12=R.random_dec();let subject13=R.random_dec();let subject14=R.random_dec();let subject15=R.random_dec();let subject16=R.random_dec();let subject17=R.random_dec();let subject18=R.random_dec();let subject19=R.random_dec();let subject20=R.random_dec();let subject21=R.random_dec();let subject22=R.random_dec();let subject23=R.random_dec();let subject24=R.random_dec();let subject25=R.random_dec();let subject26=R.random_dec();let subject27=R.random_dec();let subject28=R.random_dec();let subject29=R.random_dec();let subject30=R.random_dec();let subject31=R.random_dec();let subject32=R.random_dec();let subject33=R.random_dec();let subject34=R.random_dec();let subject35=R.random_dec();let subject36=R.random_dec();let longEdge;let radius;let pivotX,pivotY;let greenA=R.random_dec()*50+70;let greenB=R.random_dec()*80+100;let greenC=R.random_dec()*30+70;let pivotAngle=360*R.random_dec();let pivotAngle1=360*R.random_dec();let pivotAngle2=360*R.random_dec();let pivotAngle3=360*R.random_dec();let pivotAngle4=360*R.random_dec();let pivotAngle5=360*R.random_dec();let pivotAngle6=360*R.random_dec();let pivotAngle7=360*R.random_dec();let pivotAngle8=360*R.random_dec();let pivotAngle9=360*R.random_dec();let pivotAngle10=360*R.random_dec();let pivotAngle11=360*R.random_dec();let pivotAngle12=360*R.random_dec();let pivotAngle13=360*R.random_dec();let pivotAngle14=360*R.random_dec();let pivotAngle15=360*R.random_dec();let pivotAngle16=360*R.random_dec();let pivotAngle17=360*R.random_dec();let pivotAngle18=360*R.random_dec();let pivotAngle19=360*R.random_dec();let pivotAngle20=360*R.random_dec();let pivotAngle21=360*R.random_dec();let pivotAngle22=360*R.random_dec();let pivotAngle23=360*R.random_dec();let pivotAngle24=360*R.random_dec();let pivotAngle25=360*R.random_dec();let pivotAngle26=360*R.random_dec();let pivotAngle27=360*R.random_dec();let pivotAngle28=360*R.random_dec();let pivotAngle29=360*R.random_dec();let pivotAngle30=360*R.random_dec();let pivotAngle31=360*R.random_dec();let pivotAngle32=360*R.random_dec();let pivotAngle33=360*R.random_dec();let pivotAngle34=360*R.random_dec();let pivotAngle35=360*R.random_dec();let pivotAngle36=360*R.random_dec();let subdivision=R.random_dec();let sections;let houseX;let houseY;function setup(){longEdge=min(windowWidth,windowHeight);if(var1>0){width=longEdge;height=width} radius=longEdge/2;pivotX=longEdge/2;pivotY=longEdge/2;pivotX1=longEdge/4;pivotY1=longEdge/4;pivotX2=3*longEdge/4;pivotY2=3*longEdge/4;pivotX3=longEdge/6;pivotY3=longEdge/6;pivotX4=5*longEdge/6;pivotY4=5*longEdge/6;pivotX5=longEdge/8;pivotY5=longEdge/8;pivotX6=3*longEdge/8;pivotX7=5*longEdge/8;pivotX8=7*longEdge/8 pivotX9=longEdge/10;pivotX10=3*longEdge/10;pivotX11=5*longEdge/10;pivotX12=7*longEdge/10;pivotX13=9*longEdge/10;pivotX14=longEdge/12;pivotX15=3*longEdge/12;pivotX16=5*longEdge/12;pivotX17=7*longEdge/12;pivotX18=9*longEdge/12;pivotX19=11*longEdge/12;createCanvas(width,height);rectMode(CENTER);noStroke()} function random_num(r,o){return r+(o-r)*R.random_dec()} function random_int(r,o){return Math.floor(random_num(r,o))} function random_num(min,max){return R.random_dec()*(max-min)+min} function addTexture(amount){loadPixels();const d=pixelDensity();const pixelsCount=5*(width*d)*(height*d);for(let i=0;i<pixelsCount;i+=4){const grainAmount=random_num(-amount,amount);pixels[i]=pixels[i]+grainAmount;pixels[i+1]=pixels[i+1]+grainAmount;pixels[i+2]=pixels[i+2]+grainAmount} updatePixels()} function draw(){if(subdivision>.9){noStroke();fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/12,height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/12,height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/12,height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/12,height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/12,height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(11*width/12,height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/12,3*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/12,3*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/12,3*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/12,3*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/12,3*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(11*width/12,3*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/12,5*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/12,5*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/12,5*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/12,5*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/12,5*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(11*width/12,5*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/12,7*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/12,7*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/12,7*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/12,7*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/12,7*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(11*width/12,7*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/12,9*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/12,9*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/12,9*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/12,9*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/12,9*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(11*width/12,9*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/12,11*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/12,11*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/12,11*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/12,11*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/12,11*height/12,width/6,height/6);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(11*width/12,11*height/12,width/6,height/6)}else if(subdivision>.65){noStroke();fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/10,height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/10,height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/10,height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/10,height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/10,height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/10,3*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/10,3*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/10,3*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/10,3*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/10,3*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/10,5*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/10,5*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/10,5*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/10,5*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/10,5*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/10,7*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/10,7*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/10,7*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/10,7*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/10,7*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/10,9*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/10,9*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/10,9*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/10,9*height/10,width/5,height/5);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(9*width/10,9*height/10,width/5,height/5)}else if(subdivision>.45){noStroke();fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/8,height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/8,height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/8,height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/8,height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/8,3*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/8,3*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/8,3*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/8,3*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/8,5*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/8,5*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/8,5*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/8,5*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/8,7*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/8,7*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/8,7*height/8,width/4,height/4);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(7*width/8,7*height/8,width/4,height/4)}else if(subdivision>.25){noStroke();fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/6,height/6,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/2,height/6,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/6,height/6,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/6,height/2,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/2,height/2,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/6,height/2,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/6,5*height/6,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/2,5*height/6,width/3,height/3);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(5*width/6,5*height/6,width/3,height/3)}else if(subdivision>.025){noStroke();fill(greenA,greenB,greenC) rect(width/4,height/4,width/2,height/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/4,3*height/4,width/2,height/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(3*width/4,height/4,width/2,height/2);fill(R.random_dec()*50+70,R.random_dec()*80+100,R.random_dec()*30+70);rect(width/4,3*height/4,width/2,height/2)}else{noStroke();fill(greenA,greenB,greenC) rect(width/2,height/2,width,height)} push();if(abstraction>.925){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(3*width/4,height/2,width/2,height)}else if(abstraction>.875){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/6,height/2,width/3,height)}else if(abstraction>.85){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(5*width/6,height/2,width/3,height)}else if(abstraction>.825){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/6,width,height/3)}else if(abstraction>.8){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,5*height/6,width,height/3)}else if(abstraction>.775){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width,height/3)}else if(abstraction>.75){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width/3,height)}else if(abstraction>.725){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width,height)}else if(abstraction>.715){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width/2,height/2)}else if(abstraction>.675){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,4*width/6,4*height/6)}else if(abstraction>.65){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(3*width/12,height/2,width/6,height)}else if(abstraction>.625){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(5*width/12,height/2,width/6,height)}else if(abstraction>.6){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(7*width/12,height/2,width/6,height)}else if(abstraction>.575){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(9*width/12,height/2,width/6,height)}else if(abstraction>.45){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,3*height/4,width,height/2)}else if(abstraction>.375){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/4,height/2,width/2,height)}else if(abstraction>.25){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/4,width,height/2)} if(abstraction1>.925){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(3*width/4,height/2,width/2,height)}else if(abstraction1>.875){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/6,height/2,width/3,height)}else if(abstraction1>.85){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(5*width/6,height/2,width/3,height)}else if(abstraction1>.825){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/6,width,height/3)}else if(abstraction1>.8){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,5*height/6,width,height/3)}else if(abstraction1>.775){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width,height/3)}else if(abstraction1>.75){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width/3,height)}else if(abstraction1>.725){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width,height)}else if(abstraction1>.715){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,width/2,height/2)}else if(abstraction1>.675){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(width/2,height/2,4*width/6,4*height/6)}else if(abstraction1>.65){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(3*width/12,height/2,width/6,height)}else if(abstraction1>.625){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B697','#71857F','#B97E75','#94598D','#61A7A4','#DFDDDC','#96B697','#E9C60D','#C4D3D3']));rect(5*width/12,height/2,width/6,height)}else if(abstraction1>.6){fill(R.random_choice(['#0B8888','#FF0000','#AB9B8E','#FCCCD5','#C29B9B','#FF7D96','#000000','#B5E5D7','#928BBA','#7D0101','#2234BC','#CF9B6D','#96B69
1-50 of 72