ORI Project Logo

ORI is a generative art project that combines themes that have deeply inspired my artistic pursuits, so in a way, it's a biography of my evolution in art.

Growing up, my family would take the bus up to New York City and spend the day wandering around Manhattan. The highlight for me was always Chinatown because I would load up on Origami paper. The packs included instructions for making all sorts of interesting models, including animals, plants, and geometric shapes. I would study these for hours, eventually getting lost in the complex diagrams at the back of the instructions. When I got overwhelmed by the challenging directions, I realized that I could make freeform folds and alter the existing designs to open up new possibilities.

In my hometown of Baltimore City, graffiti was all around me, almost like static noise during my everyday life. I developed a profound respect for it as an art form because of its colorful flowing nature and combination of specific shapes and styles. It being illegal and dangerous was icing on the cake. While you aren't going to catch me scaling some corporate headquarters at 4AM to bomb the top-floor windows, I often wander off the beaten path to look at graffiti as inspiration.

Folding

Finding new mathematical strategies that produce generative artworks is tricky. Artists have utilized flow fields, truchet tiles, and Voronoi diagrams to create vast arrays of unique artwork. Beyond that, lesser-known and undiscovered techniques may be found in generative works. Ori capitalizes on a system that I believe is new while also leaning on many known methods to generate artwork.

The core algorithm performs geometric folding on polygons, manipulating their shape by a series of bisecting fold lines. These fold lines will rotate the polygon's vertices to simulate a fold. In some instances, the geometry is sheered in a process that loosely follows Kirigami, the act of folding and cutting paper.

Painting

Paint simulations occupy the vast majority of the rendering process. Each background and foreground polygon is shaded with a layer of spray paint that accumulates millions of individual particles. Those particles can also drip downward, mimicking throws.

I spent hours refining the process that sprays paint outward from polygons to ensure it's consistent across various shapes and sizes.

Final renders may have paint drips based on their drips attribute. I have incorporated an animation mode on every piece that progressively drips unlimited paint on the canvas and transforms the image. I recommend letting it sit for long periods of time to get unusual results.

Simulating the paint

Creating irregular-but consistent spray paint artifacts was a unique mathematical challenge that required equal distribution regardless of polygon complexity. Naive implementations that used the polygon area, its circumference, and its number of edges led to weird results. My process involved implementing different algorithms only to have them fail, throwing them away, and rewriting them. Eventually, I found looking at the edge distance of polygons was the best way to distribute splatters.

Color choices

Photo by MATT MEISENHEIMER

Color palettes are curated based on a handful of underlying themes, including street art, digital art, and organic landscapes. I wanted palettes like Zest to feel digital while natural compositions inspire others like Montana.

Each palette is probabilistically balanced, so colors are not equally distributed. I tweaked each swatch's grain qualities and gradients to form cohesive spraypainted fills.

Palettes

AMUSED

Color spectrum of Amused Ori - In the amused color palette.

briss

Color spectrum of briss Ori - In the briss color palette.

cloak

Color spectrum of cloak Ori - In the cloak color palette.

cloud

Color spectrum of cloud Ori - In the cloud color palette.

dove

Color spectrum of dove Ori - In the dove color palette.

exodus

Color spectrum of exodus Ori - In the exodus color palette.

feint

Color spectrum of feint Ori - In the feint color palette.

gum

Color spectrum of gum Ori - In the gum color palette.

method

Color spectrum of method Ori - In the method color palette.

screentime

Color spectrum of screentime Ori - In the screentime color palette.

skull

Color spectrum of skull Ori - In the skull color palette.

zest

Color spectrum of zest Ori - In the zest color palette.

Color Mutations

colorMOD: Exclusive
colorMOD: NONE

Exclusive Color Palettes

There's a slight chance a mint may have a reduced color palette derived from a more extensive palette. In this case, there's one primary fill color on geometry that I carefully curated from the larger list. I intended to let the linework, patterns, and background play a more prominent role in the composition in these examples.

No NULL COLORS
Maximum NULL COLORS

Null Colors

Under the spray paint, shapes have pattern work applied to them. Dots, lines, and other patterns are chosen for each mint. Occasionally the spray paint fill is omitted, and "null colors" are presented, showing the bare pattern work.

Inspiration

Paper Folding

