Could be “Ellipseflow” is click-bait: Such infâme was not among my aims; just a name I pulled up — without much thought on how it would be read. But there are no dynamics in play here, flow or otherwise. Just ellipses turned to orient themselves in the direction of the local gradient, that from from an orientation field conjured from the aether by -rbf
, working from a mere handful of random two-channel points: that conjure, of course, is in keeping with the aims of the tutorial.
That said, dynamics are not far to be found: at least playful dynamics, the kind not keyed to any physical phenomena like fluid simulations. Two timing loops suggest themselves, each operating at different scales but otherwise grounded on numbers drawn from randomness.
- Small-scale: Inner loop. On the tick, markers take a pixel-and-a-fragment step at their current orientation and then resample the orientation field at the new location. Redraw the ellipse at the new orientation. Next tick. And so on. And so forth… This gives rise to a scurry of ellipses barreling over the orientation field.
- Large-scale: After some tens-of-ticks, the outer loop wakes up for a step and subjects the handful of keypoints that
-rbf
consumes to a Brownian motion kick.-rbf
updates the orientation field which shifts slightly — or maybe, in some places, not so slightly. The thin plate spline could snap from time-to-time. In any case, the orientation field upon which the markers are grounded exhibits a local earthquake, usually minor — sometimes major. Drop back into the inner loop and the markers do their reorientation dance on somewhat altered ground.
All the field generation and rendering bits are in place. Need vectors to track the markers and the random samples underlying the orientation field. Add those structures, the two timing loops and we have, methinks, a Beginner’s Cookbook topic of some worth, duly registered here and to be completed when I get a round tuit. The only ones I’ve been finding of late are square, and have fur all over them…