My generative work “Broken Flows” is my deep dive into flow fields and even more so paint brushes and color palette generators. Very excited about how this one turned out and the tech I am developing for future pieces.
More Info
I have dabbled with some flow fields on before and found them an interesting subject for generative art. In June I posted a few tiny programs on dwitter, here is my favorite. The special thing about this flow field is that it uses the tiny equation sin(x^y) that make artifacts from xor function visible.
F=_=>((1-X%1)*S(X^Y)+X%1*S(X+1^Y))*30
for(k=2e3,B=t*9,A=B**3%k;k--;x.fillRect(A+=C(b=F(Y=B/99)*(1-Y%1)+Y%1*F(Y++)),B+=S(b),t%=4,t))X=A/99
For Broken Flows I used this as a starting point and played around with it. My goal was to both explore the variety possible with small changes to the code and to make it look as though it was painted by hand.
To add depth and character I developed a brush stroke system and a color palette picker. It picks the number of colors up to 5, choses a pop color (bright and near full saturation) and builds the rest of the pallet around that. The brush system uses up to 50 smaller lines with slight variations to create a single brush.
There are also many different options that can affect how the piece looks. For example if pastel mode is active the paint is watered down to cause more blending by setting the brush transparency to 10%. Loopy mode causes the angle to accumulate in the flow field which causes interesting spiral patterns. Here’s a piece with both of those enabled.
I also focused on contrast between light and dark areas, often just working in grayscale. The grayscale mode doesn’t just remove saturation but creates a special palette to ensure contrast and pop. I will leave you with one of my favorite grayscales with the triangular field mode causing hard angular strokes, thanks for reading!
Leave A Comment