Earlier quoted context omitted.
Very nice article, thanks for posting! If you don't know about it already, Gorilla Sun has a newsletter that this would be perfect for [0]. [0] https://www.gorillasun.de/tag/newsletter/
My all-seeing eye sees your comment XD definitely including this post in the newsletter!
What I've learned about flow fields so far
41–47 of 47 posts
Re: What I've learned about flow fields so far
#42As a generative artist, I experimented with flow fields for a while but found them rather limited, especially given how many people use them. It's hard to distinguish yourself if you do what everyone else is doing.
Re: What I've learned about flow fields so far
#43A lot of the examples here feel very simar to Tyler Hobbs work... https://tylerxhobbs.com/essays/2020/flow-fields
Yes, I reference that as being pretty much the seminal work on the topic within generative art in the beginning of the article (and link to the same article even!) What I hoped to add to the topic was making it even more accessible for people who maybe haven't even heard of generative art yet, as well as provide some interactive illustrations to help showcase their behaviors. Hopefully that doesn't come across as me…
Re: What I've learned about flow fields so far
#44Earlier quoted context omitted.
Yes, I reference that as being pretty much the seminal work on the topic within generative art in the beginning of the article (and link to the same article even!) What I hoped to add to the topic was making it even more accessible for people who maybe haven't even heard of generative art yet, as well as provide some interactive illustrations to help showcase their behaviors. Hopefully that doesn't come across as me…
Ah i'm very sorry. I ctrl+f'd his name, but should obviously have just read a bit more carefully.
Re: What I've learned about flow fields so far
#45It was a fun little hack, I didn't realize this is a thing. I was just messing around with an idea of pushing particles through a cube of tri-linearly interpolated direction vectors, without simulating any actual physics like mass/friction/fluids or anything like that.
Something which surprised me was during development I just populated the cube of vectors with randomized vectors, fully expecting I'd have to do something more intentional and clever before it was interesting to watch. But the emergent structure of the flow paths even with the pseudo-random vectors was surprisingly interesting and I just left it at that, with the addition of a second randomized field the direction vectors would be interpolated between in a ping-pong manner. When one field is dominant, it re-randomized the other, resulting in a continuously-looking evolving field...
Tinkering with graphics hacks is loads of fun.
[0] https://github.com/vcaputo/rototiller/blob/master/src/module...
Re: What I've learned about flow fields so far
#46Earlier quoted context omitted.
Been a while since I dabbled with fluid physics, but I was thinking how about ensuring the input noise field was divergence free[2]? [1]: https://en.wikipedia.org/wiki/Projection_method_(fluid_dynam...
Yes! A friend and I had the same thought a while back and then remembered the curl operator from vector calculus is divergence free, so you can take the curl of any 3d field to get a divergence free result, and then use a 2d slice of that if you want. It does look like fluid flow when you do that. I’ve even used this trick in CG films back when I worked at DreamWorks. We wrote a bit about this divergence free noise f…
I get that a perfectly divergence-free field might not be what the artist is after, but if you go the projection route where you "subtract out the divergence" so to speak, I was thinking you could just do a scaled subtraction to not take all of it out. Alternatively perhaps it could be artistically interesting to do a non-linear scaling.
Anyway, seems like a fun rabbit hole.
Re: What I've learned about flow fields so far
#47For mine, I make fields by superimposing a bunch of harmonic functions. By playing with different periods, phases, etc. you can get some cool patterns that look irregular and interesting, though I think they have a different feel from some of these noise-based examples.
I also make some fields by using sources and sinks: a collection of points that push out or in. You don't need that many to make an interesting field.
For collision detection I use the trick @danbruc mentioned in another comment: I draw to an offscreen canvas, and just check pixel color to see if a trace is already there. It's probably very costly in terms of memory as a data structure, but it's very convenient :) https://www.instagram.com/p/CMi4QcXn6_y/?img_index=1
For me the interest has come in coloring the lines — by deferring rendering until after the path has been plotted, you can color different traces according to how long they are, how much they curve or change, etc. which can reveal interesting bits about the flow structure. https://www.instagram.com/p/CMvqZjkHYpV/?img_index=1
Thanks for this great writeup @tehrash, the explanations and examples are great!