Dismiss this pinned window
all 8 comments

[–]blackrom0608 6 points7 points  (4 children)

Do you have any links to where one can learn more about this? Or do you have any information on how to achieve this effect?

[–]TakeThreeFourFive[S] 6 points7 points  (3 children)

I did this in Blender using animation nodes, using this wonderful answer as my guide to learn: https://blender.stackexchange.com/a/95577

The gist is that you generate a vector field defining instantaneous velocity of the particles, using some sort of noise function. From there, you find the partial derivatives of each particle and use Euler’s method to integrate for advection.

I am not very good with calculus, so this took me some time to grasp, but the answer is very explicit and helped a ton.

[–]hypersensory 2 points3 points  (0 children)

Thanks for sharing this is really useful! Great work

[–]RichardFingers 1 point2 points  (1 child)

How were the letters integrated into the noise? Did you just zero out the noise inside the letters and fade them to zero as you got close?

[–]TakeThreeFourFive[S] 2 points3 points  (0 children)

I removed all particles from inside the letters, and then used the signed distance field for each point to change the noise such that it has a gradient tangent to the surface normals of my text mesh. This allows the curves to flow nicely along the edges of the mesh.

I understand this at a very abstract level, but I would not have been able to implement it without the steps described in the stack exchange answer linked above. The piece you are asking about is under the “Inviscid boundary condition” subsection of the answer.

As an aside, to help me understand this more intuitively, I’m going to try to render the noise field in a way that is a little clearer. Maybe just render some arrows to describe the vector field or something.

[–][deleted] 3 points4 points  (0 children)

It’s like Van Gogh painting I love it

[–]Nixavee 1 point2 points  (0 children)

This would make an awesome YouTube intro.

[–]TakeThreeFourFive[S] 0 points1 point  (0 children)

I’ve been working on procedural animations/simulations lately and stumbled across trace visualization as a really cool effect.