2019 Best in Drawing/Painting – Willa Hua


Visualizing the organic, the mathematical, and the algorithmic representation of flowers.
f.loop stands for flower loop. It’s an accordion book that explores the relationship between nature, math, code and art by juxtaposing flowers created by the artist’s hand and by a generative algorithm.

The Art
I firmly believe that nature, science, and art are connected. Art, often itself a response to its era, traditionally committed itself to the imitation of nature, and now feeds on both scientific discoveries and technological advances. When prompted to make an accordion florilegium, I wanted to incorporate the automation happening in the information age into this ancient medium that emphasizes the artist’s hand, which is one of the essence of the “fine arts.” My goal was to challenge art as the imitation of nature, and glorify art as the embodiment of new scientific advancements.

The book f.loop features a frontpage and four species of flowers. The frontpage offers a visual overview of the project’s mission: juxtaposing nature represented by the artist’s drawing hand and nature represented by biology, math and computing. The hand-drawn and the machine-generated mimics and complement each other, manifesting the multidiscipline fluidity in the contemporary creative process. The following four panels each feature one flower species in meticulous watercolor drawings and in computer-generated forms. The text labels the species’s common name, scientific name, family and bloom time. The semi-transparent page of generated forms, sewn to the middle, can be flipped to overlap the hand-drawn page, allowing the user to interact with the book and experience the two pages comparatively.

The Science
I wrote the underlying generative algorithm for the flower forms that accompany my watercolor drawings under the inspiration of Holger Lippmann and Diana Lange’s generative artworks. You may play with the interactive version of the algorithm here.

My overarching scientific reference was plant morphology, which informed me about how to simulate flowers in a way honest to their organic forms. I then found concepts that provided mathematical and algorithmic descriptions for flower forms: L-system, recursion and rose curves.

L-system in itself is a parallel rewriting system, while in biology, it’s used to provide a formal description of the development of multicellular organisms. One book that I found particularly useful in applying L-system to my code is The Algorithmic Beauty of Plants. Recursion is a basic algorithm in computer science, where a function being defined is applied within its own definition. In this case, recursion is the backbone for the generation of branches.

Rose curve is a sinusoid curve described in polar coordinates. The alteration of rose curve I used was r=A* cos( P/Q * theta) + B (P/Q had to be two constants because the parity of Q determines the number of petals). I experimented with the curves of various values of A, P, Q and B, and created a complex set of value combinations that renders reasonable shapes of flowers on a continuum.

In terms of executing the code, I used P5.JS, a JavaScript library that wraps up the functionality of the Java-based creative programming language, Processing. I also applied randomization functions to each aspect of the drawing to render realistic-looking flowers with lots of possible variations. Oddly enough, no one on Github seemed to have visualized flower shaped through mathematical descriptions. That did make my works more challenging, and that’s also why I’m making my code open-source here.