algorithmic modeling for Rhino

Hi there,


First of all I should thank Daniel Piker and Dave Stasuik who originally developed this definition along with my tutor Jason Marks who cleared it up.

So I'm looking at combining 3D printing and algorithmic design for furniture production. Ideally I would like to be able to import a network of curves into this definition to automate the node creation process. Unfortunately as it stand it will only work for one of them.

My question is, how can I present a list of the connection points & vectors from a network of curves for this to work?

Below you can find the definition along with a few pictures of the concept and development. The white parts were modeled in Solidworks and printed on my Ultimaker 2.

If you're interested in following this project I'll be posting regular updates on my twitter: @pencil_stroke

Thanks in advance,


Views: 22134


Replies to This Discussion

nice work... i got lost in it and took longer than i thought to figure out how to apply it to multiple node generation but finally i got it :) grasshopper makes me happy. I checked out your site and its great to see some foundry and machining combined with the algorithmic approach. looking forward to seeing where you take this. Ethan


Ethan, thank you very much for taking the time to solve this!

It is indeed very close, there's just two minimal problems that need to be looked at.

The first one being that the mesh seems a little broken when baked.

Secondly the mesh needs to be pulled towards the center point when all branches are facing the same direction:

Any ideas?

Thanks again.

After some tweaking around it seems like it could work.

Thanks :)

wow this looks really nice! Can u share the evolved definition with me? I'm curious to see how you solved some of the lingering issues.  Really glad I could help. ethan

The next step might be to incorporate some karamba analysis and vary the thickness of the tubes according to structural optimization, or perhaps keep the tubes consistent and use galapagos to find the best configuration for the tubes. Also to layout the tube lengths into a cut list for fabrication. Id like to help with that if your interested in further collaboration. lets chat. 

Thanks! Unfortunately I haven't changed the definition yet as the mesh issues are still a little beyond my understanding but I've got a meeting with Jason tomorrow who I'm hoping can clear a few things out. I'll share as soon as I've corrected these.

Incorporating Karamba to do what you described is certainly of interest. I'll study the definition you posted below to see if I can apply it to some structures.

I would love to collaborate, any further help or advice is hugely appreciated. Do you have an email I can contact you on?

Here's two more pictures, including a quick 3D printed prototype of a Node:

Hi Charles,

I'm working in something similar. Maybe I can help you with this definition that works with every network of curves and generates joint connections in each intersection. You need Kangaroo, exoskeleton, topologizer and weavebird installed.


Andrea. nice solution . much simpler!

Charles- I threw together a little karamba model to show you how you might use structural analysis and galapagos to optimize the network of curves that support your furniture. in this case I also set galapagos to minimize the length of the tubes, the number of tubes and minimize the deflection. check it out and enjoy. Ethan


Hi Andrea,

Thanks for sharing this, judging by your pictures this would be ideal.

Unfortunately it seems Weaverbird's mesh edges is generating unwanted lines causing the the exoskeleton to fail, any ideas?

wow, that is a great definition!  I also had done a similar project and, and if I had to to do it again, (which I am considering....), I would add a few items.

1- for irregular shaped geometry, (varying "tube lengths), I would add an end stop into the joint.

2 - If I was sending it out to a 3d printing vendor again, (shapeways, etc..), I would add some type of identifier to the joint, (so that it could be packaged/sorted properly).  Perhaps something like this that could be easily snipped off.

3 - Lastly, I would try some type of combination "tube" assembly, maybe make the printed joints a certain thickness, connect with dowels, (as show below), but have some type of "sleeve" that fit over the dowels and butted up against the ends of the joints.

here is shot of the first project.  Wish I had seen your definition then!

Hi Andrea, I try to use your definition, but I've some problem about the inputs.

I'm a little bit new on GH, and I'm not sure about how to insert the input values. 

ty in advance.


Hey all,

These definitions are great! Thanks for sharing.

I'm working on a similar personal project, but I'm trying to create a flat end to the joints rather than a curved end. I also wanted to see if I could precisely control the interior dimension of the sockets (or whatever you want to call them).

I saw in another post that Jacek Jaskólski suggested using the t-splines plugin, so I gave that a try as well.

The T Splines plugin can be found here ( I think there is a more updated version, but I only have Rhino 5 32 bit and a 32 bit T splines copy, so I'm kinda stuck with this one.

Anyways, I attached the definition below along with a screencap. It is built on Charles' initial definition.

In the future, I would like to develop different/better ends for each joint branch (perhaps something similar to Jacek's system), or maybe the ability to deal with different shapes in each joint branch (square, circular, rectangular, etc).

Edit: Improvements/suggestions/etc. are welcome


Oops, I think I missed a graft in there. Re-attached below...







  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service