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 DLA, leaf 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.
(component will appear under the Mesh>Triangulation Tab)
Marios Tsiliakos
Dec 21, 2012
Luis Fraguada
Seriously nice contribution dudes!
Dec 21, 2012
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
Dec 21, 2012
Arthur Mamou-Mani
Sorry, here are the files:
Rhino
GH
Dec 21, 2012
Ángel Linares
Nice tool to simplify work :)
Dec 21, 2012
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 ?
Dec 21, 2012
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
Dec 21, 2012
Arthur Mamou-Mani
You are right! It works well with Rhino 5 :) Great stuff.
Dec 21, 2012
June-Hao Hou
Awesome work! Thanks for your contribution!
Dec 21, 2012
I_M_F [Iker Mugarra Flores]
Super fantastic!!!! Faster and more flexible than T Spline Pipe!!!!.... Thank you for the tool....
GREAT WORK!
Dec 22, 2012
Navaneeth
Awesome tool.Thanks!!
Dec 22, 2012
Ali Habibian
:D ?????
Dec 22, 2012
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..
Dec 22, 2012
STUDIOTJOA
I was just thinking about a need for this. Many thanks for this new tool.
Dec 26, 2012
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
Dec 27, 2012
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...
Dec 28, 2012
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
Dec 28, 2012
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
Dec 28, 2012
patric guenther
@ daniel: right click the file and choose "Unblock"
Dec 29, 2012
Daniel Kautz
Thank you Patric, that worked.
Dec 29, 2012
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...
Jan 2, 2013
Ali Naghavi
Great work!
Jan 4, 2013
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
Jan 7, 2013
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!
Jan 10, 2013
djordje
Understood. Sorry for disturbance.
Jan 10, 2013
Mario A. Benavides
Hello
Is there a solution to patric guenther's problem?, I am running into the same problem repeatedly.
Thanks
Jan 17, 2013
Mario A. Benavides
http://www.grasshopper3d.com/forum/topics/exoskeleton-lines-to-origin
Jan 17, 2013
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?
Mar 15, 2013
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!
Apr 2, 2013
jose salinas
GREAT JOB!!! The combination with Topologizer .... great!
Apr 18, 2013
Gieljan Vantyghem
Very nice tool! thanks alot!!
Apr 19, 2013
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.
May 13, 2013
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.
May 14, 2013
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?

Aug 7, 2013
djordje
Hi Kyle. Check this topic.
Aug 8, 2013
Łukasz
Well done mates. :)
Aug 21, 2013
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?
Aug 30, 2013
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.
Oct 15, 2013
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:
Thnx in advance for respond,
with respect,
Ondrej
Nov 30, 2013
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.
Jan 23, 2014
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.
Jan 23, 2014
Mihai Pruna
Thanks David, I will give it a try in the future on more complex and three dimensional meshes.
Jan 23, 2014
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
Jan 30, 2014
Jonathan Gann
really impressed with this! thanks for sharing your work!
Feb 11, 2014
Ondrej Homa
Dear Daniel and David,
I would like to ask, did You figured out the overlapping nodes issue allready?
Thanks in advance,
Ondrej
Aug 6, 2014
Silvio Carta
any idea to solve patric guenther's issue? Same thing with me.
Oct 15, 2014
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
Jul 24, 2015
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!
Jul 24, 2015
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
Sep 22, 2015
Ondrej Homa
Thanks, I will definetely download it.
Sep 22, 2015