0x21713dfb…d9f2sent to0xa7d8d9ef…d270·#14,225,658·view on Etherscan
let hash=tokenData.hash;let seed=parseInt(tokenData.hash.slice(0,16),16);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 RF=new Random(seed);let RA=new Random(seed);let RC=new Random(seed);var DEFAULT_SIZE=1000;var WIDTH=window.innerWidth;var HEIGHT=window.innerHeight;var DIM=Math.min(WIDTH,HEIGHT);var M=DIM/DEFAULT_SIZE;let toppings=[];let toppingsAvailable=[];let temp=[];var D;var R;var ccol=["red","green","yellow"];function setup(){createCanvas(DIM,DIM);noiseSeed(seed);colorMode(HSB,360,100,100,100);rectMode(CENTER);translate(DIM/2,DIM/2);smooth();let cd=RF.random_dec();if(cd<0.5)D=2.6;else if(cd>=0.5&&cd<0.8)D=3.8;else D=5;let csls=RF.random_dec();let sls;if(csls<0.5){sls=PI}else if(csls>=0.5&&csls<0.8){sls=PI/2}else{sls=(3*PI)/2}
R=DIM/D;let pizza=new Pizza(R);let cb=RF.random_dec();let cbt=RF.random_dec();for(let i=0;i<=8;i++){toppings[i]=RF.random_bool(0.5);if(toppings[i])toppingsAvailable.push(i)}
let topcou=RF.random_int(0,4);let cc=RF.random_dec();let cs=RF.random_dec();let csl=RF.random_dec();let ce=RF.random_dec();let capcol=RF.random_choice(ccol);if(ce<0.01){pizza.psy();pizza.psyronni()}else{if((cbt>=0.8||cbt<0.4)&&cs>0.6&&(cc<=0.3||cc>0.9)){pizza.back("yellow");if(csl>=0.2&&ce>0.3&&(D==5||D==3.8)){pizza.electric("yellow")}}else if(cbt>=0.8||cbt<0.4){pizza.back("green");if(csl>=0.2&&ce>0.3&&(D==5||D==3.8)){pizza.electric("green")}}else if(cbt<0.8&&cbt>0.4){if(cbt<0.6&&cbt>=0.5){pizza.back("black");if(csl>=0.2&&ce>0.3&&(D==5||D==3.8)){pizza.electric("black")}}else pizza.back("red");if(csl>=0.2&&ce>0.3&&(D==5||D==3.8)){pizza.electric("red")}}}
if(ce<0.01){}else{if(cb<=0.6&&csl<0.2){pizza.plate(DIM/2.3,RA.random_choice([10,25,50,100]))}else if(cb>0.6&&cb<=0.8&&csl<0.2){pizza.plate(DIM/2.3,RA.random_choice([10,25,50,100]))}
if(cb<=0.6){pizza.thinbase();if(cs<=0.6){pizza.sauce("cheese",0)}else if(cs>0.6&&cs<=0.9){pizza.sauce("tomato",0)}else{pizza.sauce("pesto",0)}}else if(cb>0.6&&cb<=0.8){pizza.thickbase();if(cs<=0.6){pizza.sauce("cheese",0)}else if(cs>0.6&&cs<=0.9){pizza.sauce("tomato",0)}else{pizza.sauce("pesto",0)}}else{pizza.squarebase(0);if(cs<=0.6){pizza.squaresauce("cheese",0)}else if(cs>0.6&&cs<=0.9){pizza.squaresauce("tomato",0)}else{pizza.squaresauce("pesto",0)}}}
if(ce<0.01){}else{if(cbt>=0.8)pizza.tomato();else if(cbt<0.8&&cbt>=0.7)pizza.pepperoni();else if(cbt<0.7&&cbt>=0.6)pizza.ham();else if(cbt<0.6&&cbt>=0.5)pizza.anchovie();else if(cbt<0.5&&cbt>=0.4)pizza.chicken();let c=0;for(let i=0;i<topcou;i++){let sel=RF.random_int(0,toppingsAvailable.length);temp.push(toppingsAvailable[sel])}
let uniqueTop=getUnique(temp);for(let i=0;i<uniqueTop.length;i++){if(uniqueTop[i]==0)pizza.onion();if(uniqueTop[i]==1)pizza.capsicum(capcol);if(uniqueTop[i]==2)pizza.mushroom();if(uniqueTop[i]==3)pizza.olive();if(uniqueTop[i]==4)pizza.jalepeno();if(uniqueTop[i]==5)pizza.corn();if(uniqueTop[i]==6)pizza.sundriedtomato();if(uniqueTop[i]==7)pizza.cherrytomato();if(uniqueTop[i]==8)pizza.cucumber()}}
function getUnique(array){var uniqueArray=[];for(var value of array){if(uniqueArray.indexOf(value)===-1){uniqueArray.push(value)}}
return uniqueArray}
if(ce<0.01){}else{if(RF.random_dec()<0.3)pizza.basil();if(cb<=0.6){if(cc>0.3&&cc<=0.5)pizza.goatcheese();else if(cc>0.5&&cc<=0.6)pizza.cheddar();else if(cc>0.6&&cc<0.9)pizza.mayo();pizza.oregano();pizza.chilli()}else if(cb>0.6&&cb<=0.8){if(cc>0.3&&cc<=0.5)pizza.goatcheese();else if(cc>0.5&&cc<=0.6)pizza.cheddar();else if(cc>0.6&&cc<0.9)pizza.mayo();pizza.oregano();pizza.chilli()}else{if(cc>0.3&&cc<=0.5)pizza.goatcheese();else if(cc>0.5&&cc<=0.8)pizza.cheddarsquare();else if(cc>0.6&&cc<0.9)pizza.mayosquare();pizza.oreganosquare(0);pizza.chillisquare(0)}}
if(ce<0.01){}else{if(cb<=0.6&&csl<0.2){pizza.sliced1(sls,R)}else if(cb>0.6&&cb<=0.8&&csl<0.2){pizza.sliced1(sls,R+25*M)}}
noLoop()}
class Pizza{constructor(size){this.r=size}
back(clr){this.st=clr;if(this.st=="green"){this.setClr=color(86,48,63,100)}else if(this.st=="red"){this.setClr=color(0,80,80,100)}else if(this.st=="yellow"){this.setClr=color(58,89,81,100)}else if(this.st=="black"){this.setClr=color(0,0,10,100)}
let ri=DIM+200*M;fill(this.setClr);rect(0,0,DIM,DIM);for(let i=0;i<=40*M;i+=1*M){fill(hue(this.setClr),saturation(this.setClr),map(i,0,20,brightness(this.setClr),brightness(this.setClr)+2),100);noStroke();circle(0,0,ri);ri-=5*M}
let zoff1=0;for(let r0=700*M;r0>R;r0-=15*M){fill(0,0,100,map(r0,0,700*M,1,1));strokeWeight(map(r0,0,700*M,1*M,1*M));beginShape();for(let a=0;a<TWO_PI;a+=0.1){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff1),0,1,0*M,30*M)+r0;let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff1+=0.01}
endShape(CLOSE)}}
electric(clr){this.st=clr;if(this.st=="green"){this.setClr=color(86,48,63,100)}else if(this.st=="red"){this.setClr=color(0,80,80,100)}else if(this.st=="yellow"){this.setClr=color(58,89,81,100)}else if(this.st=="black"){this.setClr=color(0,0,10,100)}
fill(0);rect(0,0,DIM,DIM);noFill();push();for(let a=0;a<TWO_PI;a+=0.05){let y=0;push();beginShape();rotate(a);strokeWeight(RC.random_int(1*M,40*M));stroke(RC.random_int(hue(this.setClr),hue(this.setClr)+15),saturation(this.setClr),RC.random_int(0,100),RC.random_int(10,100));for(let x=0;x<=1000*M;x+=1*M){vertex(x,20*M*sin(y));y+=0.03}
endShape();pop()}
for(let a=0;a<TWO_PI;a+=0.05){let y2=0;push();beginShape();rotate(a);strokeWeight(RC.random_int(1*M,4*M));stroke(0,0,100,RC.random_int(0,100));for(let x=0;x<=1000*M;x+=1*M){vertex(x,20*M*sin(y2));y2+=0.03}
endShape();pop()}
pop();noStroke();strokeWeight(0)}
thinbase(){noStroke();for(let r=R+50*M;r>R;r-=1*M){fill(0,0,0,map(r,R+50*M,R,0,1));ellipse(0,0,2*r,2*r)}
fill(16,87,67,100);beginShape();let zoff1=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff1),0,1,0*M,10*M)+this.r;let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff1+=0.1}
endShape(CLOSE);fill(37,85,91,100);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff+0.01,yoff+0.01,zoff2),0,1,0*M,20*M)+this.r-10*M;let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff2+=0.1}
endShape(CLOSE)}
thickbase(){noStroke();for(let r=R+75*M;r>R+25*M;r-=1*M){fill(0,0,0,map(r,R+75*M,R+25*M,0,1));ellipse(0,0,2*r,2*r)}
fill(16,87,47,100);beginShape();let zoff1=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff1),0,1,0*M,10*M)+this.r+25*M;let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff1+=0.1}
endShape(CLOSE);fill(16,87,67,100);beginShape();let zoff3=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff3),0,1,0*M,10*M)+this.r+20*M;let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff3+=0.1}
endShape(CLOSE);fill(37,85,91,100);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff+0.01,yoff+0.01,zoff2),0,1,0*M,20*M)+this.r+10*M;let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff2+=0.1}
endShape(CLOSE)}
squarebase(csb){noStroke();for(let r=R+50*M;r>R+25*M;r-=1*M){fill(0,0,0,map(r,R+50*M,R+25*M,0,1));rect(0,0,2*r,2*r,20*M)}
push();rotate(csb);fill(16,87,47,100);let zoff=0;for(let y=-R;y<R;y+=5*M){for(let x=-R;x<R;x+=5*M){fill(16,87,map(noise(x,y,zoff),0,1,30,47),100);ellipse(x,y,50*M*noise(x,y,zoff),50*M*noise(x,y,zoff));zoff+=0.01}}
fill(37,85,91,100);let zoff2=0;for(let y=-R+5*M;y<R-5*M;y+=5*M){for(let x=-R+5*M;x<R-5*M;x+=5*M){fill(37,87,map(noise(x,y,zoff2),0,1,80,91),100);ellipse(x,y,50*M*noise(x,y,zoff),50*M*noise(x,y,zoff));zoff2+=0.01}}
pop()}
squaresauce(clr,csb){this.st=clr;if(this.st=="tomato"){this.setClr=color(360,70,80,100)}else if(this.st=="cheese"){this.setClr=color(40,19,100,100)}else if(this.st=="pesto"){this.setClr=color(113,32,45,100)}
noStroke();push();rotate(csb);fill(37,85,91,100);let zoff2=0;for(let y=-R+10*M;y<R-10*M;y+=5*M){for(let x=-R+10*M;x<R-10*M;x+=5*M){fill(hue(this.setClr),saturation(this.setClr)+10,map(noise(x,y,zoff2),0,1,brightness(this.setClr),brightness(this.setClr)+10),100);ellipse(x,y,50*M*noise(x,y,zoff2));zoff2+=0.01}}
pop();let tch=circlePack(30*M,60*M);for(var i=0;i<tch.length;i++){push();translate(tch[i].x,tch[i].y);fill(hue(this.setClr),saturation(this.setClr)+10,brightness(this.setClr),100);beginShape();let zoff=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff),0,1,30*M,tch[i].r);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff+=0.02}
endShape(CLOSE);fill(hue(this.setClr),saturation(this.setClr)+20,brightness(this.setClr),100);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff2),0,1,20*M,tch[i].r-10*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff2+=0.002}
endShape(CLOSE);fill(hue(this.setClr),saturation(this.setClr)+30,brightness(this.setClr),100);beginShape();let zoff3=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff3),0,1,10*M,tch[i].r-30*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff3+=0.002}
endShape(CLOSE);pop()}
push();rotate(csb);for(let i=0;i<R*20;i+=1*M){fill(hue(this.setClr),saturation(this.setClr),brightness(this.setClr)-40,100);let x=RA.random_int(-R-10*M,R+10*M);let y=RA.random_int(-R-10*M,R+10*M);ellipse(x,y,2*M,2*M)}
pop()}
sauce(clr){this.st=clr;if(this.st=="tomato"){this.setClr=color(360,70,80,100)}else if(this.st=="cheese"){this.setClr=color(40,19,100,100)}else if(this.st=="pesto"){this.setClr=color(113,32,45,100)}
noStroke();fill(this.setClr);beginShape();let zoff=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff),0,1,0*M,30*M)+(R-30*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff+=0.2}
endShape(CLOSE);let tch=circlePack(30*M,60*M);for(var i=0;i<tch.length;i++){push();translate(tch[i].x,tch[i].y);fill(hue(this.setClr),saturation(this.setClr)+10,brightness(this.setClr),100);beginShape();let zoff=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff),0,1,30*M,tch[i].r);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff+=0.02}
endShape(CLOSE);fill(hue(this.setClr),saturation(this.setClr)+20,brightness(this.setClr),100);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff2),0,1,20*M,tch[i].r-10*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff2+=0.002}
endShape(CLOSE);fill(hue(this.setClr),saturation(this.setClr)+30,brightness(this.setClr),100);beginShape();let zoff3=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff3),0,1,10*M,tch[i].r-30*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff3+=0.002}
endShape(CLOSE);pop()}
push();for(let i=0;i<20*R;i+=1*M){fill(hue(this.setClr),saturation(this.setClr)-30,brightness(this.setClr),100);let x=RA.random_int(-R,R);let y=RA.random_int(-R,R);if(dist(x,y,0,0)<R){ellipse(x,y,2*M,2*M)}}
pop()}
tomato(){let tto=circlePack(60*M,90*M);noStroke();for(var i=0;i<tto.length;i++){push();translate(tto[i].x,tto[i].y);fill(360,100,100,100);strokeWeight(1*M);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.01){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff+0.01,yoff+0.01,zoff2),0,1,0*M,10*M)+tto[i].r;let x=r*cos(a);let y=r*sin(a);curveVertex(x,y);zoff2+=0.05}
endShape(CLOSE);fill(360,35,100,100);beginShape();for(let a=0;a<TWO_PI;a+=0.2){const r=RA.random_num(0,tto[i].r);let x=r*cos(a);let y=r*sin(a);curveVertex(x,y)}
beginContour();for(let a=0;a<TWO_PI;a+=0.2){const r=RA.random_num(0,tto[i].r);let x=r*cos(a);let y=r*sin(a);curveVertex(x,y)}
endShape(CLOSE);for(let j=0;j<80*M;j+=1*M){fill(51,35,RA.random_int(80,100),RA.random_int(60,100));let x=RA.random_num(-tto[i].r,tto[i].r);let y=RA.random_num(-tto[i].r,tto[i].r);if(dist(x,y,0,0)<tto[i].r){push();rotate(RA.random_num(0,TWO_PI));ellipse(x,y,4*M,7*M);pop()}}
pop()}}
pepperoni(){let tpe=circlePack(60*M,90*M);for(var i=0;i<tpe.length;i++){push();translate(tpe[i].x,tpe[i].y);fill(360,100,RA.random_int(70,80),100);strokeWeight(2*M);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.01){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff+0.01,yoff+0.01,zoff2),0,1,0*M,10*M)+tpe[i].r;let x=r*cos(a);let y=r*sin(a);curveVertex(x,y);zoff2+=0.005}
endShape(CLOSE);pop()}}
ham(){let tha=circlePack(50*M,80*M);for(var i=0;i<tha.length;i++){push();translate(tha[i].x,tha[i].y);rotate(RA.random_num(0,TWO_PI));let zoff=0;for(let y=0;y<tha[i].r-10*M;y+=1*M){for(let x=0;x<tha[i].r-10*M;x+=1*M){fill(360,25,map(noise(x,y,zoff),0,1,60,100),100);square(x,y,5*M*noise(x,y,zoff));zoff+=0.01}}
pop()}}
chicken(){let tcd=circlePack(50*M,70*M);for(var i=0;i<tcd.length;i++){push();translate(tcd[i].x,tcd[i].y);rotate(RA.random_num(0,TWO_PI));fill(14,90,60,100);beginShape();let zoff=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff),0,1,30*M,tcd[i].r);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff+=0.02}
endShape(CLOSE);fill(14,90,70,100);beginShape();let zoff2=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff2),0,1,20*M,tcd[i].r-5*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff2+=0.002}
endShape(CLOSE);fill(14,90,80,100);beginShape();let zoff3=0;for(let a=0;a<TWO_PI;a+=0.02){let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff3),0,1,10*M,tcd[i].r-10*M);let x=r*cos(a);let y=r*sin(a);vertex(x,y);zoff3+=0.002}
endShape(CLOSE);pop()}}
anchovie(){push();scale(2.5/D);for(let a=0;a<TWO_PI;a+=PI/4){rotate(a);for(let x=0*M;x<20*M;x+=1*M){let xoff=0;for(let y=350*M-x*(5*M);y>100*M+x*(5*M);y-=1*M){stroke(0,0,map(noise(xoff),0,1,0,80));strokeWeight(8*M);point(noise(xoff)*10*M+x,y);xoff+=0.05}}
for(let x=-20*M;x<0*M;x+=1*M){let xoff=0;for(let y=100*M+x*(2*M);y<350*M-x*(2*M);y+=1*M){stroke(0,0,map(noise(xoff),0,1,0,80));strokeWeight(8*M);point(noise(xoff)*10*M+x,y);xoff+=0.05}}}
pop()}
onion(){let ton=circlePack(60*M,90*M);for(var i=0;i<ton.length;i++){push();translate(ton[i].x,ton[i].y);noFill();strokeWeight(8*M);let zoff2=0;let co=RA.random_num(PI,TWO_PI);for(let ro=0;ro<10;ro+=1){for(let a=0;a<co;a+=radians(1*M)){stroke(261,20,map(ro,0,10,50,95),100);let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff,yoff,zoff2),0,1,0*M,20*M)+ton[i].r-20*M+ro*M;let x=r*cos(a);let y=r*sin(a);point(x,y);zoff2+=0.01}}
pop()}}
capsicum(col){this.capcol=col;if(this.capcol=="red"){this.ccl=color(0,80,80)}else if(this.capcol=="green"){this.ccl=color(117,60,40)}else if(this.capcol=="yellow"){this.ccl=color(41,80,80)}
let tca=circlePack(80*M,100*M);for(var i=0;i<tca.length;i++){push();translate(tca[i].x,tca[i].y);rotate(RA.random_num(0,TWO_PI));noFill();strokeWeight(4*M);let zoff2=0;for(let ma=0;ma<TWO_PI;ma+=PI/2){push();translate((tca[i].r-40*M)*cos(ma),(tca[i].r-40*M)*sin(ma));rotate(ma-PI/2);for(let ro=0;ro<10;ro+=1){for(let a=radians(-15);a<radians(195);a+=radians(1*M)){stroke(hue(this.ccl),saturation(this.ccl),map(ro,0,10,brightness(this.ccl),brightness(this.ccl)+20),100);let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(xoff+0.01,yoff+0.01,zoff2),0,1,0*M,10*M)+tca[i].r-60*M+ro*M;let x=r*cos(a);let y=r*sin(a);point(x,y);zoff2+=0.001}}
pop()}
pop()}}
mushroom(){let tmu=circlePack(30*M,60*M);for(var i=0;i<tmu.length;i++){push();translate(tmu[i].x,tmu[i].y);rotate(RA.random_num(0,TWO_PI));let coff=0;for(let rad=tmu[i].r;rad>0;rad-=5*M){let zoff=0;fill(25,55,map(noise(coff),0,1,30,100));beginShape();for(let a=0;a<TWO_PI;a+=0.01){let r=map(sin(zoff),0,1,0,rad)+noise(zoff)*5*M;vertex(r*cos(a),r*sin(a));zoff+=0.005;coff+=0.2}
endShape()}
pop()}}
olive(){let ton=circlePack(50*M,50*M);for(var i=0;i<ton.length;i++){push();translate(ton[i].x,ton[i].y);noFill();strokeWeight(8*M);let zoff2=0;let co=TWO_PI;for(let ro=3;ro<10;ro+=1){for(let a=0;a<co;a+=radians(1*M)){stroke(253,27,map(ro,0,10,80,20),100);let xoff=map(cos(a),-1,1,0,1);let yoff=map(sin(a),-1,1,0,1);const r=map(noise(zoff2),0,1,0*M,10*M)+ton[i].r-50*M+ro*M;let x=r*cos(a);let y=r*sin(a);point(x,y);zoff2+=0.001}}
pop()}}