XaiJu
entagma
entagma

patreon


Vellum 101 - Force Directed Graph

Force directed graphs are a popular way of visualizing the relationships within a given set of data. While the term might sound intimidating, the idea behind it is quite straightforward: For each connection between data points just span a rubber band between the points and let the resulting system of springs converge to a rest position. The resulting arrangement is a very intuitive visualization of the data's relationships.


In this tutorial we'll build a simple Vellum based force directed graph using data from openflights.org

Vellum 101 - Force Directed Graph

Comments

Hi Onder, sure, just upload/send us your file and we'll have a look at it. No guarantees though :) Cheers, Mo

Entagma

Help Please , i made everything until your video time 07:46 (add popdrag + popinteract inside of vellum solver) but my animation shapes gonna smaller smaller , how can i solve this problem. i chaecked every steps again again from your file and your video but end of the day i still got problem. if you want i can send my file to you and you can look and find my mistake(s).

Onder Kulekci

Hi Pierre, sometimes a .hip says more than dozens of words, so here's a setup in which I grouped data points and then check if their constraints cross over into another group to set up different constraint properties: https://www.entagma.com/downloads/force_dir_graph_03.hip Cheers, Mo

Entagma

I have a complex graph with a number of different groups which all tend to get mixed together - is there any way I can have the groups repel nodes from other groups, or weaken the spring only if it is going from one group to another? Thanks :)

Pierre Brassau

also, lol at polyline not polywire :D

jeremy jozwik

oh hey! this reminds me, when referencing the table import into the scatter node. way back in the heightfields in redshift video you used the python shell to get the path for nodes and mentioned if anyone knows a better way... you can just ctrl + C and node and paste it into a value field and houdini will automagically write out the explicit reference path!

jeremy jozwik

Hi Jeroen, one idea would be to create three attribs, one storing # of flights in the morning, another storing # of flights in the evening, then just interpolate between those values using lerp() and store the result in a third attrib. :) Cheers, Mo

Entagma

This is great! I was playing around with a multiplier on the rest length to push/pull the points based on a primitive attribute (e.g. number of flights per day). I got it working for a single primitive attribute driving the rest length of each flight connection, but how would you hook something like that up to animate between multiple primitive attributes? e.g. to go from an attribute with number of flights in the morning to one with number of flights in the evening?

Jeroen Claus

wau ! this one is super interesting. thank you Mo.

Jindrich_Novak

Love this! Thanks again for the inspiring videos. I recently started learning Houdini while exploring ways to visualize computer vision data that I gather from a normal phone (using ARCore and other Google cloud services). <a href="http://www.lucaprasso.com/portfolio/thespacewithin/" rel="nofollow noopener" target="_blank">http://www.lucaprasso.com/portfolio/thespacewithin/</a> I wrote a recorder app that I use to collect data I find around me, then I sit in front of Houdini and I explore patterns and procedural content driven by that data. More technical details here: <a href="http://www.lucaprasso.com/thespacewithin-behindthescenes" rel="nofollow noopener" target="_blank">http://www.lucaprasso.com/thespacewithin-behindthescenes</a>

Luca Prasso


More Creators