Project 2: Flower Generation

by areuter @ 2:47 am 22 February 2010

Project 2: Flower Generation

In this piece, my aim was to explore generation of both form and movement by designing a soothing simulation of randomly generation flowers guided by fluid dynamics.

Get Adobe Flash player

Note: You’ll need FlashPlayer 10.0 to view this…

To create the flowers, I designed an algorithm consisting of three steps–petal arrangement, petal shape, and petal color. A flower can have either one or two layers of petals, and the number of petals on each layer is a Fibonacci number (as in real life). Once the number of petals is determined, a Bezier curve is created from the base of the petal to the top, with a control point which is biased by the number of petals to prevent overcrowding. Finally, petal colors are generated by defining a color first in HSV (which is more intuitive for defining a natural-looking color space) and then converting to RGB.

The second part of this project is fluid simulation to make the flowers appear as though they are floating on the surface of water. This effect was created by implementing Jos Stam’s GDC paper Real-Time Fluid Dynamics for Games, with some optimizations made to improve its performance in Flash.

There are several improvements I could still make in this project. The color picking algorithm could be refined to choose more interesting color combination, perhaps with more than two colors. Some of the petals still overlap unnaturally, and it would be great to include more variations in the petal shapes–even for individual petals. The fluid simulation could also be improved–flowers will occasionally jitter when they approach the edge of a cell or when the cursor moves over them. I’d also like to make the fluid a little more responsive to the cursor’s movement, although so far I’ve been having trouble getting this to work with Flash.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2016 Special Topics in Interactive Art & Computational Design | powered by WordPress with Barecity