With this article, I want to share my journey of creating the Orbitals generative art collection. Over the course of three months, I generated and looked at well over 10,000+ renderings just so I could narrow down and hone the spectrum of variations to exactly what I wanted this collection to be.
I hope that this article will convey what went into the Orbitals project and the paths I’ve explored. And among those, the ones I decided to follow and the ones I decided not to.
This article is not the collection guide: I will write a guide soon, and will link it here when it’s ready.
How It All Started
The starting point of Orbitals was a doodle on a piece of paper that I’m showing below. Sort of a planisphere with a grid of radial lines, and circles drawn at some of the grid intersections. I had this idea while I was developing background assets for another project that I was working on a the time.
Then I thought to myself, “What if I pushed this idea just on its own? Where would that take me?” So I started creating very simple renderings with radial lines that would alternate colors, sometimes with a gradient.
The next thing I tried was to add more color, and try with showing circles closer together so the patterns would be busier and show more colors.
Those very first trials looked like what you see below.
In Search Of Texture
I decided to experiment with adding a texture to every circle, something that is grainy and feels almost analog. I ended up using easing functions as a way to alter the random distribution of the grains into something more organized.
Then of course, I started seeing these patterns everywhere I went, from film grain in movies, all the way to gradients of coloring in floor tiles. I built up a little mood board to try and direct that part of my creative process. Here are some examples of what inspired me.
After that, I also adjusted the size of the patterns, and tried patterns of radial lines coming from non-concentric circles to add a bit more randomness in the patterns. Below are the results I could generate at the time.
Emergence
It’s at that moment that, while I was experimenting with different parameters, a pattern that I did not foresee started emerging in some of the outputs.
Below are two of the first outputs showing this pattern. On the left image it appears in the bottom half, and on the right image, it is in the top half.
The interesting thing about this pattern is that it is due to the combination of two bugs coming together: the pattern would not have been possible if only one bug had been present, or if they didn’t happen on the same area of the canvas. Once I saw this pattern, I knew the exploration of this algorithm was worth pursuing, and it’s at that moment that I decided I would make a collection out of it. As you probably have guessed by now, it’s the pattern which is now at the heart of the Orbitals collection.
The Fork In The Road: Consistency
It all feels simple in hindsight, but while I was creating the collection, nothing was so simple. Just after I could narrow down the patterns I mentioned just above, came a moment of doubt because I had to decide what I wanted this collection to be and not be, by deciding what to include and what not to include.
I narrowed down the algorithm to three main major styles of variation which you can see in the gallery below, with one style in each row.
I had to balance out consistency with variation. I believe that consistency is an important criteria for any long-form generative collection, and one option was to restrict the algorithm to reduce the spectrum of output diversity. Another option was to fork the algorithm into two collections by working each style further deep into their own sub-algorithms.
In the end, I went with the first option. Although the major styles above could feel like they could be consistent and coming from the same collection, I decided to make a strong statement by restricting the algorithm to be only the style in the middle row.
I do believe that other parts of the algorithm at that stage could still be worth exploring, in particular some of the top row, but I decided that if I did explore them, it would be as part of a separate collection. As for the bottom row, the overlay of lines were too dominant and created outputs that felt unbalanced to me, reason why I decided not to include them in the collection.
So Orbitals would be a collection of outputs mainly made of two colors each, with abstract patterns of circles, lines, and textures.
I do have a foundational idea that I was using as a way to guide the creative process and that was at the heart of the project—by this I mean the “why” behind the project—but I’m keeping that story for the collection guide!
The Paths Unfollowed
I experimented more with the outputs of the “plain color” style, and below are some of the results I ended up with. This further down confirmed my decision of restricting the algorithm to the major styles I shown above.
I’m sharing the outputs below to show you that often when you look at a generative art collection, you’re looking only at what the artist selected and self-curated, and you are not seeing the hundreds of other possibilities that could have been, but never will be, because of decisions made by the artist. It’s part of the beauty of the process.
Exploring Further Down
At that stage, I knew the style I was going for, and I needed to explore what other variations might add meaning and emotions to the outputs.
I experimented with mainly three effects: a glow effect, a more regular texture, and playing with the coarseness of the grain.
In the end, I ended up keeping only two of them: the glow effect and the coarseness of the grain. I didn’t feel that the regular texture was adding anything aesthetically valuable, so I discarded this path.
After discussing with other artists and collectors, I also decided to include another effect in the collection, one that would show the origin of the circles forming the patterns.
A few particular outputs that represent this well are the ones below.
I did further exploration with the intensity of the patterns by trying out with a single pattern of concentric shaded circles versus two, three, or four patterns. I also tried with only one set of plain colors circles versus two, and so on.
Those patterns of concentric circles are what I came to call “orbits” in this algorithm, hence the collection name of “Orbitals.”
In order to help myself with finding the right interval of values for all the parameters of this algorithm, I created a little scaffolding library that shows the parameters as UI components on the right side of outputs — as a series of drop-down lists and sliders — so that I could perform live updates on renderings without having to update the code and reload.
After trying out a lot of different combinations for all the parameters, I was able to restrict all those parameters to intervals of values that would systematically generate well-balanced outputs with only a few dominant compositional elements, which is what I was after.
At that stage, the feel of the collection was pretty much settled, as shown in the examples below.
Creating The Color Palette
For the first outputs, I used color palettes that I copy-pasted from another project that I was working on at the time, just to get started and speed things up. Those palettes had an average of five colors, most of which were more of the dull and faded kind. Given the style I was aiming for, it became clear that sticking to outputs with only two colors would create better effects, and it would also be more aligned with the heart of the project.
In addition, I decided to move away from the faded colors and instead, use very flashy colors that would either vibrate or show strong contrast when put next to each other. To achieve that, I simply opened a color picker in HSB mode, and I spent a few hours trying out different colors next to each other until I reached the impressions I wanted to create.
In the end, I was able to create a palette of 10 colors, and I restricted the algorithm to use only two colors at a time, which means a total of C(10,2) = 45 possible pairs. It’s a very simple and elegant solution to creating a large spectrum of variability all in itself.
Below are those colors paired together. This gallery does not include the black or the white/cream, as I decided to include those colors only later on.
Narrowing Down The Parameters
The algorithm had 30+ parameters at the peak of my exploration process. I had to narrow it down to as few features as possible that would still convey the meaning and the visual behind the algorithm.
I achieved that by combining parameters together, hiding parameters that were not too visually significant, and eventually I was able to reduce those 30+ parameters into only 6 visible features which are the following:
- First Color (among 10)
- Second Color (among 10, except First Color)
- Intensity (from 1 to 12, with 1 being the lowest)
- Shadow Size (small, medium, large)
- Glow (enabled/disabled)
- Lense Flare (enabled/disabled)
I won’t go into the details of what those features mean, I will keep that for the collection guide that I will soon release. Interestingly, the “intensity” feature is actually a combination of three different parameters which I was able to package.
Below are some of the outputs of the Orbitals collection as it’s almost finalized and I’m close to releasing it.
Post Orbitals
Now that Orbitals is about to be completed, I am going to take a bit of rest to replendish my creative reserves, and soon I’ll start something new. Orbitals was a project that I decided to pick up as I was taking a creative break from another project, Propaganda, so I might go back to completing that one.
One of the core tenets of Orbital was to create a collection with circles, and no other shape. Something else I’d like to do is explore another basic restriction, and try something with lines, and only lines. Or I might go back to that “fork in the road” that I shared at the start of this article, as I’m interested in diving further into the outputs that looked like strings of disconnected colors, as showed in this output below.
There’s one way for you to know: keep an eye on my Medium and Twitter for what I’m up to next. The links are below, cheers!
https://twitter.com/MrMallory_