Introducing 'Exoskeleton' - A wireframe thickening tool

A collaborative effort by David Stasiuk and Daniel Piker, Exoskeleton brings simple wireframe thickening to Grasshopper. You input a network of lines, and it turns them into a solid

(without the heavy calculation of a Boolean intersection of many pipes and spheres).


The input line networks can have any topology, and need not form closed polygons or volumes, so could come from algorithms such as DLAleaf venation, or Woolly threads.


The resulting meshes are ideal for 3d printing and further processing, such as subdivision with WeaverBird and relaxation with Kangaroo.


There are settings for the thickness of the struts, node sizes, and whether to leave openings at nodes with only one connected line.


The approach we used is loosely based on the one described in the paper Solidifying Wireframes by Ergun Akleman et al.


Thanks to Giulio Piacentino for helpful discussion in the development of this idea, for WeaverBird, and the GHA wizard, to Mateusz Zwierzycki for convex-hull ideas, and Kristoffer Josefsson for helpful discussion.

Exoskeleton001.gha

(component will appear under the Mesh>Triangulation Tab)

 

 

 

Load Previous Comments
  • Marios Tsiliakos

    Thanks!! Going to test it thorougly!! M.
  • Luis Fraguada

    I swear this was awesome just prior to Rhino Crashing!  Crash had nothing to do with Exoskeleton, I just had too much stuff going on on my computer. 

    Seriously nice contribution dudes!

  • Arthur Mamou-Mani

    Hi Guys,

    That's very very helpful (and I like the christmassy red on the printscreens). Thanks so much for sharing your work. I just gave it a try with a basic wireframe extracted from a mesh and got the results below. What am I doing wrong?

    Best wishes,

    Arthur

  • Arthur Mamou-Mani

    Sorry, here are the files:

    Rhino

    GH

  • Ángel Linares

    Nice tool to simplify work :)

  • Daniel Piker

    Thanks - its odd, but that file works fine when I open it.

    I notice it is saved as a Rhino4 file - what versions of Rh/GH are you using ?

  • Daniel Piker

    Ok, just checked, and it seems there is a bug which occurs when using it in Rhino4, but not with Rhino5... we will dig into it

  • Arthur Mamou-Mani

    You are right! It works well with Rhino 5 :) Great stuff.

  • June-Hao Hou

    Awesome work! Thanks for your contribution!

  • I_M_F [Iker Mugarra Flores]

    Super fantastic!!!! Faster and more flexible than T Spline Pipe!!!!.... Thank you for the tool....

    GREAT WORK!

  • Navaneeth

    Awesome tool.Thanks!!

  • Ali Habibian

    :D ?????

  • Christian Schmidts

    amazing work guys! here is a little suggestion: wouldn' it be possible to intergrate surfaces into the exoskeleton? to combine line-like typologies with surface-like ones..

  • STUDIOTJOA

    I was just thinking about a need for this. Many thanks for this new tool.

  • Harri

    Hi David and Daniel,

    Really nice component.  I noticed how the cross section is rotated along the length.  I assume this is to create nice triangulated meshes?  It would be nice to have the option to maintain the orientation of the cross section (possibly with quads), or even not require any divisions along an edge?

    Just in case you did any updates!

    All the best

  • David Stasiuk

    Harri-

    Yes you're right...the polygons along the struts are alternately rotated to create symmetrical triangulation.  It would be possible to allow for them not to be rotated/develop quads in the struts/not require divisions...I guess the one concern would be that quite suddenly there will be so many more options for input!  But maybe it could just be a "simple strut" boolean that implements all of these at once.  But it's totally doable...there are some other adjustments we're looking at as well, including the hulling, how the "knuckles" behave, and possibly examining "charge" options for variable thickness along the struts...Christian's request for tying in surfaces is something else that's been on my mind as well...it's a slippery slope!  We'll see what happens...

  • patric guenther

    hey Guys,

    as you can see in the attached picture i run into the problem that the exoskeleton component connects some parts to the 0,0,0 coordinate.

    where is the problem? any idea?

    https://dl.dropbox.com/u/47540907/exoskeleton%20voronoi.3dm

    all the best

    https://dl.dropbox.com/u/47540907/exoskeleton%20voronoi.3dmhttps://dl.dropbox.com/u/47540907/voronoi%20exoskeleton.gh

  • Daniel Kautz

    I am not seeing exoskeleton in the mesh > triangulation menu. I copied the component into the special folders > components as per usual installation of new components. What am I doing wrong? I've tried Rhino4 and Rhino5 (32 and 64 bit) versions. Grasshopper is version 0.9.0014

    -Thanks in advance

  • patric guenther

    @ daniel: right click the file and choose "Unblock" 

  • Daniel Kautz

    Thank you Patric, that worked.

  • Jak Drinnan

    Hi Guys,

    Looks like a great tool thanks for sharing! I seem to be having trouble with using it in Rhino 4 though, getting the same bug as reported earlier. I also don't have access to any Rhino 5 yet either, do you think you will get it working for Rhino 4 at some point? Seems like a sign to upgrade I think...

  • Ali Naghavi

    Great work!

  • djordje

    Looks pretty amazing.
    Any news on the Rhino 4 bug?
    I am having the same issues like already reported ones, on Rhino 4 SR8

  • David Stasiuk

    Hi djordje...haven't yet taken a close look at why it doesn't work in R4...I'll try to get to it soon if possible!

  • djordje

    Understood. Sorry for disturbance.

  • Mario A. Benavides

    Hello

    Is there a solution to patric guenther's problem?, I am running into the same problem repeatedly.

    Thanks

  • Mario A. Benavides

  • Isak Bergwall

    I tried using this on edges from a diagrid created with lunchbox, but when I add the curves (that comes from a dupborder on the panels) to Exoskeleton I get the following error. Error: Solution exception: Arithmetic operation resulted in an overflow." I tried with closed curves, exploded curves, fewer curves.. Any idea what could be wrong?

  • martyn hogg

    Hi,

    Is Exoskeleton ever likely to work with Rhino4? It looks really useful and something I'd really like to experiment with, I just can't afford to upgrade to Rhino5 at the moment :(

    I get the same problem as described in this post re: flattened meshes http://www.grasshopper3d.com/forum/topics/exoskeleton

    Keep up the good work!

  • jose salinas

    GREAT JOB!!! The combination with Topologizer .... great!

  • Gieljan Vantyghem

    Very nice tool! thanks alot!!

  • Vicente Soler

    Are there plans in the near future for an update that allows different thickness per line? I'm using offset mesh right to change the thickness but the results aren't very good.

     

    Nevertheless, great plugin.

  • David Stasiuk

    Hi Vicente-

    I am working on just such an update this moment...In the short term I am looking at making it possible to locally alter both strut thickness and node offset distances, and hopefully will have something in the next several days.  Additionally, a key component to this update is that node thicknesses will be better adjusted...currently, the node size is determined by either the node depth assigned by the user, or by the minimum offset required by the narrowest angle between struts in a node as a function of the strut thickness.  The update will allow for the node offsets to shrink locally for each strut. In the longer term I am also interested in looking into mesh self-intersection for the purposes of making more organic meshes...but that's not for right now.  So you can expect an update soon...

    Unfortunately, we won't be actively supporting V4...we haven't been able to identify what the bug is, and we are working to support 0.9.0050+.

    I also hope during this update to address the issue of the lines running to the origin.  The reason for this error is pretty simple: the nodes are generated using a convex hull, and when these hulls overlap...which is to say, when any hull engulfs one of its struts entirely, the mesh breaks down.  One way to help prevent this from happening is to use Daniel's topologizer, but that won't always work.  I am hoping to implement some changes that will either generate "super nodes" that combine the input struts between highly proximate nodes, or at the very least generate a detailed error message that illustrates where the input is causing the breakage.

  • Kyle Ultrawave

    Is there something wrong with my sets? The left is the original lines set, the right is the exoskeleton result, which add some lines from 0,0 point to some of nods.Where are the lines from?

  • djordje

    Hi Kyle. Check this topic.

  • Łukasz

    Well done mates. :)

  • Jack munro

    Hi guys,

    This is such an amazing tool, I've had absolute nightmares in the past trying to do this type of thing! I'm having an issue where some nodes separate from their struts, do you have any idea what I'm doing wrong?

  • BeckN

    I am very new to grasshopper and am trying to make these lines into meshes. Although I seem to only be getting triangles and the corners of the lines which is not what I want.

    I don't know if Arthur Mamou-Mani or anybody else is able to help. Thank you. 

  • Ondrej Homa

    Hi,

    Thank You for sharing this awesome tool. Unfortunately, I can´t get good clean results. It computes strange exploded surfaces, which do not connect to each other. What am I doing wrong? I have tried a lot of values settings and still get somtehing like this:

    Here is a definition and source file.

    Thnx in advance for respond,

    with respect,

    Ondrej

  • Mihai Pruna

    Excellent tool,from a visual standpoint.

     I've had issues with a model when trying to create a 3D printable object.

    Basically, I had a 2D wireframe mesh  and used Exo on it, looked really good, but, once imported into Shapeways, most of the elements disappeared and I was left with a very "skeletal" model.

    What I ended up doing was much simpler, I split the mesh into lines and then used the Pipe tool.

  • David Stasiuk

    Hi Mihai-

    With this release of exoskeleton there is an issue with lines that are located in the world planes...so if you have a 2D wireframe that is located in the XY plane, the mesh will look fine, but it will have several naked edges. This is an odd artifact, I think having to do with decimal places and translating between Point3d geometries and mesh vertices...but basically, if you want to make the mesh airtight, you just need to move your base wireframe network out of the World XY plane. Hope to fix this in a later release.

  • Mihai Pruna

    Thanks David, I will give it a try in the future on more complex and three dimensional meshes.

  • Maximo Sanchez Granel

    Hi,

    First of all thanks a lot for your work!! Ive been struggling to print a diagrid on a building, and joining each pipe was giving me a hard time, as that wouldn't work.

    When i enter all the curves into the script I get an overflow error.  Is there a way to get through it?  Joining lines maybe?

    Thanks a lot for your time

    Maximo

    Argentina

  • Jonathan Gann

    really impressed with this! thanks for sharing your work!

  • Ondrej Homa

    Dear Daniel and David,

    I would like to ask, did You figured out the overlapping nodes issue allready?

    Thanks in advance,

    Ondrej

  • Silvio Carta

    any idea to solve patric guenther's issue? Same thing with me.

  • LINA

    Dear Daniel and David,

    I would like a sphere like the first image that you posted.

    Is it possible to send me some key words to help me.

    thank you in advance

  • David Stasiuk

    Hi Lina- There is actually an updated version of exoskeleton that allows for a little more control of a few parameters: http://www.grasshopper3d.com/profiles/blogs/exoskeleton-cytoskeleto...

    Also, you will find some example files there for download...in the complex examples package there should be one for a Radiolarian that you can play with. Good luck!

  • Daniel Piker

    For download and support for the latest version of these components, please go to the Exoskeleton group page here:

    http://www.grasshopper3d.com/group/exoskeleton

  • Ondrej Homa

    Thanks, I will definetely download it.