I have always been a big fan of Frei Otto. His work has been revolutionary on many levels but the most fascinating area for me are his early experiments. One of this experiments is the famous “optimized path system” where he used wet wool threads forming a network of minimal pathways. This technique works in 2D and in 3D and due to its self-organizing characteristics it was and still is heavily used for various form-finding experiments in many different areas. Quite interesting for obvious reasons in this regards is edge bundling which is used mainly in scientific visualization. Conceptually it is very similar to Otto´s wool threads experiments and is used for avoiding visual clutter by bundling together edges in large graphs. Out of interest and because I love visually appealing diagrams I tried to implement something like this in houdini.It´s a well researched area and so you can find various different solutions to the same problem but aber some digging I found the two papers which I finally implemented in Houdini:

C. Hurter, O. Ersoy, A. Telea: Graph Bundling by Kernel Density Estimation
D. Holten, J. Wijk: Force-Directed Edge Bundling for Graph Visualization


Both algorithms worked quite nicely and even if they are conceptually very different I got more or less similar result. Though, personally I prefer kernel density based bundling since I like the brilliant simplicity of the idea and overall it seemed to produce better results. At least in my test (what doesn´t mean anything, tbh.). Anyway, after all I implemented a third homegrown version which is somewhat a combination of the other two. Basically it is a spring based model which is guided by a density function. The advantage of this setup is that it is quite flexible and art-directable.

After rendering with Mantra and adding some grain, the bundled edges got a somewhat hand-drawn character.





14 thoughts on “EDGE BUNDLING

    1. I guess you mean “Graph Bundling by Kernel Density Estimation”, or is it the paper written by Danny Holten which you find hard to understand? Anyway, here is the link to the implementation of the former one. It’s an old Houdini 14 or 15 file. I tried to open it in Houdini 16 and everything seems to work. The file is an early prototype I’ve done before porting everything to the HDK. Let me know it it works, otherwise I could send you the version which is using inlinecpp but then you’ll need a working compiler …



      1. thanks a lot for the file provided!
        it raises a question tho. the simulation only seams to work on the XZ axis. the y axis seems to be ignored.
        i couldnt recreate the effect of your second image in the post(the cylindrical one).

        would you mind explaining?



      2. Hi Willy,
        the reason why it doesn’t work in 3D is simply because in the example file I’ve uploaded all the calculations are done on a flat grid. However, if you want to do 3D bundling you’ll have to use a volume/3d grid instead. This is easy to change since the general principle works exactly in the same as it does in 2D and Houdini provides everything you’ll need right out of the box.


  1. Love your beautiful diagrams~
    I have tried to click the Google drive link in previous post and it asked to get your permission. So, I submitted.
    I have tried again today. Unfortunately, the file is offline now.


  2. greatly inspiring once again. May we have the file previously available on your google drive being posted again please ? Many thanks for teaching some of us… Best regards vincent


  3. Super interesting ! would it possible to put again the hip file on a link ? (the one above is no more available) thank you very much !


  4. Very interesting post and the results you are getting here look really intriguing. I am also studying magnetic behaviours between wires at the moment and struggling a bit to achieve smooth movements. Unfortunately the file you share above is no longer available – any chance you could share it again?
    Thank you!


  5. Hi, Great job!
    by any chance, may I have the file as well… I get some result in Houdini I am not satisfied with. but yours looks amazing

    Much obliged,


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s