Skip to Content

experiments with flow fields

2022

With thanks to Brian Allred and Derek Johnston for their invaluable code support.

I’ve long been fascinated by the idea that intricate, elegant complexity can emerge from simple rule-based systems. It’s a thread that runs through much of my creative practice and one I can trace back to my very first architecture studio. Back then, we were asked to construct spatial assemblies from the most basic elements: a few drinking straws connected with a single brad. By repeating and aggregating those tiny modules, emergent forms began to take shape. Complexity wasn’t designed, it grew out of small module and a simple rule set for how to multiply it.

Flow fields fit beautifully into this same conceptual framework.

At its core, a flow field is a simple idea: imagine a fixed grid of points, where each point holds a directional vector, a randomized arrow pointing somewhere. To generate a path, you begin at any point and move in the direction given, marking your path along the way. And then you repeat this process, stepping through the grid either until you hit a predefined limit or exit the bounds of the grid. The results are lines that appear organic like leaves drifting in breeze or water flowing in a river.

What you’re seeing is a visualization of behavior. The lines, curves, swirls, and waves are the visible trace of an invisible force. The emergent beauty lies not in the complexity of the code, but in the accumulated effect of simple, repeated decisions.

All of the experiments here were created using Processing, a tool that allows for intuitive exploration of generative systems, and one code base. These experiments are part of an ongoing investigation into pattern, emergence, and the aesthetics of algorithmic control.