algorithmic modeling for Rhino

"TetGen is a program to generate tetrahedral meshes of any 3D polyhedral domains. TetGen generates exact constrained Delaunay tetrahedralizations, boundary conforming Delaunay meshes, and Voronoi partitions." (

To continue with my wrapping career, TetRhino (or Tetrino) is a .NET wrapper for the well-known and pretty amazing TetGen mesh tetrahedralization program. It provides one new GH component for discretizing or remeshing objects using TetGen. Basic tetrahedralization functionality is exposed with a few different output types that can be controlled. At the moment, the only control for tetrahedra sizes is the minimum ratio, which is controlled by a slider. This is hardcoded to always be above 1.0-1.1, as it is very easy to generate a LOT of data (and crash)...

The libs are divided again into different modules to allow flexibility and fun with or without Rhino and GH, so have fun. All 4 libs should be placed in a folder (maybe called 'tetgen') in your GH libraries folder. Remember to unblock.

Once again, the libs are provided as-is, with no guarantee of support for now, as I use them internally and do not intend to develop this into a shiny, polished plug-in. If there is enough interest, I can tidy up the code-base and upload it somewhere if someone more savvy than me wants to play.

TetgenGH.gha - Grasshopper assembly which adds the 'Tetrahedralize' component to Mesh -> Triangulation.

TetgenRC.dll - RhinoCommon interface to the Tetgen wrapper.

TetgenSharp.dll - dotNET wrapper for Tetgen.

TetgenWrapper.dll - Actual wrapper for Tetgen.

Obviously, credit where credit is due for this excellent and tiny piece of software: 

"The development of TetGen is executed at the Weierstrass Institute for Applied Analysis and Stochastics in the research group of Numerical Mathematics and Scientific Computing." See for more details about TetGen.

To wrap up, some notes about the inputs:

These are the possible integer Flags (F) values and resultant outputs for the GH component:

0 - Output M yields a closed boundary mesh. Useful for simply remeshing your input mesh.

1 - Output M yields a list of tetra meshes.

2 - Output I yields a DataTree of tetra indices, grouped in lists of 4. Output P yields a list of points to which the tetra indices correspond.

3 - Output I yields a DataTree of edge indices, grouped in lists of 2. Output P yields a list of points to which the edge indices correspond. Useful for lots of things, very easy to create lines from this to plug into K2 or something for some ropey FEA (or not so ropey!) ;)

As this component can potentially create a LOT of data, especially with dense meshes, care should be taken with the MinRatio (R) input. This will try to constrain the tetra to be more or less elongated, which also means that the lower this value gets, the more tetra need to be added to satisfy this constraint. Start with very high values and lower them until satisfactory.

Hopefully shouldn't be an issue, but it's possible that you need the 2015 Microsoft C++ Redistributable.

Happy tetrahedralizing...

UPDATE: The has been updated with some fixes.

UPDATE2: This is now available on Food4Rhino:

Views: 3626


Replies to This Discussion

"It doesn't work. It just doesn't work."

Maybe not for you, Nik. But you know...maybe that's because it's you, and you frequently try to smash round pegs through square holes. Sure, there's plenty that Houdini is fantastic for, more stability, faster processing. Yay for Houdini! It's a great product. You may be surprised to find that many people - some here - actually use both products. For different things.

Your posts turn into bizarre quests...your recent ravings have you careening from Rhino to Revit to Maya to ZBrush to Houdini, all the while bitterly lambasting McNeel for not implementing everything perfectly. You insult everyone along the way, and to top it off, launch into self-aggrandizing, astonishingly delusional claims..."the most beautiful images!" "the greatest breakthrough for Rhino!" This last claim refers to what is more or less a Pythonic macro that saves Rhino files, spins up a COM instance of ZBrush, calls some commands, then brings it back. That can be useful to people who have ZBrush...but really? So very very great, as you insist? As you shout at the top of your lungs how wonderful you are, and how like peasants everyone else is? It's a macro, dude.

I can only guess that your most recent, exaggeratedly unhinged and increasingly personal attacks on pretty much everyone else here are you now actually trying to get banned, just so that you can feel even better about yourself (if it's possible), and as some form of justification for your self-righteousness. But your act is both so very loud, and so very tired; and more importantly, you'll never see how you miss the point on so many levels...really, if it's so terrible here, you could preserve some modicum of dignity and bring your gaudily baroque, self-important roadshow to the next software package that you inevitably be disappointed by, either because the community there also doesn't somehow see your "genius," or because it breaks on occasion.

Really, just go.

Dude, ZBrush is amazing. Houdini is amazing. OpenVDB is beyond amazing. You simply insist on missing the point.

Houdini delivers. Rhino does NOT.

For what? Some mesh stuff? Last I checked Houdini was quite clunky for NURBS (Rhino's primary use). It's even the software description - "Rhino is a free-form NURBS surface modeler." So they throw some mesh in there to support some stuff. Same as Houdini or Maya (not even Zbrush at all) throws some NURBS stuff in there for support, but it is not their primary focus or use. Houdini is VFX based which is mostly mesh.

Who said they hate Zbrush? I personally use it just as much as gh. Davids comment was not about Zbrush or even about your bridge (its not a bad tool at all). His comment is about your shitty attitude about how great you are for making a macro.

Above all that, none of this has anything to do with anything besides your constant spam crying because you got yourself banned. No one banned you but you. I've seen you post ban worthy stuff before and usually you delete it after a few minutes. This time you got caught. That's your fault. If I'm a bank robber and I get caught robbing my 10th bank, is it not my fault for breaking the law? Just deal with the consequences, you took the risk.

...I was wrong...

This is accurate.

thank fucking god. lets get back to making cool shit and being respectful of one another. thanks to mcneel for doing the right thing and getting rid of this pestilence on our community. By any reasonable measure he was given more than enough chances to correct his insulting, unproductive, childish behavior and it only got worse. 

Come for the tetrahedra, stay for the lolz!

Especially now that all his comments are gone and we all look like crazy people arguing at no one :D

Maybe.. we were the crazies all along!! This thread in particular reads like complete gibberish now. Anywho, really glad to see that this long-running shitshow is finally over and (hopefully) done with. Many thanks to the McNeelies for listening behind the scenes and taking appropriate action. Back to making all the cool shit indeed.

Edit: Also yeah Tommys Tetgen :D

I was trying for about 5 min to understand, what on earth Michael was talking about on his first reply after Tom saying that he updated the files. I thought ning f..d up and I was somehow teleported to the the Zbrush epic post.

Good news for the community.

No censorship intended but some basic rules should indeed be followed.

Tom, have you thought about getting this (and the Carve Wrapper) on Food4Rhino?

Hey Luis, not really, mostly because I don't know how Food4Rhino works... I'll take a look, probably better to stick things there than here on the forum, where things get so exciting!






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service