Ori is an expression of some of the artistic styles that resonate with me: Origami and street art. I enjoy the craft of folding paper because it's tactile and mathematical; you crease and bend the paper in geometric shapes to turn nothing into something. A little imagination can be required to fully appreciate the polygonal representation of animals, flowers, and objects formed from the paper. Even the Yoshizawa-Randlett diagrams that origami artists create are abstractly represented in Ori as dashed and dotted lines that loosely show fold lines.

A perfect folding algorithm was not my goal because I saw that it would limit my results to ever-shrinking geometries, much like crumpling paper into a ball. Resources do exist to mimic natural paper dynamics. Instead, I decided early on to obey only some of the rules of paper folding and break others to make fascinating results. At this point, my possibilities opened up, and I began to see aesthetically pleasing forms arise.

Floater spotted in Winnoski VT.

Graffiti

Graffiti reminds me of walking off the beaten path of some of my favorite cities, including Baltimore and Montreal. The interesting things happen outside of the cookie-cutter tourist areas. Graffiti is this fascinating mix of the artwork and the act.

Artists will scale buildings, rappel upside down, or go into perilous situations to achieve notoriety. There's no time to be 100% accurate when you're nervously watching for headlights. That audacity translates into a lasting impression on the resulting painting. I aimed to simulate this fluidity in Ori to break down the perfection that algorithms achieve.

RIP SUPPOSE - James Merrill (2016)

Digital Art

I was initially introduced to Abstract digital art in the mid-2000s, an art movement in which I had to participate. I grew my style and techniques with digital painting and 3D software while creating hundreds of artworks during the next ten years. I participated alongside world-class digital artists, including Justin Maller, Kervin Brisseaux, Rik Oostenbroek, and Finnian Macmanus, in groups like Depthcore and EvokeOne.

Many parallels exist between the concepts expressed in ORI and those found in my Digital Art Portfolio.

Technical Process

Creating a long-form generative art project can have contradictory requirements. The project must have diversity, but it should also have well-defined boundaries to achieve consistent quality. Any bias towards either side leads to a subtraction of the overall delivery. One strategy to equally apply diversity is layering transformational steps. This helps add an exponential amount of variations to the overall project. For example, Ori starts with various primitive shapes, and these are then run through a folding transformation, and finally, a distortion effect is applied.

Custom made curation utility

Visualizing hundreds of different strategic combinations and identifying high and low-quality outliers is a unique challenge. For one, the amount of visual data is overwhelming for one person to parse. Given that the goal aesthetic is not identifiable via an algorithm or process, it becomes the artist's task to curate the outputs manually. Once outliers are flagged, an even more difficult challenge arises: tweaking the algorithm to eliminate the bad results while retaining the good ones. Once a change is implemented, the process of curation starts again. For Ori, I reviewed between 2500-5000 images to achieve my goals.

To curate the collection, I wrote a utility to save, rate, and review individual outputs. Each output takes approximately 3-6 seconds to render, so batch rendering 1000 images could take around an hour and a half.

Layering transformations

One way of creating high levels of variability in generative art is to layer manipulations and randomizations on top of each other.

In ORI, I started with a random geometry generator that I mapped to the geometry attribute. Basic shapes like rectangles and circles are composed with a balance of randomness and thoughtfulness. These are akin to the paper that will be folded.

The bend algorithm has various ways of functioning, which I defined in the strategy attribute. A Strategy establishes the number, magnitude, direction, length, and position of a collection of bend lines. Think of these as the Origami directions. Patterns will appear if you compare a few mints with the same strategy.

Complexifying geometry is my oddly named process of introducing more vertices to geometry to smooth out its results. This can change the output significantly and will complement the bending.

Reversions are a transformation process that grows and shrinks part of the geometry. They started as a glitch. But as programmers have been doing since the dawn of time, I turned it into a feature. Reversions can be combined with complexified geometry to create liquidy smooth results.

Together, the geometry, the strategy, the complexity, and the presence of reversions make highly variable results subject to emergent outcomes.

Progression

Ori began as a concept in November 2021, and I worked on it regularly up until its release in November 2022. Consisting of 175 commits and 7000 unminified lines of code, completing the project was a tremendous labor of love. What follows is a glimpse of the snapshots along the way.

Shouts

(in no particular order)