Thanks to Brian Allred and Derek Johnston for code support.
I love when complexity emerges from simple rulesets. This is something that I often study in my own creative work, something that I could probably trace back to my first architecture studio where we were guided through a process of developing small components, something as simple as a few straws connected together with a single brad, and then repeating those resulting modules 100 fold to create full assemblies. The complex structures emerged from a simple ruleset.
Flow fields slot right in to this thought. The premise of a flow field is simple: populate a fixed grid with a random direction at each point. Pick a random point, move in the direction it says to a new point, connect the dots, and repeat until either a set step limit is reached or you move outside the bounds of your grid.
What results is the visualization of those initial directions. Something similar to leaves floating in the breeze, or currents flowing through a river. The lines are just the physical representation of the underlying flow.
The below examples were made with Processing.