0xdcf4…9ddc

All memos sent from and to 0xdcf4…9ddc.

function draw(){if(generated&&!force)playing&&millis()-time>FLOWER_REST&&(time=millis(),currentHash=randomHash(),generated=!1);else{generate(currentHash),skyFromColor=color(P.background()),skyToColor=color(P.X[0]),skyProgression=R.O(0,1),fundo=lerpColor(skyFromColor,skyToColor,skyProgression),background(fundo);let e;e=R.A()<.5?color("#F2EBDC"):fundo,rG1=new RG({x:-100,y:scaler.height()/R.O(1.05,1.2),width:scaler.width()+100,height:scaler.height()/2,stroke:e,fill:P.X[0],direction:RG.Ee,Ae:R.O(0,10),Oe:R.O(0,10),Ne:R.O(.1,.5),De:R.N(7,21),Qe:50,je:R.N(0,360),Xe:10,Ye:1}),rG2=new RG({x:-100,y:scaler.height()/R.O(1.2,1.35),width:scaler.width()+100,height:500,stroke:P.X[0],fill:P.X[1],direction:RG.Ee,Ae:R.O(0,10),Oe:R.O(0,10),Ne:R.O(.1,.5),De:R.N(7,21),Qe:50,je:R.N(0,360),Xe:10,Ye:1}),rG3=new RG({x:-100,y:scaler.height()/R.O(1.35,1.55),width:scaler.width()+100,height:500,stroke:P.X[1],fill:P.X[2],direction:RG.Ee,Ae:R.O(0,10),Oe:R.O(0,10),Ne:R.O(.1,.5),De:R.N(7,21),Qe:50,je:R.N(0,360),Xe:10,Ye:1}),esp1=new Esp({seed:createVector(R.N(0,scaler.width()),scaler.height()),height:scaler.height()*R.O(.3,.7),angle:R.O(-10,10),we:R.O(50,500),ge:R.O(4,8),Se:R.O(1,1.2),be:2,ue:[{weight:10,color:P.Y[1]},{weight:6,color:P.Y[0]},{weight:2,color:P.background()}]}),esp2=new Esp({seed:createVector(R.N(0,scaler.width()),scaler.height()),height:scaler.height()*R.O(.3,.7),angle:R.O(-10,10),we:R.O(50,500),ge:R.O(4,8),Se:R.O(1,1.2),be:2,ue:[{weight:10,color:P.Y[1]},{weight:6,color:P.Y[0]},{weight:2,color:P.background()}]}),esp3=new Esp({seed:createVector(R.N(0,scaler.width()),scaler.height()),height:scaler.height()*R.O(.3,.7),angle:R.O(-10,10),we:R.O(50,500),ge:R.O(4,8),Se:R.O(1,1.2),be:2,ue:[{weight:10,color:P.Y[1]},{weight:6,color:P.Y[0]},{weight:2,color:P.background()}]}),esp4=new Esp({seed:createVector(R.N(0,scaler.width()),scaler.height()),height:scaler.height()*R.O(.3,.8),angle:R.O(-10,10),we:R.O(50,0),ge:R.O(4,8),Se:R.O(1,1.2),be:2,ue:[{weight:10,color:P.Y[1]},{weight:6,color:P.Y[0]},{weight:2,color:P.background()}]}),esp5=new Esp({seed:createVector(R.N(0,scaler.width()),scaler.height()),height:scaler.height()*R.O(.65,.99),angle:R.O(-20,20),we:R.O(100,700),ge:R.O(4,12),Se:R.O(1,1.2),be:2,ue:[{weight:10,color:P.Y[1]},{weight:6,color:P.Y[0]},{weight:2,color:P.background()}]}),esp6=new Esp({seed:createVector(R.N(0,scaler.width()),scaler.height()),height:scaler.height()*R.O(.65,.99),angle:R.O(-20,20),we:R.O(100,700),ge:R.O(4,12),Se:R.O(1,1.2),be:2,ue:[{weight:10,color:P.Y[1]},{weight:6,color:P.Y[0]},{weight:2,color:P.background()}]});var t=GP.Z(P.J),s=((flower1=new Flower(esp1.Pe,R.N(190,210),0,P)).Ve(1,0,{$:P.Y[0],ct:2,borderColor:P.Y[1],lt:function(e,t){return{a:45.5,b:92.7,Rt:R.O(49,99),ft:R.O(.3,1.8),ut:R.O(20.4,40.4),m:R.O(5.2,5.4),position:e,size:t,qe:.01,vt:0,dt:3,phiMax:3}}}),flower1.We(function(){push();for(let e=0;e<R.N(6,12);e++){var t=R.N(-90,90),s=R.N(-130,-80);stroke(P.Y[1]),strokeWeight(2),noFill(),bezier(0,0,0,0,t+R.N(-20,20),s+R.N(-20,20),t,s),noStroke(),fill(P.Y[1]),ellipse(t,s,10,10),fill(P.background()),ellipse(t,s,5,5)}pop()}),(flower2=new Flower(esp2.Pe,R.N(190,210),0,P)).Ve(1,0,{$:lerpColor(skyFromColor,skyToColor,skyProgression),ct:2,borderColor:P.Y[1],lt:function(e,t){return{a:45.5,b:92.7,Rt:R.O(49,99),ft:R.O(.3,1.8),ut:R.O(20.4,40.4),m:R.O(5.2,5.4),position:e,size:t,qe:.01,vt:0,dt:3,phiMax:3}}}),flower2.We(function(){push();for(let e=0;e<R.N(6,12);e++){var t=R.N(-90,90),s=R.N(-130,-80);stroke(P.Y[1]),strokeWeight(2),noFill(),bezier(0,0,0,0,t+R.N(-20,20),s+R.N(-20,20),t,s),noStroke(),fill(P.Y[1]),ellipse(t,s,10,10),fill(P.background()),ellipse(t,s,5,5)}pop()}),(flower3=new Flower(esp3.Pe,R.N(190,210),0,P)).Ve(1,0,{$:P.background(),ct:2,borderColor:P.Y[1],lt:function(e,t){return{a:45.5,b:92.7,Rt:R.O(49,99),ft:R.O(.3,1.8),ut:R.O(20.4,40.4),m:R.O(5.2,5.4),position:e,size:t,qe:.01,vt:0,dt:3,phiMax:3}}}),flower3.We(function(){push();for(let e=0;e<R.N(6,12);e++){var t=R.N(-90,90),s=R.N(-130,-80);stroke(P.Y[1]),strokeWeight(2),noFill(),bezier(0,0,0,0,t+R.N(-20,20),s+R.N(-20,20),t,s),noStroke(),fill(P.Y[1]),ellipse(t,s,10,10),fill(P.background()),ellipse(t,s,5,5)}pop()}),(flower4=new Flower(esp4.Pe,R.N(190,210),0,P)).Ve(1,0,{$:P.Y[0],ct:2,borderColor:P.Y[1],lt:function(e,t){return{a:45.5,b:92.7,Rt:R.O(49,99),ft:R.O(.3,1.8),ut:R.O(20.4,40.4),m:R.O(5.2,5.4),position:e,size:t,qe:.01,vt:0,dt:3,phiMax:3}}}),flower4.We(function(){push();for(let e=0;e<R.N(6,12);e++){var t=R.N(-90,90),s=R.N(-130,-80);stroke(P.Y[1]),strokeWeight(2),noFill(),bezier(0,0,0,0,t+R.N(-20,20),s+R.N(-20,20),t,s),noStroke(),fill(P.Y[1]),ellipse(t,s,10,10),fill(P.background()),ellipse(t,s,5,5)}pop()}),(flower5=new Flower(esp5.Pe,R.N(150,170),0,P)).Ve(1,0,{$:P.Y[1],ct:2,borderColor:P.Y[0],lt:function(e,t){return{a:45.5,b:92.7,Rt:R.O(49,99),ft:R.O(.3,1.8),ut:R.O(20.4,40.4),m:R.O(5.2,5.4),position:e,size:t,qe:.01,vt:0,dt:3,phiMax:3}}}),flower5.We(function(){push();for(let e=0;e<R.N(6,12);e++){var t=R.N(-90,90),s=R.N(-110,-80);stroke(P.Y[0]),strokeWeight(2),noFill(),bezier(0,0,0,0,t+R.N(-20,20),s+R.N(-20,20),t,s),noStroke(),fill(P.Y[0]),ellipse(t,s,10,10),fill(P.background()),ellipse(t,s,5,5)}pop()}),(flower6=new Flower(esp6.Pe,R.N(150,170),0,P)).Ve(1,0,{$:P.background(),ct:2,borderColor:P.Y[1],lt:function(e,t){return{a:45.5,b:92.7,Rt:R.O(49,99),ft:R.O(.3,1.8),ut:R.O(20.4,40.4),m:R.O(5.2,5.4),position:e,size:t,qe:.01,vt:0,dt:3,phiMax:3}}}),flower6.We(function(){push();for(let e=0;e<R.N(6,12);e++){var t=R.N(-90,90),s=R.N(-110,-80);stroke(P.Y[1]),strokeWeight(2),noFill(),bezier(0,0,0,0,t+R.N(-20,20),s+R.N(-20,20),t,s),noStroke(),fill(P.Y[1]),ellipse(t,s,10,10),fill(P.background()),ellipse(t,s,5,5)}pop()}),leavesLast=[],leavesSecondLayer=[],leaves=[],leavesBack=[],R.N(0,30)),i=R.N(0,30),r=R.N(0,30),o=R.N(0,200);for(let e=0;e<o;e++)leavesBack[e]=new Leaves({x:R.N(0,scaler.width()),y:R.N(0,scaler.height()),fill:P.X[0],stroke:t.$,ke:1,ye:P.background(),rotation:radians(R.O(0,360)),type:"elliptic",me:1,Fe:R.N(15,30)});for(let e=0;e<r;e++)leavesLast[e]=new Leaves({x:R.N(0,scaler.width()),y:R.N(0,scaler.height()),fill:t.$,stroke:t.$,ke:2,ye:P.background(),rotation:radians(R.O(0,360)),type:"elliptic",me:1.4,Fe:R.N(15,30)});for(let e=0;e<i;e++)leavesSecondLayer[e]=new Leaves({x:R.N(0,scaler.width()),y:R.N(0,scaler.height()),fill:P.X[R.N(0,2)],stroke:P.X[2],ke:2,ye:P.background(),rotation:radians(R.O(0,360)),type:"elliptic",me:1.6,Fe:R.N(15,30)});for(let e=0;e<s;e++)leaves[e]=new Leaves({x:R.N(0,scaler.width()),y:R.N(0,scaler.height()),fill:P.X[R.N(0,2)],stroke:P.X[1],ke:2,ye:P.background(),rotation:radians(R.O(0,360)),type:"elliptic",me:2,Fe:R.N(15,30)});rocks1=[];var a=createVector(R.O(0,scaler.width()),830);for(let e=0;e<R.O(3,5);e++)rocks1.push(new Boulder(a.x+R.O(100,300),a.y+R.O(-40,40),R.O(150,250),R.N(4,5),100,P.Y[0],PI+HALF_PI));rocks2=[];var h=createVector(R.O(0,scaler.width()),640);for(let e=0;e<R.O(3,5);e++)rocks2.push(new Boulder(h.x+R.O(-400,400),h.y,R.O(150,250),4,50,P.X[0],PI+HALF_PI));rocks3=[];var l=createVector(R.O(100,scaler.width()-100),900);for(let e=0;e<R.N(3,8);e++)rocks3.push(new Boulder(l.x+R.O(-800,1e3),l.y,R.O(500,1200),4,200,P.Y[1],PI+HALF_PI));rocks4=[];var n=createVector(R.O(100,scaler.width()-100),1600);for(let e=0;e<R.N(3,8);e++)rocks4.push(new Boulder(n.x+R.O(-800,1e3),n.y,R.O(500,1200),4,200,P.Y[1],PI+HALF_PI));if(R.A()<.3)for(let e=0;e<leavesBack.length;e++)leavesBack[e].fe();if(R.A()<.9&&(esp5.fe(),flower5.fe()),R.A()<.9&&(esp6.fe(),flower6.fe()),R.A()<.9)for(let e=0;e<rocks3.length;e++)rocks3[e].fe();if(rG3.fe(),R.A()<.9)for(let e=0;e<leavesLast.length;e++)leavesLast[e].fe();if(R.A()<.9&&(esp4.fe(),flower4.fe()),R.A()<.9)for(let e=0;e<rocks2.length;e++)rocks2[e].fe();if(R.A()<.65&&rG2.fe(),R.A()<.9)for(let e=0;e<leavesSecondLayer.length;e++)leavesSecondLayer[e].fe();if(R.A()<.9)for(let e=0;e<rocks1.length;e++)rocks1[e].fe();if(R.A()<.9&&(esp1.fe(),flower1.fe()),R.A()<.9&&(esp2.fe(),flower2.fe()),R.A()<.9&&(esp3.fe(),flower3.fe()),rG1.fe(),R.A()<.9)for(let e=0;e<leaves.length;e++)leaves[e].fe();if(R.A()<.9)for(let e=0;e<rocks4.length;e++)rocks4[e].fe();force?force=!1:(console.log("[🏵️]: Generated art: "+currentHash),generated=!0)}}function keyPressed(){" "==key&&((playing=!playing)?console.log("[🏵️]: Playing..."):console.log("[🏵️]: Stopped"))}function randomHash(){let e="0x";for(var t=0;t<64;t++)e+=Math.floor(16*Math.random()).toString(16);return e}function generate(e){var e=(R=new Random(e)).N(0,359),t=new Date(1981,7,21),s=new Date(2023,6,21),i=GP.q(e,78,34),s=new Date(t.getTime()+R.O(0,1)*(s.getTime()-t.getTime()));features={Pt:"Forget Noise",wt:"#"+i[0].toString(16)+i[1].toString(16)+i[2].toString(16),Location:R.N(0,90)+"° "+R.N(0,59)+"' "+R.N(0,59)+'" '+R.j(["N","S"])+" / "+R.N(0,180)+"° "+R.N(0,59)+"' "+R.N(0,59)+'" '+R.j(["W","E"]),gt:["January","February","March","April","May","June","July","August","September","October","November","December"][s.getMonth()]+" "+s.getDate()+", "+s.getFullYear()},P=new GP(GP.K(e),R)}
class Ornament{constructor(e,t,s){this.Te=e,this.palette=s,this.Be=t}show(){this.Te(this.Be,this.palette)}}class RG{constructor(e){this.position=createVector(e.x,e.y),this.width=e.width,this.height=e.height,this.stroke=e.stroke,this.fill=e.fill,e.direction&&[RG.Ee,RG.ze,RG._e,RG.He].includes(e.direction)?this.direction=e.direction:this.direction=RG.Ee,this.Ae=e.Ae,this.Oe=e.Oe,this.Ne=e.Ne,this.De=e.De,this.Qe=e.Qe,this.je=e.je,this.Xe=e.Xe,this.Ye=e.Ye,this.seed=R.O(0,100)}K(){}Je(e,t,s){push(),translate(e,t),rotate(s*radians(180));e=s*R.N(25,55),strokeWeight(2),stroke(this.stroke),t=R.A();t<.5?fill(this.fill):t<.6?fill(this.stroke):noFill(),ellipse(0,0,e*this.Xe,e*this.Ye),strokeWeight(2.4),line(-(e*this.Xe)/2,0,e*this.Xe,0),pop()}fe(){noiseSeed(this.seed);let i,e,r,t,o=(this.direction==RG.Ee?(i=e=>e<this.width,e=e=>e<this.height,r=e=>e+this.De,t=e=>e+this.De):this.direction==RG.ze?(i=e=>e>-this.width,e=e=>e<this.height,r=e=>e-this.De,t=e=>e+this.De):this.direction==RG._e?(i=e=>e<this.width,e=e=>e>-this.height,r=e=>e+this.De,t=e=>e-this.De):this.direction==RG.He&&(i=e=>e>-this.width,e=e=>e>-this.height,r=e=>e-this.De,t=e=>e-this.De),push(),translate(this.position.x,this.position.y),this.Oe);for(let s=0;e(s);s=t(s)){o+=this.Ne;let t=this.Ae;for(let e=0;i(e);e=r(e))t+=this.Ne,this.Je(e,s,noise(t,o))}pop()}static Ee=1;static ze=2;static _e=3;static He=4}class Supershape{constructor(e,t,s){this.position=createVector(e,t),this.Ue={a:{name:"a",value:1,step:.1,random:()=>this.randomizer.O(0,100)},b:{name:"b",value:1,step:.1,random:()=>this.randomizer.O(0,100)},p1:{name:"p1",value:1,step:.1,random:()=>this.randomizer.O(0,100)},p2:{name:"p2",value:1,step:.1,random:()=>this.randomizer.O(0,100)},p3:{name:"p3",value:1,step:.1,random:()=>this.randomizer.O(0,100)},m:{name:"m",value:0,step:.1,random:()=>this.randomizer.O(0,100)},phiMin:{name:"Φ min",value:0,step:.5,unit:"π",random:()=>0},phiMax:{name:"Φ max",value:4,step:.5,unit:"π",random:()=>2*this.randomizer.N(1,4)},r:{name:"r",value:200,step:1,unit:"px",random:()=>200}},this.qe=.01,this.Ke(0)}Ze(e){return this.$e().f(e,this)}get(e){return this.Ue[e].value}Ke(e){this.et=e}$e(){return Supershape.tt[this.et]}fe(){push(),translate(this.position.x,this.position.y),beginShape();for(let e=this.get("phiMin")*PI;e<this.get("phiMax")*PI;e+=this.qe){var t=this.st(e),s=this.Ze(e)*t*cos(e),t=this.Ze(e)*t*sin(e);vertex(s,t)}endShape(CLOSE),pop()}st(e){var t=1/this.get("a")*cos(e*this.get("m")/4),t=abs(t),e=(t=pow(t,this.get("p2")),1/this.get("b")*sin(e*this.get("m")/4)),e=abs(e),t=(e=pow(e,this.get("p3")),pow(t+e,1/this.get("p1")));return 0===t?0:1/t}re(){this.points=[];for(let e=this.get("phiMin")*PI;e<this.get("phiMax")*PI;e+=this.qe){var t=this.st(e),s=this.Ze(e)*t*cos(e),t=this.Ze(e)*t*sin(e);this.points.push(createVector(s,t))}}it(t){for(let e=0;e<Object.keys(t).length;e++){var s=Object.keys(t)[e];t[s]&&(this.Ue[s].value=t[s])}}static tt=[{},{},{},{description:"|cos(m/2*PHI)*r|",f:(e,t)=>abs(cos(t.get("m")*e/2)*t.get("r")),rt:(e,t)=>{var s=t.findMax();let i=0;i=abs(s.x)>=abs(s.y)?abs(e/(t.st(s.phi)*cos(s.phi))):abs(e/(t.st(s.phi)*sin(s.phi))),t.Ue.r.value=i}},{}]}class Tepal{constructor(e,t,s,i,r){this.position=e,this.size=t,this.rotation=s,this.Be=i,this.ot=r,this.K()}K(){this.ht=this.Be.lt(this.position,this.size,this.ot),this.shape=[],this.nt()}show(){translate(this.position.x,this.position.y),rotate(radians(this.rotation)),translate(-this.position.x,-this.position.y),this.fe()}fe(){push(),fill(this.Be.$),stroke(this.Be.borderColor),strokeWeight(this.Be.ct),beginShape();for(let e=0;e<this.shape.length;e++)curveVertex(this.shape[e].x,this.shape[e].y);endShape(),pop()}nt(){var t=new Supershape(this.position.x,this.position.y);t.Ue.m.value=this.ht.m,t.Ue.a.value=this.ht.a,t.Ue.b.value=this.ht.b,t.Ue.p1.value=this.ht.Rt,t.Ue.p2.value=this.ht.ft,t.Ue.p3.value=this.ht.ut,t.Ke(this.ht.dt),t.Ue.phiMax.value=this.ht.phiMax,t.Ue.r.value=this.ht.size/2,t.qe=this.ht.qe,t.re();for(let e=0;e<t.points.length;e++){var s=this.ht.vt;this.shape.push(createVector(t.points[e].x+s,t.points[e].y+s))}}}let T,R,P,G;const FLOWER_REST=1e4;let currentHash,playing=!0,generated=!1,time=0,force=!1;window.addEventListener("resize",function(e){force=!0},!0);let skyFromColor,skyToColor,fundo,rG1,rG2,rG3,esp1,esp2,esp3,flower1,flower2,flower3,leaves=[],leavesSecondLayer=[],leavesLast=[],leavesBack=[],rocks1=[],rocks2=[],rocks3=[],rocks4=[];function setup(){createAdaptiveCanvas(1600,900),currentHash=tokenData.hash,noCursor()}
function createAdaptiveGraphics(e,t,s){e=new AdaptiveBuffer(createGraphics(e,t),s);return scaler.t(e),scaler.i(),e}function addAdaptiveGraphics(e,t){e=new AdaptiveBuffer(e,t);scaler.t(e),scaler.i()}p5.prototype.scaler=void 0,p5.prototype.createAdaptiveCanvas=function(e,t,s){var i=createCanvas(e,t);return scaler=new Scaler(e,t,void 0===s||s),i},p5.prototype.o=function(){void 0!==scaler&&scale(scaler.scale())},window.addEventListener("resize",function(e){scaler.h()},!0),p5.prototype.registerMethod("pre",p5.prototype.o);class AdaptiveBuffer{#l;#p;constructor(e,t){this.#l=e,this.#p=t}R(){this.#p(this.#l)}u(){return this.#l}}class Scaler{#v;#P;#g;#k;#S;#F;#G;constructor(e,t,s){this.#v=e,this.#P=t,this.#g=this.#v/this.#P,this.#S=s,this.#G=[],this.#S&&this.h()}h(){if(this.#S){let e,t;var s,i,r,o;t=void 0!==this.#F?(o=getComputedStyle(this.#F),s=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight),i=parseFloat(o.paddingTop)+parseFloat(o.paddingBottom),r=parseFloat(o.borderLeftWidth)+parseFloat(o.borderRightWidth),o=parseFloat(o.borderTopWidth)+parseFloat(o.borderBottomWidth),e=this.#F.offsetWidth-s-r,this.#F.offsetHeight-i-o):(e=window.innerWidth,window.innerHeight),this.V(e,t)}}C(e){this.V(this.#v*e,this.#P*e)}V(e,t){let s,i;var r=Math.abs(this.#v-e),o=Math.abs(this.#P-t);Math.min(r,o)==r?(s=e,(i=e/this.#g)>t&&(i=t,s=t*this.#g)):(i=t,(s=t*this.#g)>e&&(s=e,i=e/this.#g)),this.#k=s/this.#v,resizeCanvas(s,i),this.i()}width(){return this.#v}height(){return this.#P}scale(){return this.#k}i(){for(let e=0;e<this.#G.length;e++)this.#G[e].u().pixelDensity(max(Math.ceil(this.#k)*displayDensity()*1.2,displayDensity())),this.#G[e].R()}t(e){this.#G.push(e)}W(e){this.#F=e,this.h()}L(){return mouseX/this.#k}M(){return mouseY/this.#k}I(){return pmouseX/this.#k}T(){return pmouseY/this.#k}}class Random{constructor(e){this.hash=e,this.B=!1;function t(e){let t=parseInt(e.substr(0,8),16),s=parseInt(e.substr(8,8),16),i=parseInt(e.substr(16,8),16),r=parseInt(e.substr(24,8),16);return function(){t|=0,s|=0,i|=0,r|=0;var e=(t+s|0)+r|0;return r=r+1|0,t=s^s>>>9,s=i+(i<<3)|0,i=(i=i<<21|i>>>11)+e|0,(e>>>0)/4294967296}}this._=new t(this.hash.substr(2,32)),this.H=new t(this.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this._(),this.H()}A(){return this.B=!this.B,this.B?this._():this.H()}O(e,t){return e+(t-e)*this.A()}N(e,t){return Math.floor(this.O(e,t+1))}D(e){return this.A()<e}j(e){return e[this.N(0,e.length-1)]}}class GP{constructor(e,t){this.backgroundColor=e[0],this.X=[e[1],e[2],e[3]],this.Y=[e[4],e[5]],this.J=[...this.X,...this.Y],this.random=t}background(){return this.backgroundColor}U(t,s){s=s||[];for(let e=0;e<s.length;e++)t.splice(t.indexOf(s[e]),1);var e=this.random.j(t);return s.push(e),e}static q(e,t,s){let i,r,o,a,h,l,n,c;var e=e/360,t=t/100,p=s/100;switch(l=p*(1-t),n=p*(1-(h=6*e-(a=Math.floor(6*e)))*t),c=p*(1-(1-h)*t),a%6){case 0:i=p,r=c,o=l;break;case 1:i=n,r=p,o=l;break;case 2:i=l,r=p,o=c;break;case 3:i=l,r=n,o=p;break;case 4:i=c,r=l,o=p;break;case 5:i=p,r=l,o=n}return[Math.round(255*i),Math.round(255*r),Math.round(255*o)]}static K(e){var t=[];return t.push(GP.q(41,9,95)),t.push(GP.q(e,78,34)),t.push(GP.q((e+9)%360,30,54)),t.push(GP.q((e+4)%360,25,74)),t.push(GP.q((e+189)%360,29,85)),t.push(GP.q((e+182)%360,49,65)),t}static Z=e=>{for(var t=[...e],s=[];0<t.length;){var i=R.N(0,t.length-1);s.push(t[i]),t.splice(i,1)}var r={};if(r.$=s[0],r.borderColor=s[1],2<s.length)for(let e=2;e<s.length;e++)r["color"+(e-1)]=s[e];return r}}class Boulder{constructor(e,t,s,i,r,o,a){for(this.position=createVector(e,t),this.size=s,this.ee=i,this.te=r,this.color=o,this.se=a,this.ie=[],this.re();!this.validate();)this.re();this.oe(),this.ae()}re(){var t=[];for(let e=0;e<360;e++)t.push(e);this.he=[];for(let e=0;e<this.ee;e++){var s=R.N(0,t.length-1);this.he.push(t[s]),t.splice(s,1)}this.he.sort(function(e,t){return e-t});for(let e=0;e<this.he.length;e++)this.he[e]=radians(this.he[e]);this.points=[];for(let e=0;e<this.he.length;e++){var i=cos(this.he[e])*this.size,r=sin(this.he[e])*this.size;this.points.push(createVector(i,r))}}le(){this.ne=createVector(this.points.reduce((e,t)=>e+t.x,0)/this.points.length,this.points.reduce((e,t)=>e+t.y,0)/this.points.length);var e=R.N(0,this.he.length-1),t=cos(this.he[e])*this.size/2,e=sin(this.he[e])*this.size/2,t=createVector(t-this.ne.x,e-this.ne.y);return createVector(this.ne.x+R.N(0,t.x),this.ne.y+R.N(0,t.y))}oe(){this.ie.push(this.le()),this.ce=[];for(let s=0;s<this.points.length;s++){let e,t=(e=s==this.points.length-1?0:s+1,this.ie[0]);for(let e=0;e<this.ie.length;e++){var i=dist(this.points[s].x,this.points[s].y,t.x,t.y);dist(this.points[s].x,this.points[s].y,this.ie[e].x,this.ie[e].y)<i&&(t=this.ie[e])}this.ce.push([this.points[s],this.points[e],t])}}pe(){let t=0,s=TWO_PI;for(let e=0;e<this.he.length;e++){var i=abs(this.se-this.he[e]);i<s&&(s=i,t=e)}var r=[];for(let e=0;e<this.ce.length;e++)r.push(this.ce[(e+t)%this.ce.length]);this.ce=r}ae(){this.pe();var t=ceil(this.ce.length/2),s=(this.Re=[],50/t);let i;for(let e=0;e<t;e++){var r=Math.floor(red(this.color)-s*e),o=Math.floor(green(this.color)-s*e),a=Math.floor(blue(this.color)-s*e);i=color(r,o,a),this.Re.push(i)}let h=-1;for(let e=t;e<this.ce.length;e++){var l=Math.floor(red(i)+s*h),n=Math.floor(green(i)+s*h),c=Math.floor(blue(i)+s*h);this.Re.push(color(l,n,c)),h++}}validate(){var s=[];for(let t=0;t<this.points.length;t++){let e;e=t==this.points.length-1?0:t+1;var i=dist(this.points[t].x,this.points[t].y,this.points[e].x,this.points[e].y);s.push(i)}for(let e=0;e<s.length;e++)if(s[e]<this.te)return!1;return!0}fe(){push(),translate(this.position.x,this.position.y);var e=color(red(this.color),green(this.color),blue(this.color));fill(e),noStroke(),beginShape();for(let e=0;e<this.points.length;e++)vertex(this.points[e].x,this.points[e].y);endShape(CLOSE),noStroke();for(let t=0;t<this.ce.length;t++){fill(this.Re[t]),beginShape();for(let e=0;e<this.ce[t].length;e++)vertex(this.ce[t][e].x,this.ce[t][e].y);endShape(CLOSE)}pop()}}class Esp{constructor(t){this.seed=t.seed,this.height=t.height,this.angle=t.angle-90,this.ue=t.ue,this.de=[],this.ve=[];var e=this.height,e=createVector(this.seed.x+e*cos(radians(this.angle)),this.seed.y+e*sin(radians(this.angle))),e=(this.Pe=e,R.D(.5));let s,i,r,o;var a=this.seed.y-this.Pe.y,h=(i=this.seed.y-a/3,o=this.seed.y-2*a/3,r=e?(s=this.seed.x+R.O(-abs(t.we),0),this.Pe.x+R.O(0,abs(t.we))):(s=this.seed.x+R.O(0,abs(t.we)),this.Pe.x+R.O(-abs(t.we),0)),this.ve=[this.seed.x,this.seed.y,s,i,r,o,this.Pe.x,this.Pe.y],this.points=[],.35*dist(this.ve[0],this.ve[1],this.ve[6],this.ve[7]));let l=0;t.ge&&(l=floor(.7*h/t.ge-1));for(let e=0;e<=h;e++){var n,c=e/h,p=bezierPoint(this.ve[0],this.ve[2],this.ve[4],this.ve[6],c),c=bezierPoint(this.ve[1],this.ve[3],this.ve[5],this.ve[7],c);this.points.push(createVector(p,c)),0<l&&e%l==0&&(n=atan2(this.points[e<5?0:e-5].y-c,this.points[e<5?0:e-5].x-p),this.de.push(new Leaves({x:p,y:c+R.N(-10,10),fill:P.background(),stroke:P.Y[1],ke:t.be,ye:P.Y[1],rotation:n-radians(R.N(40,70)),type:"elliptic",me:t.Se,Fe:1})),this.de.push(new Leaves({x:p,y:c+R.N(-10,10),fill:P.background(),stroke:P.Y[1],ke:t.be,ye:P.Y[1],rotation:n-radians(R.N(100,130)),type:"elliptic",me:t.Se,Fe:1})))}}Ge(t,e){push(),noFill(),stroke(e);for(let e=1;e<this.points.length;e++){var s=e-1,s=this.points[s];strokeWeight(map(this.points[e].y,0,scaler.height(),t,t)),line(s.x,s.y,this.points[e].x,this.points[e].y)}pop()}fe(){for(let e=0;e<this.de.length;e++)this.de[e].fe();for(let e=0;e<this.ue.length;e++)this.Ge(this.ue[e].weight,this.ue[e].color)}}class Flower{constructor(e,t,s,i){this.position=e,this.size=t,this.ue=[],this.xe=s,this.angle=R.N(-15,15),this.palette=i}Ve(e,t,s,i){let r;i&&(i=this.ue.length-1,0<=length)&&(r=this.ue[i]);i=new Tepal(this.Ce(),this.size*e,t,s,r);return this.ue.push(i),i}We(e,t){e=new Ornament(e,t,this.palette);return this.ue.push(e),e}Ce(){return createVector(R.O(-this.xe,this.xe),R.O(-this.xe,this.xe))}fe(){push(),translate(this.position.x,this.position.y),rotate(radians(this.angle));for(let e=0;e<this.ue.length;e++)this.ue[e].noRotation&&rotate(radians(-this.angle)),this.ue[e].show(),this.ue[e].noRotation&&rotate(radians(this.angle));pop()}rotate(e){this.angle=e}}class Leaves{constructor(e){this.position=createVector(e.x,e.y),this.fill=e.fill,this.stroke=e.stroke,this.ke=e.ke,this.ye=e.ye,this.rotation=e.rotation,this.type=e.type,this.me=e.me,this.Fe=e.Fe*this.me,this.Le=40*this.me,this.Me=R.O(.1,.5),this.Ie=R.O(.1,.5)}fe(){"elliptic"==this.type&&(push(),strokeWeight(this.ke),stroke(this.stroke),fill(this.fill),translate(this.position.x,this.position.y),rotate(this.rotation),translate(0,-this.Fe),beginShape(),curveVertex(0,0),curveVertex(0,0),curveVertex(this.Le*-this.Me,-1*this.Le),curveVertex(0,-2*this.Le),curveVertex(this.Le*this.Ie,-1*this.Le),curveVertex(0,0),curveVertex(0,0),endShape(),stroke(this.ye),line(0,this.Fe,0,-2*this.Le),pop())}}
One that contains all: "Dance to Forgotten Noise" is an algorithm that continually generates images of a synthetic landscape, offering endless perspectives of the scenery. Each drawing is a temporary materialization of a whole set of possible outcomes. Leaves dance through space, carried by an unseen wind, while flowers wobble and rocks occasionally defy gravity, seemingly weightless. These transient moments come and go, leaving fleeting memories, forgotten noises in our minds.
class Tepal{constructor(t,e,i,s,r){this.position=t,this.size=e,this.rotation=i,this.q=s,this.de=r,this.ke(),this.Ce=new Space(t,this.size/2,5),this.Ce.we(this.Te),this.be=new Leaf(new Vector(this.position.x,this.position.y),this.Ce,this.q.Yt)}ke(){this.De=this.q.Ht,this.Te=this.q.Ot(this.position,this.size,this.de),this.shape=[],this.Fe(),this.Ht=[],this.ye()}show(){translate(this.position.x,this.position.y),rotate(radians(this.rotation)),translate(-this.position.x,-this.position.y),this.Se(),this.be.show(),this.me()}Se(){push(),fill(this.q.Pt),stroke(this.q.borderColor),strokeWeight(this.q.Vt),beginShape();for(let t=0;t<this.shape.length;t++)curveVertex(this.shape[t].x,this.shape[t].y);endShape(CLOSE),pop()}me(){for(let t=this.Ht.length-1;0<=t;t--)this.We(this.Ht[t],this.De[t])}We(e,i){push();var t=color(i.color);t.setAlpha(i.alpha),noStroke(),fill(t);for(let t=0;t<e.length;t++)ellipse(e[t].x,e[t].y,i.Qt,i.Qt);pop()}xe(t){var e=1/this.Te.a*cos(t*this.Te.Le/4),e=abs(e),t=(e=pow(e,this.Te._e),1/this.Te.b*sin(t*this.Te.Le/4)),t=abs(t),e=(t=pow(t,this.Te.ze),pow(e+t,1/this.Te.Ae));return 0===e?0:1/e}Fe(){var e=this.size/2;let i;i=1==this.q.type?.015:.1;for(let t=0;t<=TWO_PI;t+=i){var s=this.xe(t),r=R.C(-3,3),s=new Vector(this.position.x+e*s*cos(t)+r,this.position.y+e*s*sin(t)+r);this.shape.push(s)}}ye(){for(let t=0;t<this.De.length;t++){var e=this.createTexture(this.De[t]);this.Ht.push(e)}}createTexture(e){var i=[];for(let t=e.Bt;t<this.size/2.15;t+=e.Bt){var s,r,o=t;if(R.m()<.5)for(let t=0;t<=TWO_PI;t+=R.C(0,this.Te.grow))R.m()>e.Ut||(s=this.xe(t),s=new Vector(this.position.x+o*s*cos(t),this.position.y+o*s*sin(t)),i.push(s));else for(let t=0;t<=TWO_PI;t+=this.Te.grow)R.m()>e.Ut||(r=this.xe(t),r=new Vector(this.position.x+o*r*cos(t),this.position.y+o*r*sin(t)),i.push(r))}return i}grow(){return this.be.grow()}static Nt(t,e){return function(t,e){var i=R.m();let s;return s=i<.35?12:i<.55?16:i<.75?18:20,{a:R.C(-.4,1.5),b:R.C(.7,2),Ae:R.C(4,14),_e:R.C(.5,1),ze:-1.8,Le:s,Bt:R.C(30,80),position:t,size:e/2,grow:R.C(.01,.05)}}}static Jt(t,e){return function(t,e,i){return{a:R.C(-.4,1.5),b:R.C(.7,2),Ae:R.C(4,14),_e:R.C(.5,1),ze:-1.8,Le:i?i.Te.Le*R.C(1,2):10,Bt:30,position:t,size:e/2,grow:R.C(.01,.05)}}}static Zt(t,e){return function(t,e){var i=R.m();let s;return s=i<.33?6:i<.66?8:10,{a:3.8,b:R.C(.45,.8),Ae:R.C(6,8),_e:R.C(.6,.7),ze:R.C(-1.6,-1.2),Le:s,Bt:R.C(30,100),position:t,size:e/2,grow:R.C(.001,.1)}}}static $t(t,e){return function(t,e,i){return{a:3.8,b:R.C(.25,.8),Ae:R.C(4,8),_e:R.C(.6,.9),ze:R.C(-1.8,-1.2),Le:i?i.Te.Le:6,Bt:100,position:t,size:e/2,grow:R.C(5e-4,.1)}}}static te(t,e){return function(t,e,i){return{a:-.4,b:1,Ae:3,_e:R.C(.1,2),ze:R.C(-10,-1.8),Le:i?i.Te.Le:6,Bt:R.C(50,80),position:t,size:e/2,grow:.01}}}static ee(t,e){return function(t,e,i){return{a:-.4,b:1,Ae:3,_e:R.C(.1,2),ze:R.C(-10,-1.8),Le:i?i.Te.Le:6,Bt:R.C(50,80),position:t,size:e/2,grow:.01}}}static ie(t,e){return function(t,e){var i=R.m();let s;return s=i<.25?12:i<.5?14:i<.75?16:18,{a:-.2,b:-.7,Ae:R.C(9,17),_e:.6,ze:-2.6,Le:s,Bt:100,position:t,size:e/2,grow:.01}}}static se(t,e){return function(t,e,i){return{a:-.2,b:-.7,Ae:i?i.Te.Ae:6,_e:.6,ze:-2.6,Le:i?i.Te.Le:10,Bt:50,position:t,size:e/2,grow:.01}}}static re(t,e){return function(t,e,i){return{a:-.2,b:-.7,Ae:5,_e:.6,ze:-2.6,Le:i?i.Te.Le*R.k(1,2):10,Bt:20,position:t,size:e/2,grow:.01}}}static oe(t,e){return function(t,e,i){return{a:-.2,b:-.7,Ae:5,_e:.6,ze:-2.6,Le:i?2*i.Te.Le:10,Bt:100,position:t,size:e/2,grow:.01}}}static ne(t,e){return function(t,e){var i=R.m();let s;return s=i<.35?10:i<.65?12:14,{a:R.C(-1.2,-.1),b:-.7,Ae:R.C(5,10),_e:R.C(.6,.9),ze:R.C(-3.6,-2.6),Le:s,Bt:R.C(50,80),position:t,size:e/2,grow:.01}}}static ae(t,e){return function(t,e,i){return{a:R.C(-1.2,-.1),b:R.C(-.9,-.7),Ae:R.C(5,10),_e:R.C(.6,.9),ze:R.C(-10.6,-2.6),Le:i?i.Te.Le:10,Bt:R.C(50,80),position:t,size:e/2,grow:R.C(.005,.01)}}}static he(t,e){return function(t,e,i){return{a:3,b:1,Ae:R.C(11,12),_e:15,ze:4,Le:i?i.Te.Le:10,Bt:100,position:t,size:e/2,grow:.01}}}static le(t,e){return function(t,e,i){return{a:1,b:1,Ae:13.5,_e:R.C(5.5,35.5),ze:13.5,Le:i?i.Te.Le/2:10,Bt:R.k(10,100),position:t,size:e/2,grow:.01}}}static ce(t,e){return function(t,e){var i=R.m();let s;return{a:-10,b:-2,Ae:-2,_e:0,ze:1,Le:s=i<.35?24:i<.65?32:40,Bt:50,position:t,size:e/2,grow:.01}}}static Re(t,e){return function(t,e){var i=R.m();let s;return{a:7,b:3,Ae:4,_e:-1,ze:-3,Le:s=i<.35?6:i<.65?8:10,Bt:100,position:t,size:e/2,grow:.01}}}static pe(t,e){return function(t,e){return{a:7,b:3,Ae:4,_e:-1,ze:-3,Le:R.k(18,30),Bt:50,position:t,size:e/2,grow:.01}}}static ue(t,e){return function(t,e){return{a:5,b:-4,Ae:-8,_e:7,ze:9,Le:R.k(20,50),Bt:100,position:t,size:e/2,grow:.01}}}static Ee(t,e){return function(t,e){return{a:5,b:-4,Ae:R.k(-8.5,-7.5),_e:7,ze:R.k(2,10),Le:R.k(20,40),Bt:100,position:t,size:e/2,grow:.01}}}static ge(t,e){return function(t,e){return{a:9,b:1,Ae:6,_e:-2,ze:-7,Le:R.k(6,10),Bt:200,position:t,size:e/2,grow:.0075}}}static ve(t,e){return function(t,e,i){return{a:4,b:-2,Ae:3,_e:-1,ze:-5,Le:i?i.Te.Le*R.k(1,2):10,Bt:200,position:t,size:e/2,grow:.0075}}}static fe(t,e){return function(t,e){return{a:4,b:-2,Ae:3,_e:-1,ze:-3,Le:6,Bt:100,position:t,size:e/2,grow:.01}}}}class Auxin{constructor(t){this.position=t,this.Ie=!1,this.Me=[]}show(){this.Ie||ellipse(this.position.x,this.position.y,10,10)}reset(){this.Me=[]}Pe(s,r,o,t){if(t){let e=void 0,i=this.Kt;for(let t=0;t<s.length;t++){var n=s[t],a=this.position.Ve(n.position);if(a<o){this.Ie=!0,e=void 0;break}a<=r&&(void 0===e||a<i)&&(e=n,i=a)}void 0!==e&&this.Me.push(e)}}}const _DEFAULT_KILL_DISTANCE=10,_DEFAULT_ATTRACTION_DISTANCE=500,_DEFAULT_VEIN_LENGTH=5,_DEFAULT_OPEN_VENATION=!0,_DEFAULT_VEIN_COLOR="#FF0000",_DEFAULT_VEIN_THICKNESS=1,_DEFAULT_MAX_STEADY_CYCLES=20;class Leaf{constructor(t,e,i){this.position=t,this.Ce=e.Ce,this.Oe=this.Ce.length,this.Ne=0,this.be=[],this.He=new Quadtree(t,e.Ue,50),this.Be=new Vein(this.position.copy(),new Vector(1,1)),this.add(this.Be),this.Xt=void 0===(i=void 0===i?{}:i).Xt?_DEFAULT_KILL_DISTANCE:i.Xt,this.Kt=void 0===i.Kt?_DEFAULT_ATTRACTION_DISTANCE:i.Kt,this.Gt=void 0===i.Gt?_DEFAULT_VEIN_LENGTH:i.Gt,this.Qe=void 0===i.Qe?_DEFAULT_OPEN_VENATION:i.Qe,this.jt=void 0===i.jt?_DEFAULT_VEIN_COLOR:i.jt,this.qt=void 0===i.qt?_DEFAULT_VEIN_THICKNESS:i.qt,this.Ye=void 0===i.Ye?_DEFAULT_MAX_STEADY_CYCLES:i.Ye}add(t){this.be.push(t),this.He.add(t)}show(){push(),stroke(this.jt),strokeWeight(this.qt),this.be.forEach(t=>{t.show()}),pop()}grow(){if(0==this.Ce.length||this.Ne>this.Ye)return!0;for(let t=0;t<this.Ce.length;t++){var e=this.Ce[t],i=[];this.He.find(e.position,this.Kt,i),e.Pe(i,this.Kt,this.Xt,this.Qe)}for(let t=0;t<this.Ce.length;t++){var s=this.Ce[t];if(0!=s.Me.length)for(let t=0;t<s.Me.length;t++)s.Me[t].Xe(s)}for(let t=this.be.length-1;0<=t;t--){var r=this.be[t];0<r.count&&(r.Ke(),this.add(r.next(this.Gt)),r.reset())}for(let t=this.Ce.length-1;0<=t;t--){var o=this.Ce[t];o.Ie?this.Ce.splice(t,1):o.reset()}return this.Ce.length==this.Oe&&this.Ne++,this.Oe=this.Ce.length,!1}}class Quadtree{constructor(t,e,i){this.position=t,this.Ue=e,this.Ge=i,this.je=!1,this.points=[]}add(t){return!!this.contains(t)&&(this.points.length<this.Ge?(this.points.push(t),!0):(this.je||this.qe(),this.Je.add(t)||this.Ze.add(t)||this.$e.add(t)||this.ti.add(t)))}qe(){this.Je=new Quadtree(new Vector(this.position.x-this.Ue/2,this.position.y-this.Ue/2),this.Ue/2,this.Ge),this.Ze=new Quadtree(new Vector(this.position.x+this.Ue/2,this.position.y-this.Ue/2),this.Ue/2,this.Ge),this.$e=new Quadtree(new Vector(this.position.x+this.Ue/2,this.position.y+this.Ue/2),this.Ue/2,this.Ge),this.ti=new Quadtree(new Vector(this.position.x-this.Ue/2,this.position.y+this.Ue/2),this.Ue/2,this.Ge),this.je=!0}contains(t){t=t.position;return t.x>=this.position.x-this.Ue&&t.x<=this.position.x+this.Ue&&t.y>=this.position.y-this.Ue&&t.y<=this.position.y+this.Ue}find(e,i,s){if(!(e.x-i>this.position.x+this.Ue||e.x+i<this.position.x-this.Ue||e.y-i>this.position.y+this.Ue||e.y+i<this.position.y-this.Ue)){for(let t=0;t<this.points.length;t++){var r=this.points[t];r.position.x>=e.x-i&&r.position.x<=e.x+i&&r.position.y>=e.y-i&&r.position.y<=e.y+i&&s.push(r)}this.je&&(this.Je.find(e,i,s),this.Ze.find(e,i,s),this.$e.find(e,i,s),this.ti.find(e,i,s))}}}class Space{constructor(t,e){this.position=t,this.Ue=e,this.Ce=[]}we(i){for(let t=i.Bt;t<i.size;t+=i.Bt){var s=t;for(let e=0;e<TWO_PI;e+=.01){var r=1/i.a*cos(e*i.Le/4),r=abs(r),o=(r=pow(r,i._e),1/i.b*sin(e*i.Le/4)),o=abs(o),r=(o=pow(o,i.ze),pow(r+o,1/i.Ae));let t;t=0===r?0:1/r;o=new Vector(i.position.x+s*t*cos(e),i.position.y+s*t*sin(e)),r=new Auxin(o);this.Ce.push(r)}}}show(){this.Ce.forEach(t=>{t.show()})}}class Vector{constructor(...t){this.components=t,this.components.length<1||(this.x=t[0],this.components.length<2||(this.y=t[1],this.components.length<3||(this.z=t[2])))}add({components:t}){return new Vector(...t.map((t,e)=>this.components[e]+t))}ei({components:t}){return new Vector(...t.map((t,e)=>this.components[e]-t))}scale(e){return new Vector(...this.components.map(t=>t*e))}ii(e){return new Vector(...this.components.map(t=>t/e))}length(){return Math.hypot(...this.components)}normalize(){return this.scale(1/this.length())}copy(){return new Vector(...this.components)}Ve({components:t}){return Math.hypot(...t.map((t,e)=>this.components[e]-t))}}class Vein{constructor(t,e,i){this.position=t,this.parent=i,this.direction=e.copy(),this.si=e.copy(),this.count=0}show(){void 0!==this.parent&&line(this.position.x,this.position.y,this.parent.position.x,this.parent.position.y)}reset(){this.direction=this.si.copy(),this.count=0}next(t){t=this.direction.scale(t),t=this.position.add(t);return new Vein(t,this.direction,this)}Xe(t){t=t.position.ei(this.position).normalize();this.direction=this.direction.add(t),this.count++}Ke(){this.direction=this.direction.ii(this.count+1)}}
class FlowerFactory{static type(t){t=Math.floor(parseInt(t[2],16)/16*FlowerFactory.types.length);return FlowerFactory.types[t]}static palette(t){t=Math.floor(parseInt(t[3],16)/16*FlowerFactory.Mt.length);return FlowerFactory.Mt[t]}static create(t,e,i,s,r){var o,n,a,t=new Flower(t,e,i,r);return"Elote"==s?(e={Pt:r[3],Vt:R.C(2,6),borderColor:r[R.k(0,5)],Ot:Tepal.Nt(),Ht:[{color:r[3],Ut:R.C(.4,.5),alpha:R.C(10,20),Bt:.5,Qt:R.C(2,8)},{color:r[4],Ut:R.C(.45,.85),alpha:R.C(20,30),Bt:.25,Qt:R.C(2,6)}],Yt:{Xt:R.C(5,10),Kt:R.C(20,60),Gt:R.C(5,25),jt:r[2],qt:R.C(4,8)}},i={Pt:r[3],Vt:R.C(1,4),borderColor:r[R.k(0,5)],Ot:Tepal.Jt(),Ht:[{color:r[0],Ut:R.C(.3,.5),alpha:15,Bt:3,Qt:10},{color:r[2],Ut:R.C(.4,.6),alpha:20,Bt:3,Qt:2}],Yt:{Xt:R.k(4,6),Kt:R.k(40,60),Gt:R.k(10,20),jt:r[2],qt:R.k(2,5)}},o={type:"staminaElote",dt:120,kt:190,wt:60,palette:[r[4],r[3]],Dt:1,Ft:4,yt:12,Wt:40,xt:50,Lt:3,zt:26,At:34,It:Anther.A(),angle:R.C(0,180)},a={angle:Phyllotaxy.ht(),at:R.C(600,800),ot:R.C(10,16),nt:R.C(8,14),st:R.C(3,4),Z:{20:{palette:[r[4],r[0]],shape:Phyllotaxy.lt()},35:{palette:[r[3],r[4]],shape:Phyllotaxy.ct()},50:{palette:[r[4],r[0]],shape:Phyllotaxy.lt()},100:{palette:[r[4],r[3]],shape:Phyllotaxy.lt()}},reverse:!0},t.U(stalk,!0),t.V(.45,0,e),t.V(R.C(.325,.375),R.C(-10,10),i,!0),t.N(R.C(50,150),o),t.H(a),t.rotate(R.C(-180,180))):"Tigre"==s?(e={Pt:r[3],Vt:R.C(18,24),borderColor:r[R.k(3,4)],Ot:Tepal.Zt(),Ht:[{color:r[1],Ut:R.C(.45,55),alpha:20,Bt:2,Qt:4},{color:r[0],Ut:R.C(.15,.25),alpha:20,Bt:2,Qt:8},{color:r[2],Ut:R.C(.3,.4),alpha:20,Bt:1,Qt:10}],Yt:{Xt:R.C(2,4),Kt:R.C(21,25),Gt:R.C(15,45),jt:r[0],qt:R.C(5,20)}},i={Pt:r[3],Vt:R.C(8,15),borderColor:r[0],Ot:Tepal.$t(),Ht:[{color:r[2],Ut:R.C(.09,0,19),alpha:R.C(20,40),Bt:1,Qt:8},{color:r[0],Ut:.09,alpha:R.C(50,60),Bt:1,Qt:8},{color:r[0],Ut:R.C(.55,.75),alpha:60,Bt:1,Qt:R.C(3,5)}],Yt:{Xt:0,Kt:0,Gt:0,jt:"#cfe2f3",qt:0}},o={Pt:r[3],Vt:3,borderColor:r[0],Ot:Tepal.te(),Ht:[{color:r[2],Ut:.35,alpha:20,Bt:2,Qt:R.C(4,10)}],Yt:{Xt:R.C(1,5),Kt:R.C(20,50),Gt:R.C(8,15),jt:r[4],qt:R.C(1,5)}},a={Pt:r[4],Vt:3,borderColor:r[4],Ot:Tepal.ee(),Ht:[{color:r[2],Ut:.35,alpha:10,Bt:2,Qt:4}],Yt:{Xt:R.C(1,5),Kt:R.C(20,50),Gt:R.C(8,20),jt:r[3],qt:R.C(1,5)}},n={type:"staminaTigre",dt:100,kt:200,wt:20,palette:[r[3],r[4]],Dt:6,Ft:7,yt:20,Wt:20,xt:20,Lt:7,zt:7,At:7,It:Anther.Blob(),angle:R.C(0,180)},t.U(stalk,!0),t.V(R.C(.3,.35),0,e),t.V(R.C(.15,.25),0,i,!0),t.V(.25,60,o,!0),t.V(.15,0,a,!0),t.N(R.C(5,16),n),t.rotate(R.C(-180,180))):"Sol"==s?(e={Pt:r[2],Vt:R.C(14,20),borderColor:r[R.k(3,4)],Ot:Tepal.ie(),Ht:[{color:r[0],Ut:1,alpha:255,Bt:.05,Qt:1}],Yt:{Xt:0,Kt:0,Gt:0,jt:"#634219",qt:0}},i={Pt:r[0],Vt:0,borderColor:r[0],Ot:Tepal.se(),Ht:[{color:r[3],Ut:R.C(.6,.8),alpha:30,Bt:2,Qt:R.C(3,5)}],Yt:{Xt:2,Kt:R.C(18,22),Gt:R.C(1,6),jt:r[4],qt:R.C(2,5)}},o={Pt:r[3],Vt:2,borderColor:r[4],Ot:Tepal.re(),Ht:[{color:r[3],Ut:R.C(.25,.75),alpha:R.C(15,25),Bt:1,Qt:R.C(2,6)}],Yt:{Xt:R.C(2,4),Kt:R.C(20,30),Gt:2,jt:r[0],qt:R.C(2,4)}},a={Pt:r[4],Vt:R.C(0,4),borderColor:r[0],Ot:Tepal.oe(),Ht:[{color:r[3],Ut:0,alpha:R.C(15,25),Bt:10,Qt:R.C(2,6)}],Yt:{Xt:R.C(1,2),Kt:40,Gt:2,jt:r[3],qt:R.C(1,2)}},n={angle:Phyllotaxy.ht(),at:R.C(300,500),ot:14,nt:14,st:R.C(3,5),Z:{20:{palette:[r[3],r[4],r[4],r[4]],shape:Phyllotaxy.gt()},40:{palette:[r[3],r[1],r[0],r[4]],shape:Phyllotaxy.gt()},70:{palette:[r[3],r[1],r[0],r[4]],shape:Phyllotaxy.ut()},100:{palette:[r[3],r[1],r[4]],shape:Phyllotaxy.Rt()}},reverse:!0},t.U(stalk,!0),t.V(.4,0,e),t.V(R.C(.375,.4),0,i,!0),t.V(R.C(.35,.4),R.C(45,60),o,!0),t.V(.125,R.C(0,180),a,!0),t.H(n),t.rotate(R.C(-180,180))):"Manita"==s?(e={Pt:r[2],Vt:R.C(5,8),borderColor:r[R.k(0,5)],Ot:Tepal.ne(),Ht:[{color:r[1],Ut:R.C(.3,.5),alpha:R.C(10,15),Bt:1,Qt:R.C(2,8)},{color:r[0],Ut:R.C(.55,.65),alpha:R.C(5,10),Bt:5,Qt:R.C(2,6)}],Yt:{Xt:R.C(5,10),Kt:R.C(11,60),Gt:R.C(1,30),jt:r[4],qt:R.C(2,12)}},i={Pt:r[0],Vt:R.C(1,10),borderColor:r[R.k(0,5)],Ot:Tepal.ae(),Ht:[{color:r[3],Ut:R.C(.6,.7),alpha:R.C(10,20),Bt:R.C(1,10),Qt:R.C(2,4)},{color:r[1],Ut:R.C(.4,.6),alpha:R.C(5,15),Bt:5,Qt:R.C(2,10)}],Yt:{Xt:R.C(5,10),Kt:R.C(11,40),Gt:R.C(1,30),jt:r[R.k(1,3)],qt:R.C(4,12)}},o={Pt:r[4],Vt:1,borderColor:r[4],Ot:Tepal.he(),type:1,Ht:[{color:r[3],Ut:R.C(.45,.55),alpha:20,Bt:.8,Qt:R.C(2,5)}],Yt:{Xt:0,Kt:0,Gt:0,jt:"#e55c68",qt:0}},a={Pt:r[3],Vt:R.k(0,4),borderColor:r[R.k(3,4)],Ot:Tepal.le(),Ht:[{color:r[2],Ut:R.C(.3,.5),alpha:20,Bt:1,Qt:R.C(2,4)}],Yt:{Xt:0,Kt:0,Gt:0,jt:"#e55c68",qt:0}},t.U(stalk,!0),t.V(.375,0,e),t.V(.09,30,o,!0),t.V(R.C(.18,.25),0,i,!0),t.V(R.C(.05,.1),30,a,!0),t.U(function(t){push(),rotate(60),noStroke();var e=color(t[2]),e=(e.setAlpha(100),fill(e),ellipse(0,0,R.k(55,65),R.k(35,45)),noFill(),strokeWeight(R.k(4,8)),stroke(t[2]),R.k(550,650)),e=(curve(0,0,R.k(-2,2),0,0,e,R.k(-1250,1250),500),fill(t[2]),strokeWeight(R.k(0,3)),stroke(t[2]),ellipse(0,e,20,20),noFill(),strokeWeight(R.k(4,8)),stroke(t[4]),R.k(350,550)),i=R.k(350,550),s=R.k(350,550),r=R.k(350,550),p5=R.k(350,550);curve(0,0,R.k(-2,2),0,-250,e,R.k(-1500,1500),500),strokeWeight(R.k(4,8)),curve(0,0,R.k(-2,2),0,-125,i,R.k(-750,750),500),strokeWeight(R.k(4,8)),curve(0,0,R.k(-2,2),0,0,s,R.k(-250,250),500),strokeWeight(R.k(4,8)),curve(0,0,R.k(-2,2),0,125,r,R.k(-750,750),500),strokeWeight(R.k(4,8)),curve(0,0,R.k(-2,2),0,250,p5,R.k(-1500,1500),500),fill(t[R.k(0,2)]),noStroke(),ellipse(-250,e,R.k(10,15),R.k(40,50)),ellipse(-125,i,R.k(10,15),R.k(40,50)),ellipse(0,s,R.k(10,15),R.k(40,50)),ellipse(125,r,R.k(10,15),R.k(40,50)),ellipse(250,p5,R.k(10,15),R.k(40,50)),pop()}),t.rotate(R.C(-180,180))):"Lily"==s?(n={Pt:r[3],Vt:R.C(1,10),borderColor:r[R.k(0,5)],Ot:Tepal.ce(),Ht:[{color:r[1],Ut:.01,alpha:100,Bt:10,Qt:20},{color:r[1],Ut:.1,alpha:100,Bt:2,Qt:5},{color:r[1],Ut:.1,alpha:100,Bt:.5,Qt:2}],Yt:{Xt:10,Kt:R.C(60,100),Gt:10,jt:r[2],qt:R.C(4,8)}},e={Pt:r[3],Vt:R.k(0,3),borderColor:r[R.k(0,3)],Ot:Tepal.Re(),Ht:[{color:r[0],Ut:1,alpha:20,Bt:1,Qt:1}],Yt:{Xt:R.C(1,5),Kt:R.C(10,30),Gt:R.k(1,10),jt:r[4],qt:R.C(1,2)}},o={Pt:r[3],Vt:R.k(1,3),borderColor:r[4],Ot:Tepal.pe(),Ht:[{color:r[R.k(0,3)],Ut:.2,alpha:10,Bt:20,Qt:R.k(10,20)}],Yt:{Xt:R.C(1,5),Kt:R.C(10,30),Gt:R.k(1,3),jt:r[0],qt:R.k(1,8)}},i={type:"staminaLily",dt:150,kt:275,wt:0,palette:[r[2],r[3]],Dt:0,Ft:0,yt:40,Wt:40,xt:40,Lt:40,zt:20,At:40,It:Anther.I(),angle:R.C(0,180)},t.U(stalk,!0),t.V(.3,0,n),t.N(R.C(20,30),i),t.V(R.C(.9,1),0,e),t.V(.75,0,o),t.V(.5,0,e),t.V(.25,0,o),t.V(.15,0,e),t.U(function(e){var i=R.k(5,25),t=(push(),R.k(-200,200)),s=R.k(750,850);strokeWeight(R.k(5,8)),stroke(e[0]),noFill(),curve(0,0,R.k(-10,10),R.k(-10,10),t,s,R.k(-750,750),R.k(500,650)),fill(e[0]),ellipse(t,s,20,20),noStroke(),ellipse(0,0,30,30);for(let t=0;t<=i;t++){var r=R.k(-200,200),o=R.k(450,650),n=e[R.k(0,2)],n=(strokeWeight(R.k(3,6)),stroke(n),noFill(),curve(0,0,R.k(-10,10),R.k(-10,10),r,o,R.k(-250,250),R.k(500,550)),noStroke(),fill(n),R.k(8,18));ellipse(r,o,n,n)}pop()}),t.rotate(R.C(-30,30))):"Dalia"==s?(a={Pt:r[3],Vt:R.C(10,14),borderColor:r[3],Ot:Tepal.ue(),Ht:[{color:r[2],Ut:.75,alpha:20,Bt:.5,Qt:1}],Yt:{Xt:R.C(2,9),Kt:30,Gt:R.C(2,5),jt:r[0],qt:R.C(2,4)}},n={Pt:r[1],Vt:R.C(1,2),borderColor:r[1],Ot:Tepal.ue(),Ht:[{color:r[2],Ut:.25,alpha:R.k(150,200),Bt:1,Qt:1}],Yt:{Xt:0,Kt:0,Gt:0,jt:r[0],qt:0}},i={angle:Phyllotaxy.ht(),at:100,ot:R.C(10,16),nt:R.C(8,14),st:R.C(3,4),Z:{50:{palette:[r[0],r[2]],shape:Phyllotaxy.lt()},100:{palette:[r[0],r[3]],shape:Phyllotaxy.lt()}},reverse:!0},t.U(stalk,!0),t.V(R.C(1.5,1.75),0,a),t.V(R.C(1.25,1.35),30,n),t.V(R.C(1,1.25),60,a),t.V(R.C(.75,.85),90,n),t.V(R.C(.5,.75),120,a),t.V(R.C(.3,.4),150,a),t.H(i),t.rotate(R.C(-180,180))):"Nova"==s&&(o={Pt:r[2],Vt:0,borderColor:r[2],Ot:Tepal.ge(),Ht:[{color:r[3],Ut:.75,alpha:10,Bt:.5,Qt:1}],Yt:{Xt:R.k(20,70),Kt:210,Gt:90,jt:r[4],qt:10}},e={Pt:r[R.k(3,4)],Vt:R.C(10,14),borderColor:t.backgroundColor,Ot:Tepal.ve(),Ht:[{color:r[1],Ut:1,alpha:20,Bt:.5,Qt:1}],Yt:{Xt:R.k(5,10),Kt:R.k(130,170),Gt:90,jt:r[2],qt:2}},n={Pt:r[0],Vt:0,borderColor:t.backgroundColor,Ot:Tepal.fe(),Ht:[{color:r[4],Ut:1,alpha:20,Bt:.5,Qt:1}],Yt:{Xt:R.k(2,4),Kt:R.k(10,20),Gt:20,jt:r[2],qt:1}},a={angle:Phyllotaxy.ht(),at:R.k(40,55),ot:20,nt:20,st:4,Z:{50:{palette:[r[1],r[2],r[0]],shape:Phyllotaxy.vt()},100:{palette:[r[1],r[3],r[4]],shape:Phyllotaxy.ft()}},reverse:!0},t.U(stalk,!0),t.V(.9,0,o),t.V(1.4,R.k(30,60),e,!0),t.V(.4,R.k(30,60),n),t.U(function(t){push(),fill(t[0]),stroke(t[4]),strokeWeight(R.k(2,3)),ellipse(0,0,R.k(70,80),R.k(70,80)),pop()}),t.H(a),t.rotate(R.C(-180,180))),t}static types=["Elote","Tigre","Sol","Manita","Lily","Dalia","Nova"];static Mt=[["#A60303","#A65C41","#D99C79","#F2F2F2","#3A668C","#3A668C","#F2F2F2"],["#A6432D","#BF4C0A","#D9A05B","#D9C091","#292759","#F2F2F2","#292759"],["#F28705","#F2C641","#F2A007","#F2D7D0","#022873","#F2D7D0","#022873"],["#2E97F2","#F2B6DD","#0583F2","#F2D7D0","#8C4278","#8C4278","#F2D7D0"],["#8083BF","#3F44A6","#7BA65D","#F2F2F0","#181E8C","#181E8C","#F2F2F0"],["#28594B","#297350","#F2B6A0","#F2F2F2","#2C3740","#F2F2F2","#2C3740"],["#2AA4BF","#9C99F2","#F2A444","#F2F2F2","#F27052","#F27052","#F2F2F2"],["#8EB1BF","#617C8C","#A66953","#D9B19A","#022026","#D9B19A","#022026"]]}
p5.prototype.scaler=void 0,p5.prototype.createAdaptiveCanvas=function(t,e,i){var s=createCanvas(t,e);return scaler=new Scaler(t,e,void 0===i),s},p5.prototype.t=function(){void 0!==scaler&&scale(scaler.scale())},window.addEventListener("resize",function(t){scaler.i()},!0),p5.prototype.registerMethod("pre",p5.prototype.t);class Scaler{#o;#h;#l;#R;#p;constructor(t,e,i){this.#o=t,this.#h=e,this.#l=this.#o/this.#h,this.#p=i,this.#p&&this.i()}i(){this.#p&&this.u(window.innerWidth,window.innerHeight)}g(t){this.u(this.#o*t,this.#h*t)}u(t,e){let i,s;var r=Math.abs(this.#o-t),o=Math.abs(this.#h-e);Math.min(r,o)==r?(i=t,(s=t/this.#l)>e&&(s=e,i=e*this.#l)):(s=window.innerHeight,(i=window.innerHeight*this.#l)>t&&(i=t,s=t/this.#l)),this.#R=i/this.#o,resizeCanvas(i,s)}width(){return this.#o}height(){return this.#h}scale(){return this.#R}}let R,flower,pos,isLoading=!0,walterY,walterY2,waterInterval,waveLimit1,waveLimit2,tWave;function setup(){createAdaptiveCanvas(1080,1920),R=new Random;var t=new Vector(R.k(300,780),R.k(250,550));flower=FlowerFactory.create(t,2e3,5,FlowerFactory.type(tokenData.hash),FlowerFactory.palette(tokenData.hash)),walterY=R.C(-scaler.height()/2,scaler.height()/4),walterY2=R.C(scaler.height()/3,scaler.height()/2.75),waterInterval=R.C(30,50),waveLimit1=R.C(-200,-50),waveLimit2=R.C(50,200),tWave=R.C(1,2),strokeCap(ROUND),strokeJoin(ROUND)}function draw(){if(R=new Random,noiseSeed(R.k(0,100)),background(flower.backgroundColor),isLoading)flower.grow()&&(isLoading=!1);else{for(let t=walterY;t<scaler.height()+scaler.height()/2;t+=waterInterval/2)agua(t,2);push(),flower.show(),pop();for(let t=walterY2;t<scaler.height()+scaler.height()/2;t+=waterInterval)agua(t,4);noLoop()}}function agua(t,e){push(),stroke(flower.T),strokeWeight(e),noFill();var i=t;beginShape();for(let t=0;t<scaler.width();t++){var s=3e4+tWave*map(t,0,scaler.width(),0,1),s=noise(s),s=map(s,0,1,waveLimit1,waveLimit2);vertex(t,i+s)}endShape(),pop(),noLoop()}class Random{constructor(){this.D=!1;function t(t){let e=parseInt(t.substr(0,8),16),i=parseInt(t.substr(8,8),16),s=parseInt(t.substr(16,8),16),r=parseInt(t.substr(24,8),16);return function(){e|=0,i|=0,s|=0,r|=0;var t=(e+i|0)+r|0;return r=r+1|0,e=i^i>>>9,i=s+(s<<3)|0,s=(s=s<<21|s>>>11)+t|0,(t>>>0)/4294967296}}this.F=new t(tokenData.hash.substr(2,32)),this.S=new t(tokenData.hash.substr(34,32));for(let t=0;t<1e6;t+=2)this.F(),this.S()}m(){return this.D=!this.D,this.D?this.F():this.S()}C(t,e){return t+(e-t)*this.m()}k(t,e){return Math.floor(this.C(t,e+1))}W(t){return this.m()<t}L(t){return t[this.k(0,t.length-1)]}}class Androecium{constructor(t,e,i){this.position=t,this._=[];for(let t=0;t<e;t++)this._.push(new Stamen(i))}show(){push(),translate(this.position.x,this.position.y);for(let t=0;t<this._.length;t++)this._[t].show(this._.length);pop()}}class Anther{static A(){return function(t,e,i,s,r,o){fill(t[0]),ellipse(0,0,e,R.C(i/1.5,i)),fill(t[1]),noStroke(),ellipse(s,0,s,R.C(r/3,r)),ellipse(-s,0,s,R.C(o/3,o))}}static Blob(){return function(e,i,s,r,o){for(let t=0;t<16;t++){push(),translate(0,0),noStroke(),fill(e[0]);var n=R.C(-r,r),a=R.C(-o,o),h=round(i+R.C(-5,5)),l=round(s+R.C(-5,5));ellipse(n,a,h,l),15===t&&(fill(e[1]),ellipse(n,a,h/1.15,l/1.15)),pop()}}}static I(){return function(e,i,s,r,o){for(let t=0;t<20;t++){push(),translate(0,0),noStroke();var n=color(e[0]),n=(n.setAlpha(R.C(10,20)),fill(n),R.C(-r,r)),a=R.C(-o,o),h=round(i+R.C(-5,25)),l=round(s+R.C(-5,25));ellipse(n,a,h,l),pop()}}}}class Flower{constructor(t,e,i,s){this.position=t,this.size=e,this.M=[],this.P=i,this.angle=0,this.palette=s,R.W(.5)?(this.T=s[5],this.backgroundColor=s[6]):(this.T=s[6],this.backgroundColor=s[5])}V(t,e,i,s){let r;s&&(s=this.M.length-1,0<=length&&(r=this.M[s]));s=new Tepal(this.O(),this.size*t,e,i,r);return this.M.push(s),s}N(t,e){t=new Androecium(this.O(),t,e);return this.M.push(t),t}H(t){t=new Phyllotaxy(this.O(),t);return this.M.push(t),t}U(t,e){t=new Ornament(t,this.palette,e);return this.M.push(t),t}show(){translate(this.position.x,this.position.y),rotate(radians(this.angle));for(let t=0;t<this.M.length;t++)this.M[t].B&&rotate(radians(-this.angle)),this.M[t].show(),this.M[t].B&&rotate(radians(this.angle))}grow(){let e=!0;for(let t=0;t<this.M.length;t++)this.M[t]instanceof Tepal&&(this.M[t].grow()||(e=!1));return e}O(){return new Vector(R.C(-this.P,this.P),R.C(-this.P,this.P))}rotate(t){this.angle=t}}let stalk=function(){let i,s,r=[];var e=[],o=[],n=R.C(-.2,.2),t=createVector(0,0),a=createVector(0,R.k(800,1e3)),o=(scaler.height(),i=R.C(0,PI),s=R.C(0,PI),[]);for(let t=0;t<50;t++)p2={Y:createVector(a.x,a.y),X:createVector(),K:.001,s:.01,G:400},o.push(p2);var h;r=[];for(h of o){let e=1;for(let t=0;t<h.G;t++)h.Y.x+=n+cos(i)+.5*sin(s+1),h.Y.y+=.8+sin(i)+.5*cos(s),stroke(flower.palette[1]),strokeWeight(20/e),0<t&&line(h.X.x,h.X.y,h.Y.x,h.Y.y),h.G-t==1&&r.push(h.Y),h.X=h.Y.copy(),i+=h.K,s+=h.s,e+=.005}var l=100*sin(1.5)+5e3,c=100*cos(1.5)+5e3;push(),fill(flower.palette[1]),noStroke(),translate(a.x,a.y),beginShape();for(let t=0;t<360;t++){var u=noise(l+.01*sin(t*TWO_PI/360)*30,c+.01*cos(t*TWO_PI/360)*30,30),g=30*sin(t*TWO_PI/360)*16*u+1,u=30*cos(t*TWO_PI/360)*16*u+1;vertex(g,u)}endShape(CLOSE),pop(),noFill(),stroke(flower.palette[0]),strokeWeight(R.k(30,35)),curve(t.x+R.k(-2500,2500),t.y,t.x,t.y,a.x,a.y,a.x+R.k(-2500,2500),a.y);var e=[],v=R.k(5,25);for(let t=0;t<v;t++)p={Y:createVector(a.x,a.y),X:createVector(),K:.001,s:.02,G:R.k(800,1200)},e.push(p);var f;r=[];for(f of e){let e=1;for(let t=0;t<f.G;t++)f.Y.x+=n+cos(i)+.5*sin(s+1),f.Y.y+=.8+sin(i)+.5*cos(s),stroke(flower.palette[0]),strokeWeight(35/e),0<t&&line(f.X.x,f.X.y,f.Y.x,f.Y.y),f.G-t==1&&r.push(f.Y),f.X=f.Y.copy(),i+=f.K,s+=f.s,e+=.005}};class Ornament{constructor(t,e,i){this.j=t,this.palette=e,this.B=!!i}show(){this.j(this.palette)}}class Phyllotaxy{constructor(t,e){this.position=t,this.q=e,this.J=Object.keys(this.q.Z),this.$=0}show(){push(),this.$=0;for(let t=this.tt();this.et(t);t=this.it(t)){var e=t*radians(this.q.angle),i=this.q.st*sqrt(t),s=i*cos(e)+this.position.x,i=i*sin(e)+this.position.y,e=(this.rt(t)>this.J[this.$]&&this.$++,this.q.Z[this.J[this.$]]);e.shape(s,i,this.q.ot,this.q.nt,e)}pop()}rt(t){t=t/this.q.at*100;return this.q.reverse?100-t:t}tt(){return this.q.reverse?this.q.at-1:0}et(t){return this.q.reverse?0<=t:t<this.q.at}it(t){return this.q.reverse?t-1:t+1}static ht(){return R.L([137.3,137.6,99.5,69,222.492])}static A(){return function(t,e,i,s,r){var o=color(r.palette[0]),o=(o.setAlpha(50),stroke(o),strokeWeight(R.C(0,4)),color(r.palette[1]));o.setAlpha(175),fill(o),ellipse(t,e,i,s)}}static lt(){return function(t,e,i,s,r){var o=color(r.palette[0]),o=(stroke(o),strokeWeight(R.C(0,3)),color(r.palette[1]));o.setAlpha(R.C(100,255)),fill(o),ellipse(t,e,i,R.C(s/2,s))}}static ct(){return function(t,e,i,s,r){var o=color(r.palette[0]),o=(stroke(o),strokeWeight(R.C(0,3)),color(r.palette[1]));o.setAlpha(R.C(100,255)),fill(o),ellipse(t,e,i,s)}}static Rt(){return function(t,e,i,s,r){var o=color(r.palette[0]),o=(o.setAlpha(R.C(100,255)),stroke(o),strokeWeight(2),color(r.palette[2]));o.setAlpha(R.C(175,200)),fill(o),ellipse(t,e,i,s),fill(color(r.palette[0])),ellipse(t,e,i-R.C(6,8),s-R.C(6,8))}}static ut(){return function(t,e,i,s,r){var o=color(r.palette[0]),o=(o.setAlpha(R.C(100,255)),stroke(o),strokeWeight(3),color(r.palette[1]));o.setAlpha(R.C(100,255)),fill(o),ellipse(t,e,i+R.C(0,4),s)}}static gt(){return function(t,e,i,s,r){var o=color(r.palette[0]),o=(o.setAlpha(R.C(100,255)),stroke(o),strokeWeight(2),color(r.palette[2]));o.setAlpha(R.C(100,255)),fill(o),ellipse(t,e,i,1.5*s),noStroke(),fill(color(r.palette[0])),ellipse(t,e,i-4,s-6)}}static vt(){return function(t,e,i,s,r){var o=R.k(-1e3,1e3),n=R.k(9,11),a=R.k(180,220);fill(r.palette[2]),stroke(r.palette[0]),strokeWeight(1),ellipse(t,e,i/3,s/3),stroke(r.palette[0]),strokeWeight(R.k(1,3)),noFill(),curve(t+o,e,t,e,t*n,e+a,t+o,e+R.k(100,300)),fill(r.palette[1]),stroke(r.palette[0]),strokeWeight(R.k(0,3)),ellipse(t*n,e+a,i,R.k(s/2,s))}}static ft(){return function(t,e,i,s,r){fill(r.palette[0]),stroke(r.palette[2]),strokeWeight(1),ellipse(t,e,i/3,s/3),stroke(r.palette[2]),strokeWeight(R.k(1,3)),noFill(),curve(t+R.k(-300,300),e,t,e,t,e+30,t+R.k(-300,300),e+100),fill(r.palette[1]),stroke(r.palette[2]),ellipse(t,e+30,i,R.k(s/2,s))}}}class Stamen{constructor(t){this.length=R.C(t.dt,t.kt),this.Ct=R.C(-t.wt,t.wt),this.Tt=R.C(0,this.length),this.angle=t.angle,this.palette=t.palette,this.bt=R.C(t.Dt,t.Ft),this.yt=t.yt,this.St=R.C(t.Wt,t.xt),this.Lt=t.Lt,this._t=R.C(t.zt,t.At),this.Et=R.C(t.zt,t.At),this.It=t.It,this.ht=R.W(.5)}show(t){push(),noFill(),stroke(this.palette[0]),strokeWeight(this.bt),bezier(0,0,this.Ct,-this.Tt,0,0,0,-this.length),translate(0,-this.length),this.ht?rotate(R.C(0,radians(180))):rotate(radians(this.angle)),this.It(this.palette,this.yt,this.St,this.Lt,this._t,this.Et),pop(),rotate(TWO_PI/R.C(0,t))}}
Underwater is a collection of 100 generative illustrations. The project portrays seven hypothetical species. Left to grow in the underground aquifer of Mexico City, these species are conceived as fictive descendants of ancient Mexican plants.  The abstract aesthetic of the drawings is inspired by the pre-naturalist illustrations of medieval herbaria, especially the Libellus de Medicinalibus Indorum Herbis. To recreate the beauty of these early scientific illustrations through code, the superformula was combined with space colonization algorithms to generate tepal-like forms with characteristic patterns. The flowers that inspired this collection of generative plants are: *Dahlia coccinea*, *Chirahodendron pentadactylon*, *Magnolia dealbata*, *Tigridia pavonia*, *Helianthus armus* and *Sprekelia formosissima*.
Underwater is a collection of 100 generative illustrations. The project portrays seven hypothetical species. Left to grow in the underground aquifer of Mexico City, these species are conceived as fictive descendants of ancient Mexican plants.  The abstract aesthetic of the drawings is inspired by the pre-naturalist illustrations of medieval herbaria, especially the Libellus de Medicinalibus Indorum Herbis. To recreate the beauty of these early scientific illustrations through code, the superformula was combined with space colonization algorithms to generate tepal-like forms with characteristic patterns. The flowers that inspired this collection of generative plants are: *Dahlia coccinea*, *Chirahodendron pentadactylon*, *Magnolia dealbata*, *Tigridia pavonia*, *Helianthus armus* and *Sprekelia formosissima*.
“Fragments of an infinite field” is a compositional system in which an idealized plant species is generated and arranged in a potentially infinite field of foliage. The main environmental parameter of the composition is the determination of a season of the year. The season determines the landscape’s colors and defines specific phenomena for each of them, such as rain in summer, snow in winter, petals falling in autumn, and pollen in spring. The flower has several possible variables, which can be macro aspects, affecting the entire population of the species, or micro, affecting each individual of the species differently. For example, the number of petals can be equal in all individuals or not. The number of filaments and other structures of the flower can undergo minor deviations, generating small mutations. The confusion between the figure (plant) and the background (earth, sky, other natural elements) is fascinating from a compositional point of view. The background colors are, most of the time, colors present in the figures, often breaking the boundary between them and, therefore, generating chromatic masses. In this project I also intend to research the following question: How to create parameters that resemble a living organism's growth? In this sense, the project approaches digital morphogenesis and the development of procedural organisms.
“Fragments of an infinite field” is a compositional system in which an idealized plant species is generated and arranged in a potentially infinite field of foliage. The main environmental parameter of the composition is the determination of a season of the year. The season determines the landscape’s colors and defines specific phenomena for each of them, such as rain in summer, snow in winter, petals falling in autumn, and pollen in spring. The flower has several possible variables, which can be macro aspects, affecting the entire population of the species, or micro, affecting each individual of the species differently. For example, the number of petals can be equal in all individuals or not. The number of filaments and other structures of the flower can undergo minor deviations, generating small mutations. The confusion between the figure (plant) and the background (earth, sky, other natural elements) is fascinating from a compositional point of view. The background colors are, most of the time, colors present in the figures, often breaking the boundary between them and, therefore, generating chromatic masses. In this project I also intend to research the following question: How to create parameters that resemble a living organism's growth? In this sense, the project approaches digital morphogenesis and the development of procedural organisms. "Dutch Auction - Start price of 10Ξ and decreasing in price every 5 minutes to a resting price of 0.25Ξ Pricing Tiers: 10Ξ > 8Ξ > 6Ξ > 5Ξ > 4Ξ > 3.5Ξ > 3Ξ > 2.5Ξ > 2Ξ > 1.75Ξ > 1.5Ξ > 1.25Ξ > 1Ξ > 0.75Ξ > 0.5Ξ > 0.25Ξ"
“Fragments of an infinite field” is a compositional system in which an idealized plant species is generated and arranged in a potentially infinite field of foliage. The main environmental parameter of the composition is the determination of a season of the year. The season determines the landscape’s colors and defines specific phenomena for each of them, such as rain in summer, snow in winter, petals falling in autumn, and pollen in spring. The flower has several possible variables, which can be macro aspects, affecting the entire population of the species, or micro, affecting each individual of the species differently. For example, the number of petals can be equal in all individuals or not. The number of filaments and other structures of the flower can undergo minor deviations, generating small mutations. The confusion between the figure (plant) and the background (earth, sky, other natural elements) is fascinating from a compositional point of view. The background colors are, most of the time, colors present in the figures, often breaking the boundary between them and, therefore, generating chromatic masses. In this project, I also intend to research the following questions: How to create parameters that resemble a living organism’s growth? In this sense, the project approaches digital morphogenesis and the development of procedural organisms. "Dutch Auction - Start price of 10Ξ and decreasing in price every 5 minutes to a resting price of 0.25Ξ Pricing Tiers: 10Ξ > 8Ξ > 6Ξ > 5Ξ > 4Ξ > 3.5Ξ > 3Ξ > 2.5Ξ > 2Ξ > 1.75Ξ > 1.5Ξ > 1.25Ξ > 1Ξ > 0.75Ξ > 0.5Ξ > 0.25Ξ"
let hash = tokenData.hash; var TDIM = Math.min(window.innerWidth, window.innerHeight); var DIM = 1000; var fDIM = TDIM/DIM; var linha, col, larg, alt, fn, fx, fy, filamento, quant, estacao, primavera, verao, outono, inverno; var corFolhas, corFlor; var flores = []; function semente() { let seed = parseInt(tokenData.hash.slice(0, 16), 16); let p = []; for (let i = 0; i < 64; i += 2) { p.push(tokenData.hash.slice(i + 2, i + 4)); } sementes = p.map((x) => { return parseInt(x, 16) % 10; }); } function variaveis() { semente(); // rows and columns linha = map(sementes[0], 0, 9, 93, 107); col = map(sementes[1], 0, 9, 20, 39); // noise factor fn = map(sementes[2], 0, 9, 0.0325, 0.07); // scale factor fx = 1; fy = 10; // size larg = DIM / linha; alt = DIM / col; noiseSeed(map(sementes[3], 0, 9, 0, 1000)); randomSeed(map(sementes[4], 0, 9, 0, 1000)); estacao = map(sementes[15], 0, 9, 0, 1); let corPri = map(sementes[23], 0, 9, 0, 1); let corV = map(sementes[25], 0, 9, 0, 1); let corOut = map(sementes[14], 0, 9, 0, 1); let corIn = map(sementes[22], 0, 9, 0, 1); if (estacao < 0.25) { primavera = true; var dado1 = random(1); if (dado1 < 0.5) { corFolhas = [ color("#A3BFAA"), color("#698C72"), color("#467351"), color("#184026"), color("#13261B"), ]; } else { corFolhas = [ color("#CFDFDC"), color("#618C6C"), color("#80A689"), color("#2E5931"), color("#12260C"), ]; } if (corPri < 0.5) { corFlor = [ color("#FAE29D"), color("#F7B05B"), color("#F8F8F8"), color("#DDC9DB"), color("#AA78A6"), ]; } else { corFlor = [ color("#FFE6D2"), color("#856F72"), color("#FFCF87"), color("#FFB883"), color("#D59385"), ]; } } else if (estacao < 0.5) { outono = true; var dado2 = random(1); if (dado2 < 0.5) { corFolhas = [ color("#F0F2DD"), color("#F2BB5A"), color("#8D4304"), color("#5A1B02"), color("#0B0D0A"), ]; } else { corFolhas = [ color("#D94423"), color("#F2E2C4"), color("#D97236"), color("#59190B"), color("#260907"), ]; } if (corOut < 0.5) { corFlor = [ color("#606c38"), color("#283618"), color("#fefae0"), color("#dda15e"), color("#bc6c25"), ]; } else { corFlor = [ color("#e8f6fe"), color("#0097dc"), color("#8db6db"), color("#f27178"), color("#ac2a1c"), ]; } } else if (estacao < 0.75) { verao = true; let dado3 = random(1); if (dado3 < 0.5) { corFolhas = [ color("#F2CF66"), color("#F2B950"), color("#F29D35"), color("#F2780C"), color("#F2DE79"), ]; } else { corFolhas = [ color("#ECE094"), color("#FEFAB0"), color("#FFFEBC"), color("#FFFFD1"), color("#FFFFFF"), ]; } if (corV < 0.5) { corFlor = [ color("#fcdce1"), color("#f384a1"), color("#d9f1fd"), color("#4993ce"), color("#ed0874"), ]; } else { corFlor = [ color("#2703A6"), color("#9591F2"), color("#F2CB05"), color("#F29F05"), color("#F25C05"), ]; } } else { inverno = true; let dado4 = random(1); if (dado4 < 0.5) { corFolhas = [ color("#C1C7D9"), color("#E9EBF2"), color("#D0D2D9"), color("#6F81A6"), color("#95A3BF"), ]; } else { corFolhas = [ color("#F2F2F2"), color("#A6A6A6"), color("#8C8C8C"), color("#737373"), color("#595959"), ]; } if (corIn < 0.5) { corFlor = [ color("#BFA8BB"), color("#D6C2F2"), color("#E4E4F2"), color("#F6F6FE"), color("#EADAE4"), ]; } else { corFlor = [ color("#B8D3D9"), color("#E4F6E8"), color("#AEC78E"), color("#274B00"), color("#F5FBF9"), ]; } } quant = map(sementes[6], 0, 9, 5, 75); corFlor = reord(corFlor); } function reord(array) { let novoArray = array; for (let i = novoArray.length - 1; i > 0; i--) { const j = floor(random(1) * i); const temp = novoArray[i]; novoArray[i] = novoArray[j]; novoArray[j] = temp; } return novoArray; } function permute(nums) { let result = []; if (nums.length === 0) return []; if (nums.length === 1) return [nums]; for (let i = 0; i < nums.length; i++) { const currentNum = nums[i]; const remainingNums = nums.slice(0, i).concat(nums.slice(i + 1)); const remainingNumsPermuted = permute(remainingNums); for (let j = 0; j < remainingNumsPermuted.length; j++) { const permutedArray = [currentNum].concat(remainingNumsPermuted[j]); result.push(permutedArray); } } return result; } function setup() { createCanvas(TDIM, TDIM); strokeCap(ROUND); strokeWeight(DIM / 500); variaveis(); let corChance = map(sementes[7], 0, 9, 0, 1); let indexChance = map(sementes[8], 0, 9, 0, 1); var cores = permute(corFlor); for (var i = 0; i < quant; i++) { if (corChance < 0.75) { cor = cores[floor(random(cores.length))]; } else { cor = corFlor; } filamento = map(sementes[floor(random(sementes.length))], 0, 9, 30, 50); //30.50 if (indexChance < 0.5) { index = map(sementes[floor(random(sementes.length))], 0, 9, 4, 9); } else { index = map(sementes[9], 0, 9, 4, 9); } anc = map(sementes[floor(random(sementes.length))], 0, 9, 4, 14); flores[i] = new flor( random(1)*DIM, random(1)*DIM, random(360), index, filamento, anc, cor ); } } function draw() { scale(fDIM, fDIM); let back = map(sementes[10], 0, 9, 0, 1); let chuvaChance = map(sementes[21], 0, 9, 0, 1); if (back < 0.5) { background(corFlor[floor(random(corFlor.length))]); } else { background(corFolhas[floor(random(corFolhas.length))]); } folhas(random(0.35, 0.6)); play(); folhas(random(0.2, 0.35)); if (inverno === true) neve(); if (verao === true) { if (chuvaChance < 0.9) { chuva(); } } noLoop(); } function folhas(chance) { let novaCor = reord(corFolhas); var p1 = map(sementes[29], 0, 9, 0, 1); var p2 = map(sementes[28], 0, 9, 0, 1); for (var i = 0; i <= DIM; i++) { for (var j = 0; j <= DIM + DIM * 0.5; j++) { a = noise(fn * i, fn * j); a2 = noise(fn * j, fn * i); push(); if (p1 < 0.5) { translate((i * larg) / fx, (j * alt) / fy); } else { translate((j * alt) / fy, (i * larg) / fx); } if (p2 < 0.5) { rotate(a * TAU); } else { rotate(-(a * TAU)); } if (a2 < chance) { var chanceS = map(sementes[11], 0, 9, 0, 1); var chanceS2 = map(sementes[21], 0, 9, 0, 1); if (chanceS2 < 0.33) { if (chanceS < 0.5) stroke(novaCor[0]); else stroke(corFlor[0]); } else if (chanceS2 < 0.66) { if (chanceS < 0.5) { stroke(corFlor[floor(random(corFlor.length))]); } else { stroke(novaCor[floor(random(novaCor.length))]); } } else { stroke(corFlor[floor(a * corFlor.length)]); } fill(novaCor[floor(a * corFolhas.length)]); ellipse(0, 0, this.fx * larg, fy * alt * a); var matoChance = map(sementes[12], 0, 9, 0, 1); noStroke(); if (primavera === true) { if (matoChance < 0.25) { fill(corFlor[floor(random(corFlor.length))]); } else if (matoChance < 0.5) { fill(corFlor[1]); } else if (matoChance < 0.75) { noFill(); } else { fill(corFlor[floor(a * corFlor.length)]); } ellipse( 0, (fy * alt * a) / 2, DIM / 20 / random(10, 16), DIM / 20 / random(5, 10) ); } } pop(); } } } function flor(px_, py_, ang_, index, fil_, anc, cor) { this.corFlor = cor; this.px = px_; this.py = py_; this.ang = ang_; this.quant = index; this.ang2 = 360 / this.quant / 2; this.fil = fil_; if (quant < 15) { this.esc = map(sementes[floor(random(sementes.length))], 0, 9, 16, 21); } else if (quant < 25) { this.esc = map(sementes[floor(random(sementes.length))], 0, 9, 21, 26); } else if (quant < 35) { this.esc = map(sementes[floor(random(sementes.length))], 0, 9, 28, 32); } else { this.esc = map(sementes[floor(random(sementes.length))], 0, 9, 32, 37); } this.prob = map(sementes[floor(random(sementes.length))], 0, 9, 0, 1); var chance = random(1); if (chance < 0.5) { this.anc = anc; } else { this.anc = -anc; } this.petalaPlot = function () { push(); translate(this.px, this.py); rotate(radians(this.ang)); ellipseMode(CORNER); //petalas for (let i = 0; i < this.quant; i++) { var escAlt = random(1, 1.15); noStroke(); fill(this.corFlor[0]); ellipse( 0, (-DIM / (this.esc * 2)) * escAlt, DIM / (this.esc / 2), (DIM / this.esc) * escAlt ); strokeWeight(DIM / this.esc / 30); stroke(this.corFlor[1]); line( 0, 0, random((DIM / (this.esc / 2)) * 0.75, DIM / (this.esc / 2)), 0 ); rotate(PI / (this.quant / 2)); } rotate(radians(this.ang2)); for (let i = 0; i < this.quant; i++) { var escAlt2 = random(0.95, 1.05); noStroke(); fill(this.corFlor[1]); ellipse( 0, (-DIM / (this.esc * 2)) * escAlt2, DIM / (this.esc / 2), (DIM / this.esc) * escAlt2 ); strokeWeight(DIM / this.esc / 30); stroke(this.corFlor[0]); line( 0, 0, random((DIM / (this.esc / 2)) * 0.75, DIM / (this.esc / 2)), 0 ); rotate(PI / (this.quant / 2)); } pop(); }; this.petalaOut = function () { push(); translate(this.px, this.py); rotate(radians(this.ang)); ellipseMode(CORNER); for (let i = 0; i < this.quant; i++) { var escAlt = random(1, 1.15); noStroke(); fill(this.corFlor[0]); ellipse( 0, (-DIM / (this.esc * 2)) * escAlt, DIM / (this.esc / 2), (DIM / this.esc) * escAlt ); strokeWeight(DIM / this.esc / 30); stroke(this.corFlor[1]); line( 0, 0, random((DIM / (this.esc / 2)) * 0.75, DIM / (this.esc / 2)), 0 ); translate(0, random(DIM)); rotate(PI / (this.quant / 2)); } pop(); }; this.corona = function () { push(); translate(this.px, this.py); // corona strokeWeight(DIM / this.esc / 30); ellipseMode(CENTER); for (let i = 0; i < this.fil; i++) { var dado = random(1.25, 1.35); noFill(); stroke(this.corFlor[2]); bezier( 0, 0, 0, DIM / this.esc / this.anc, DIM / (this.esc / dado), DIM / this.esc / this.anc, DIM / (this.esc / dado), 0 ); noStroke(); fill(this.corFlor[2]); ellipse( DIM / (this.esc / dado), 0, DIM / this.esc / random(10, 14), //14 DIM / this.esc / random(7, 10) //7 ); var dado3 = random(1, 1.2); noFill(); stroke(this.corFlor[2]); bezier( 0, 0, 0, DIM / this.esc / this.anc, DIM / (this.esc / dado3), DIM / this.esc / this.anc, DIM / (this.esc / dado3), 0 ); noStroke(); fill(this.corFlor[2]); ellipse( DIM / (this.esc / dado3), 0, DIM / this.esc / random(12, 16), DIM / this.esc / random(8, 12) ); rotate(PI / (this.fil / 2)); } for (var j = 0; j < this.fil / 2; j++) { var dado2 = random(0.85, 0.95); noFill(); stroke(this.corFlor[2]); bezier( 0, 0, 0, DIM / this.esc / this.anc, DIM / (this.esc / dado2), DIM / this.esc / this.anc, DIM / (this.esc / dado2), 0 ); noStroke(); fill(this.corFlor[2]); ellipse( DIM / (this.esc / dado2), 0, DIM / this.esc / random(12, 18), DIM / this.esc / random(9, 12) ); rotate(PI / (this.fil / 2 / 2)); } // miolinho noStroke(); fill(this.corFlor[2]); ellipse( 0, 0, DIM / this.esc / random(0.75, 1), DIM / this.esc / random(0.75, 1) ); fill(this.corFlor[3]); ellipse( 0, 0, DIM / this.esc / random(1.1, 1.5), DIM / this.esc / random(1.1, 1.5) ); pop(); }; this.stamen = function () { var sta; if (this.prob < 0.1) sta = 4; else if (this.prob > 0.9) sta = 6; else sta = 5; push(); translate(this.px, this.py); rotate( radians(map(sementes[floor(random(sementes.length))], 0, 9, 0, 360)) ); for (var i = 0; i < sta; i++) { var altS = random(-DIM / this.esc / 16, DIM / this.esc / 16); strokeWeight(DIM / this.esc / 14); stroke(this.corFlor[3]); noFill(); if (this.prob > 0.5) { ang2 = random(18, 20); } else { ang2 = random(-20, -18); } bezier( 0, 0, 0, DIM / this.esc / ang2, DIM / this.esc / 1.5 + altS, DIM / this.esc / ang2, DIM / this.esc / 1.5 + altS, 0 ); noStroke(); fill(this.corFlor[3]); ellipse( DIM / this.esc / 1.5 + altS, 0, (DIM / this.esc / 9) * random(1, 1.5), (DIM / this.esc / 5) * random(1, 1.5) ); rotate(PI / (sta / 2)); } //ovario fill(this.corFlor[4]); ellipse( 0, 0, DIM / this.esc / 2 / random(0.75, 1), DIM / this.esc / 2 / random(0.75, 1) ); // stigma for (var j = 0; j < 3; j++) { var altSt = random(-DIM / this.esc / 18, DIM / this.esc / 18); strokeWeight(DIM / this.esc / 14); stroke(this.corFlor[1]); noFill(); bezier( 0, 0, 0, DIM / this.esc / ang2, DIM / this.esc / 2 + altSt, DIM / this.esc / ang2, DIM / this.esc / 2 + altSt, 0 ); noStroke(); fill(this.corFlor[1]); ellipse( DIM / this.esc / 2 + altSt, 0, (DIM / this.esc / 8) * random(1, 1.25), (DIM / this.esc / 4) * random(1, 1.25) ); rotate(PI / (3 / 2)); } fill(this.corFlor[2]); ellipse(0, 0, DIM / this.esc / 5, DIM / this.esc / 5); pop(); }; } function chuva() { var chanceChuva = random(1); var altChuva = random(DIM / 3, DIM); var gotas = random(400, 600); var desvio = DIM / 15; stroke(corFlor[floor(random(corFlor.length))]); push(); translate(0, 0); for (let i = 0; i < gotas; i++) { var x = random(-DIM / 5, DIM); var y = random(-DIM / 5, altChuva); var x2 = random(DIM); var y2 = random(altChuva / 2); var alt = random(DIM / 80, DIM / 10); if (chanceChuva < 0.45) { line(x, y, x + desvio, y + alt); line(x2, y2, x2 + desvio, y2 + alt); } else if (chanceChuva < 0.9) { line(x, y, x - desvio, y + alt); line(x2, y2, x2 - desvio, y2 + alt); } else { line(x, y, x, y + alt); line(x2, y2, x2, y2 + alt); } } pop(); } function neve() { var corNeve = [ color("#F5FBF9"), color("#e9ebf2"), color("#f6f6fe"), color("#f1f1f1"), color("#e4e4f2"), ]; let novaCor = reord(corNeve); var flocos = map(sementes[16], 0, 9, 1000, 1800); if (sementes[17] === 3) flocos = 0; if (sementes[19] === 3) flocos = random(3500, 4500); print(flocos); push(); translate(0, 0); fill(novaCor[floor(random(novaCor.length))]); noStroke(); for (let i = 0; i < flocos; i++) { ellipse( random(DIM), random(DIM), random(DIM / 100, DIM / 140), random(DIM / 100, DIM / 140) ); } pop(); } function play() { var chance = map(sementes[13], 0, 9, 0, 1); for (var i = 0; i < flores.length; i++) { if (outono === true) { if (chance < 0.15) { flores[i].petalaPlot(); flores[i].corona(); flores[i].stamen(); } else { flores[i].petalaOut(); flores[i].petalaPlot(); flores[i].corona(); flores[i].stamen(); } } if (primavera === true) { flores[i].petalaPlot(); flores[i].corona(); flores[i].stamen(); } if (inverno === true) { flores[i].petalaPlot(); flores[i].corona(); flores[i].stamen(); } if (verao === true) { flores[i].petalaPlot(); flores[i].corona(); flores[i].stamen(); } } }
“Fragments of an infinite field” is a compositional system in which an idealized plant species is generated and arranged in a potentially infinite field of foliage. The main environmental parameter of the composition is the determination of a season of the year. The season determines the landscape’s colors and defines specific phenomena for each of them, such as rain in summer, snow in winter, petals falling in autumn, and pollen in spring. The flower has several possible variables, which can be macro aspects, affecting the entire population of the species, or micro, affecting each individual of the species differently. For example, the number of petals can be equal in all individuals or not. The number of filaments and other structures of the flower can undergo minor deviations, generating small mutations. The confusion between the figure (plant) and the background (earth, sky, other natural elements) is fascinating from a compositional point of view. The background colors are, most of the time, colors present in the figures, often breaking the boundary between them and, therefore, generating chromatic masses. In this project, I also intend to research the following questions: How to create parameters that resemble a living organism’s growth? In this sense, the project approaches digital morphogenesis and the development of procedural organisms.
Monica Rizzolli, Lan Lanh e Deeplick | 2021 Visual Arts: Monica Rizzolli | Raining in the cerrado, wind storm over Pseudotrimezia juncifolia Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Ar 800X800px | 52s | 24.1mb | MP4 https://ipfs.io/ipfs/QmZE4hkHQWrqoDxwRDs5F5nmmJqSGXxvd6FvXEBW2i1yij
Monica Rizzolli, Lan Lanh e Deeplick | 2021 Visual Arts: Monica Rizzolli | Raining in the cerrado, wind storm over Pseudotrimezia juncifolia Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Ar 800X800px | 52s | 24.1mb | MP4 https://ipfs.io/ipfs/QmZGWgpD6HoC4wxvVuGPXzjKd6oug6PzdCzbducxSJWu8b
Monica Rizzolli, Lan Lanh e Deeplick | 2021 Visual Arts: Monica Rizzolli | Raining in the cerrado, 30 seconds of storm over Mandevilla hirsuta Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Água 2000X2000px | 33s | 45mb | MP4 https://ipfs.io/ipfs/QmVos2TUzbaFyEyv3L9i7he288c4zCka3sc2FDrJ8iabp9
Monica Rizzolli, Lan Lanh e Deeplick | 2021 Visual Arts: Monica Rizzolli | Raining in the cerrado, 30 seconds of storm over Mandevilla hirsuta Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Água 2000X2000px | 33s | 45mb | MP4 https://ipfs.io/ipfs/QmS2azdUZFiXh8SpyFKfmjCbujNBT2BcFJYLnM2J4fo5q6
Monica Rizzolli, Lan Lanh e Deeplick | 2021 Visual Arts: Monica Rizzolli | Raining in the cerrado, wind storm over Pseudotrimezia juncifolia Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Ar 800X800px | 52s | 24.1mb | MP4 https://ipfs.io/ipfs/QmNhBgYwZX24bSVzQnFfeK16tHcnuztVE7zMZNpq9iunky
Monica Rizzolli, Lan Lanh e Deeplick | 2021 Visual Arts: Monica Rizzolli | Raining in the cerrado, 30 seconds of storm over Mandevilla hirsuta Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Água 2000X2000px | 33s | 45mb | MP4 https://ipfs.io/ipfs/QmWbf9iNQY1KhuE1ndPdXe5pK6fn8NEpa1TmnYo8fZq1xS
Monica Rizzolli, Lan Lanh e Deeplick Visual Arts: Monica Rizzolli | Raining in the cerrado, east rain west wind over Pseudotrimezia Soundtrack: Lan Lanh e Deeplick | Chovendo no Cerrado – Fogo 2000X2000px | 14s | 18.7mb | MP4 https://ipfs.io/ipfs/QmaReugeGXyU2eC1djdtCRsv14Hf5tmHe3kYvV99ehhrHU
Monica Rizzolli | 2021 | Raining in the cerrado, Açucena is dancing in the rain | 1000X1000px | 34s | 44.1mb | MP4 https://ipfs.io/ipfs/QmRDYYWsukQhkQDGPXzaDz4kHGsUTpLHW7ha7jQ2aksvwF