FOLRADURA means fur in Old Occitan, a Romance language spoken in the south of France. This project explores producing organic patterns using a cocktail of maths, physics, noise, randomness...
FOLRADURA is a long-form generative series released on 256ART in July 9, 2022.
Thanks to all the people who helped me on this project, especially, Julien Labat, Rich Poole, Nudoru and Matthieu Segret.
Introduction
FOLRADURA is based on a main concept: local modifiers. A modifier applies a local effect to a grid of hundred of thousands of points. What you see is the path of the points.
Each edition plays with 1 or 2 types of modifiers. They can be positioned in many different ways, sometimes randomly, sometimes in a grid. Each one can produce very different effects according to their type (squares, spirals, lines, waves...) and configuration.
Each point is influenced by all the modifiers. All this complexity create a very organic aspect and so many details.
Background and Early Development
As always, I started with a concept in mind and my traditional ugly sketch.
Here is the long thread where I've shared in real time all the steps/fails/brainstorming I had for this project:
So, I started coding using p5.js. My first goal was to draw a grid of points and move them using local modifiers.
I implemented some very simple rules for the modifiers. To test, I had placed one on each side and one in the center so that it is quite homogeneous and symmetrical. Here are some of my first tries:
At the time, it was probably too similar to my Murmurations series. Then Nudoru suggested the idea of drawing lines instead of dots. So I tried to draw a line between the original and final position of each point.
I found the results probably too symmetrical but very interesting. I tuned the algorithm and added some randomness (Gaussian distribution) to the point positions and here we go, the project was starting to look the way you know it! Randomness is everything here.
Then, I had to tune everything and to explore modifiers, modifier layouts, color palettes...
From algorithm to art
Local modifiers
Local modifiers are one of the main parts of this project. As a reminder, a local modifier has got a position, and it applies a rule that moves the points around it. The closer a point is, the more effect the rule has.
Here some example of the same outputs (same hash, same modifier layout...) with only one change: the modifier type.
Some use Perlin noise, some use modulo or sine... they can use different parameters like the heading (angle) of the vector or its length, the coordinates of the points, and some random values shared across the modifiers.
So, a same modifier type can have very different effect according to the random values it has. For example, the angle used by the Angle modifier can change.
More over, modifiers can also be mixed. Here is the same output as before with some Angle (green circle) and Flow (red square) modifiers.
Modifier Layouts
An other important part of this project is modifier layout. Indeed the position of the modifiers can change a lot the output. In Folradura they are 3 types of layouts:
- Random
- Grid
- Intergrid
They also have parameters. For example:
- "Random-5" means that there are 5 randomly arranged modifiers
- "Grid-3-3" means that the modifiers are arranged on a 3 by 3 grid
- "Intergrid-4-2 " means that the modifiers are placed in the intervals of a 4 by 2 grid
Here is the same outputs with different layout with Angle (square) and Spiral (circle) modifiers:
As you can see, the modifiers are not exactly on the grid. They are placed more or less randomly (sometime exactly) on the grid according to the editions.
Moreover, as you can see, modifier types are randomly distributed on the grid. But they are different strategies:
- Random: modifier types are randomly distributed
- Alternate: the first modifier is of the first type, the second of the second type, the third of the first...
- Columns: one type per column
- Lines: one type per line
Margins, Divisions and Layouts
In Folradura margin size are random. They can be Small, Medium, Large or None.
Moreover, the piece can have horizontal or vertical subdivisions. And yes, the division margins between part are also random :)
Divisions and grid modifiers layouts can create very interesting pattern
In Folradura, they are also 2 layouts Rectangle and Circle (very rare).
Colors
Colors are the last pillar of this work. I'm known to use all the time the same palette. But this time, I wanted to bring more variety. So Folradura contains 17 different palettes. I let you discover them on the project.
But that's not all, there are also different settings and strategies to define the color of a vector.
Basically, the color of a vector depends on its angle. For each angle there is a color in the palette. But there are strategies that also take into account the position of the segment, for example.
Also, there is a parameter "colorAmplitude" which defines which part of the palette will be used. This is why some editions contain only 2-3 colors from a palette that contains many more.
Randomness
Randomness is key for the organic aspect. In the nature nothing is "perfect". And it is probably in the imperfection that the aesthetic is coming out.
So there is randomness everywhere: point positions, modifier positions, modifiers parameters, ...
The more random I added, the more natural and organic the project seemed.
Pseudo-code
Now you know every important parts of the project, here is a summary of the algorithm in pseudo-code:
- setup features
- create modifiers
- for each possible point
- if it's in the margin, do nothing and go to next one
- if it's in a division margin, do nothing and go to next one
- for each modifier
- calculate the position offset
- sum the position offsets and apply it to the point
- calculate the color and the thickness
- draw the path between original and final position of the point with the correct color and thickness
- draw a small dot at the final position
- ✨✨✨
I would like to end this article by thanking once again all the people who helped and encouraged me in this project. Thanks also to the 256Art platform for offering me this chance to publish my first long-form on the Ethereum blockchain.