VES3L Profile

VES3L

Seedings

0

Seedlings was released on Art Blocks on Monday Nov 21st. You can peruse the mints here: here

Below is a little writeup to contextualize the development of Seedlings.

Intro

"A young plant, especially one raised from a seed."

Each Seedling grows delicately on a windowsill gazing outside. A Seedling's natural environment–whether a grassy prairie, a rocky mountain, or by a river–is but a memory now, leaving a faded imprint on the canvas' outer border. Some Seedlings resemble trees and flowers, others may appear to be geometric abstractions and fractals–yet all feature interplay between filled patterned regions (leaves and petals) and lines of solid color (stems and branches). Other abstractions also make an appearance: circles representing fruits, stars, or the sun and moon; and a gradient sky with foggy clouds beyond the frames of the window.

Foundation

The idea for Seedlings was sown in 2019 and was my first foray into Generative Art. It began as a study of fractal trees where each depth level was individually parametrized (angle of rotation, length, etc.). Initially just a hobbyist project in the pre-Art Blocks era, I returned to Seedlings in 2022 with the intention of making it into the Long-Form series, I believe, that most effectively highlights the underlying algorithm's potential. So, I rewrote Seedlings from scratch, turning its simple monochromatic line renderer into a WebGL shader renderer capable of transforming Bézier Curves into abstract stems, branches, leaves, and petals with diverse and colorful palettes.

Inspiration

Having lived all my life in New York, one of the most urbanized cities in the world, I developed a significant appreciation for green spaces. The city's parks became a refuge from the urban sprawl, where one could touch some grass, breathe fresh air, and pretend they were somewhere else. In an attempt to fill more of my life with green, I put some plants on my windowsill. The joy they bring my little home inspired the theme behind Seedlings.

Aesthetically, Seedlings collected many influences from Hokusai's trees, Charles Demuth's crisscrossing polygonal regions, and Alphonse Mucha's curves. As such, you will find elements of Ukiyo-e and Art Nouveau across the collection.Seedlings also contains stylistic elements found in my other work, such as ink-like outlining and the concept of shape overlap.

Additionally, I drew inspiration from contemporary Long-Form Generative Art that aims to create complex emergent behaviors from the interactions of a small set of simple primitives. The structural patterns that form each Seedling are created purely from the probabilistic placement of their branches and petals.

Behind the Work–Technical Details

Fractal Trees

Seedlings is built on the foundational idea of fractal trees, i.e. recursive, tree-like structures composed of branches (in the simplest case represented by a line) that have additional branches at their ends. Since they are capable of being defined recursively, a fractal tree is typically self-similar, i.e. the properties of the entire tree are repeated throughout the tree at arbitrarily smaller scales. These properties can be the angle and length of the branches, or the number of outgoing branches (what I call the branch factor) amongst others.

A typical fractal tree is a binary tree, where each branch has two outgoing branches (i.e. a branch factor of 2). The first depth level has 1 branch, the following has 2, the next has 4, and so on, such that depth level d has 2^d branches. This tree also has a constant angle of rotation–approximately 45°.

How Seedlings innovates on its fractal tree foundation is that every depth level is individually parametrized and has its own unique properties. For instance, instead of the entire tree having a constant branch factor of 2, as shown in the example above, a branch may have a higher or lower branch factor at each depth level. Besides branch factor, Seedlings also parametrizes angle of rotation, angle offset, length, stroke-width, curvature, and fill. All kinds of interesting patterns emerge from the variation of these parameters. To provide a basic example, a tree composed of levels that have a branch factor of 3 and an angle of rotation of PI * 1.5 resembles a pine tree, or the Sierpinski Triangle.

A prototype resembling the Sierpinski Triangle

One of my earliest creative directions with Seedlings was to form the branches out of Bézier Curves instead of the straight line branches that are typically associated with fractal trees. Straight line branches betray the structure of the tree and the techniques used to generate it, whereas Bézier Curves, when done correctly, create a seamless flow throughout the tree.

An early prototype output showing off seamless, curved branches

An early prototype comparing the same tree with straight branches and with curved branches

Construction

Shaders

Originally, a Seedling would be generated using the line and curve based drawing functions provided by p5js. As I began to experiment with WebGL, I found that shaders better facilitated experimentation despite the technique's initially steeper difficulty. To transition to shader based rendering, the aforementioned p5 functions were converted to their Signed Distance Field (SDF) equivalents. The tree information, i.e. curve anchor points, control points, etc., is then sent to the GPU via textures.

One of the advantages of using shaders is that certain rendering effects are much more accessible to me in shaders. For instance, the intersection of petals creates a new pattern filled region with a different ordering of palette colors. The pattern illustrates the contours of the boolean intersection of the Bézier Curve SDFs. The color ordering is changed according to a blend function similar to XOR blending. Trust me when I say that shaders can express these effects in a much more brief and reasonable way.

XOR like blending mask. Notice how the intersected regions have different gray scale values.

HTML Canvas Rendering

Though the Seedling itself is rendered using WebGL, the outer background of most editions (i.e. outside the window) uses the HTML Canvas API to produce a monochrome sketch-like patterns. Thematically, these patterns represent different biomes that a Seedling originated from, which is why the feature is called "Origin". Aesthetically, they provide additional texture and act as negative space without being a solid fill.

The "Marsh" Seedling origin

Challenges

There were many challenges to overcome on the road to release–packing the tree into a texture, preventing WebGL crashes from long rendering times, adjusting background contrast, palette selection, etc.–but my intention is to share a particularly fun one below.

Fractal Behaviors

When each depth level (of which a Seedling typically has ~5) has ~10 unique properties, and each property has on average 5 discernable options, the number of trees that can be produced is at least in the millions. However, the higher the variety the higher the likelihood of generating outputs that are too chaotic, and therefore, not aesthetically pleasing. This trend is common in fractal based genart because fractal generation methods tend to be difficult to tame and control. In the context of fractal trees, the parameters of ancestor depths can have unintended consequences on descendant depths, i.e. moving a branch necessarily moves the entire sub-tree attached to it. Thus, it's difficult to adjust the tree into an optimal aesthetic configuration when it's only possible to reason about the state of each level independently from the others.

This problem reared its head during the creation of Seedlings when many petals would intersect, overlapping lots of outlines, and effectively creating smudged, darkened regions. Suffice it to say, I fought this frustrating problem for days and finally realized a simple heuristic: the angle of rotation of a depth level should be proportional to the branch factor; which largely eliminated this issue.

Dedication

Seedlings has been a lengthy labor of love and has a particular sentimental value to me—as the inception of my Generative Art practice. It feels fitting and very exciting to be given the opportunity to release Seedlings on Art Blocks, the original Long-Form Generative Art platform. Thank you to everyone who helped and supported me during this odyssey.

Select Test Outputs

0
1
2
3
4
5
6
7
8
9
10
11
12