xtrusion

A long form generative art project

In the classic novella Flatland: A Romance of Many Dimensions by Edwin Abott, the characters are geometric figures living in a world of two dimensions. The novella explores two main themes in parallel, a satire of Victorian culture and physical dimensions. It's the latter the concerns us here. The narrator, a square, comes to believe in the existence of a third dimension, but can't concieve of it until he is taken to the thrid dimension by a sphere. In Xtrusion two-dimensional curves, give the illusion of existing in a three-dimensional space. Xtrusion is a series of long form generative art pieces that explores the themes of limited perspective and expanded view of the world. This series utilizes extruded curves and unique color gradients to convey its central ideas.

Xtrusion 1

Each piece in Xtrusion features intricate and dynamic extruded curves, which serve as the primary link to Abbott's Flatland. These paths invite the viewer to consider the limitations of their own perspective and to imagine a world beyond the confines of our universe. Just as these two-dimensional paths meander through three-dimensional space.

The color gradients in Xtrusion are unique, they are not limited to the usual linear or radial gradients seen all over the web. The gradients can stretch and shrink to fill different shapes as opposed to being cropped. Additionally, the color stops can vary across the gradient giving the shape a brushed metallic look. They draw inspiration from the color field paintings of Mark Rothko and his balance of large areas of color. The vibrant and imaginative colors themselves were inspired by the work Hiyao Miyazaki the director of Studio Ghibli and master of Japanese animation.

Xtrusion 1
Figure 1

To produce more captivating and diverse works, "Xtrusion" employs the complementary scientific processes of analysis and synthesis on the flow-following algorithm. Analysis, derived from the Greek word "to loosen up," refers to breaking down algorithms into their simplest components in generative art. These components are then analyzed, improved, and expanded to uncover new artistic avenues. Synthesis, or "putting together," concludes the process.

Technical Innovations

Technical Details

The Flow Field

A flow field (also known as a force field or vector field) maps points in space to vectors, which are then interpreted as the velocity of particles tracing a path by following the vector's direction and magnitude. Flow fields have a long history in generative art, recently popularized by works such as Tyler Hobb's Fidenza. Most generative art utilizing flow fields only uses a limited subset based on Perlin noise. My analysis of flow fields dissects the algorithm into its essential components: the vector field, particle starting location, and path drawing, and investigates alternative directions of study for each aspect.

Technically speaking each vector in the flow field has both a magnitude and a direction. The magnitude tells us the speed of the particle and since we don't animate the particles in Xtrusion we can view the items in the vector field as directions or angles. As discussed above, the most commonly used flow field is perlin noise. There are many, many ways to generate flow fields: such as a myriad of noise functions and pure mathematical functions. The underlying field is a key component and has dramatic influence on the characteristics of the ultimate work of art. This is one of the key areas worth exploring to create new works. In Xtrusion I modify the flow field algorithm to include a convergence speed, which gives a particle the ability to blend it's existing direction with the new one. This has a dramatic effect on the curves that are generated by the field. Xtrusion has 5 differnt types of flow field each with several parameters that determine the direction vectors.

These are representative examples of each class of flow fields. Keep in mind that since each field has multiple parameters, the actual possible fields is in a real sense infinitely more varied.

Fbm
Fbm
Curl
Curled Simplex Noise
Sinusoid
Sinusoid
Magnet
Magnet
Gravity
Gravity

Fractional Brownian Motion

Fbm
Figure 2 - Fbm

Fbm is a method to add detail to a coherent noise function by layering noise of successively higher frequency and lower amplitude. The layers are called octaves the factor by which the frequency increases is called the lacunarity and the factor by which the amplitude decreases is known as persistence The underlying coherent noise we use is Simplex Noise. The higher the number of octaves choosen, the more jagged the paths of the resulting image will look. In Xtrusion the number of ocataves ranges between 1 and 6.

Curled Simplex Noise

Curled Simplex Noise
Figure 3 - Curled Simplex Noise

Curled Simplex Noise applies a transfomation to a single octave of simplex noise. It has the effect of forcing the divergence of the field to be zero. Like the movement of an incompressible fluid. In Xtrusion it typically results in spiralling type patterns.

Sinusoid

Sinusoid
Figure 3 - Sinusoid

The Sinusoid field is a deterministic periodic flow field. Each flow is periodic in both the horizontal and vertical direction with distinct frequencies. Additionally each direction is assigned a "power" that determines the direction that the flow follows. It is capable of producing highly variable swirling type paths.

Magnet

Magnet
Figure 4 - Magnet

The magnet field is generated by randomly placing 3 sinks on the canvas and particles are attracted to the closet sink. In combination with a variety of starting locations and convergence rates the magnet field generates a suprising array of results.

Gravity

Gravity
Figure 4 - Gravity

The Gravity field, like magnet has sinks placed on the canvas. But here the particles are forced to head towards orbiting the sinks.

Location

The starting point of each path can have a large impact on the tracjectory of each particle. In Xtrusion we have 5 distinct algorithms to generate the staring points for each path. Three with points distributed over the entire canvas and two in patterns.

Grid
Grid
Random
Random
Halton
Halton
Circle
Circle
Lissajous
Lissajous

Grid

Grid
Figure 5 - Grid

Grid is the simplest layout. The starting locations are placed at evenly spaced grid points on the canvas.

Random

Random
Figure 6 - Random

In Random coordinates are choosen for x and y from a uniform distribution on each axis. Simply selecting points this way does not distribute them evenly in 2d, they tend to cluster as can be seen in the image above. Clustering the of the location points produces interesting patterns, but we often want the starting points to have some space between them.

Halton

Halton
Figure 7 - Halton

To get less clustering and better distribute the particles on the canvas we use a type of "blue noise" or low discrepency sequence. The low discrepancy halton 2,3 sequence is used to select the coordinates of the starting locations. This has the effect of separating the paths better than Random.

Circle

Circle
Figure 8 - Circle

The first pattern based location algorithm is circles where the points are evenly placed around 3 concentric circles.

Lissajous

Finally in Lissajous the locations are placed along the path of a parametric lissajous curve.

Lissajous
Figure 9 - Lissajous

Drawing the Paths

This is where the extrusion in Xtrusion happens. One path is generated for each starting location according to the chosen vector field. Each point along every path is extruded in the vertical direction by drawing a thin straight line. For each path a color is choosen from the selcted color palette for the piece. The extrusion lines are drawn with a gradient from an almost white color to the color selected. Optionally, a dark bottom border or pure white border is added to the path. The length of the extrusion is choosen from among the following types:

Additionally for the last three, distance to center can be choosen to be, euclidean distance, horizontal distance or vertical distance.

Color Palettes

The color palettes needed to be specifically designed to work well with the way the gradient extrusion is drawn. In particular the colors need to be more saturated than usual. Each color palette is a combination of hand chosen colors with a custom algorithm appied to extend the palette by adding related colors. Below are the 12 palettes shown as gradients the way they might appear in the pieces. The last three are inspired by particular Miyazaki films.

Terra
Terra
Black and Blue
Black and Blue
Wine
Wine
Ocean
Ocean
Draught
Draught
Solar
Solar
Perfume
Perfume
Blood
Love
Grayscale
Grayscale
Porc Rosso
Porco Rosso
Spirited Away
Spirited Away
Totoro
Totoro

Other features of Xtrusion include 5 diffent ways to draw the gradients, spacing out the extrusion, 2 different backgrounf fields.