Week 3_Generative Art

Concept

The main inspiration for this project came from a certain artwork in Casey Reas’ Eyeo talk on chance operations. I really liked the idea of shapes emerging from within other shapes, so I wanted to explore that idea through something more natural. What better example of something emerging than a flower blooming? I sketched a couple of different flower shapes first so I could have them as references while coding.

Progress

I started by creating a class for the flowers and defining their properties. Then I drew the flower and its petals, and used a for loop to add multiple flowers to an array. After that, I experimented with adding inner petals to each flower, which made the blooming process more visible.

But one problem I ran into was figuring out how to make the inner petals appear after the outer petals instead of growing at the same time. I wanted the flowers to feel like they were actually blooming. I solved this by making the inner petals start growing only after the outer flower reached a certain size. This created a delay between the two layers and made the blooming process feel more realistic. I then added different colors to the outer and inner petals and made sure they were not the same color.

 

While looking at the result, I noticed that all the flowers had the exact same angle of rotation, which made them feel too repetitive. I changed the rotation to be random for each flower, giving them more variation and a more natural feeling.

Finally, I wanted to add an interactive element. I imagined the mouse cursor as a kind of magical sensor: when it gets close to a flower, it makes the flower bloom faster. This makes the viewer feel like they are affecting the growth of the flowers just by moving through the artwork.

//INCREASE GROWTH SPEED WHEN MOUSE IS NEAR FOR OUTER PETALS//
   let distance = dist(mouseX, mouseY, this.posX, this.posY);
   if (distance < 80) {
     this.size += 0.7;
   } else {
     this.size += random(0.05, 0.5);
   }
   //DELAY THE INNER PETAL SIZE INCREASE//
   //INCREASE GROWTH SPEED WHEN MOUSE IS NEAR FOR INNER PETALS//
   if (this.size > 12) {
     if (distance < 80) {
       this.innerSize += 0.6;
     } else {
       this.innerSize += random(0.2, 0.4);
     }
   }

Reflection

I am really proud of this project because I explored many different ideas and developed a deeper understanding of the concepts I was working with. If I were to alter anything, I would experiment with adding more variations to the flower shapes. However, I chose not to include this in the final piece because I felt that too much variation could make the artwork feel messy and take away from the blooming effect.

Leave a Reply