algorithmic modeling for Rhino

Hi All,

I'm currently in the process of wrapping my head around GitHub. Seeing as how I'm now back in academia I thought this might be a good chance to share some code, for once :)

CITA recently helped conduct the Amphibious Hamburg workshop at the AAC in Hamburg co-tutored by GMP Architects, SBP Engineers and terrific guest tutors including our very own David Rutten and Daniel Piker (thanks again!). The workshop was focused on tensile membrane design for an Olympic swimming pool enclosure. The pre-developed Grasshopper definitions were heavily dependent on Kangaroo and GHPython. For the analysis of form found membrane meshes a couple of custom GHPython components were quickly developed for respectively curvature and drainage analysis (both critical factors in membrane design).

In order to test out GitHub I have uploaded (or pushed I guess!) the source code to both these components and a definition in which they have been implemented. I should note that the curvature analysis is purely based on a quickly "made up" logic (described in the component documentation) and that the drainage analysis is based on Benjamin Golders concept and Remy's VB code found here.

Link to GitHub repository:

Video demo:

Hope that might be useful to someone out there.



Views: 483

Tags: Analysis, GHPython, GitHub, Mesh, RhinoCommon


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by Anders Holden Deleuran on July 30, 2014 at 7:19am

Sweet, thanks Will. Looks great, I'll be sure to give it a look..

Comment by Will Pearson on July 23, 2014 at 6:55am

Hang on, I found it! I used the classic Taubin Tensors approach explained here:

Comment by Will Pearson on July 23, 2014 at 6:54am

Yes, sorry, here you go: This was back when numpy wasn't so readily use-able in RhinoPython so I wrote my own (albeit relying on ALGLIB for an eigenvector solver).

I'm trying to track down the paper I used but for the time being here's someone else's code, following the same approach, to assist in understanding the process:

Comment by Anders Holden Deleuran on July 23, 2014 at 3:42am

Hi Will. No worries, thanks for the warm Git welcome and for replying to the post :)

I was actually thinking about how one might calculate curvature direction after writing the curvature analysis method in the blog post. So indeed a good place to share. Are you using a custom matrix module in your CurvatureTensors function, as far as I recall Python doesn't have a standard matrix type (hence the use of nested lists or numpy)? 

Comment by Will Pearson on July 23, 2014 at 2:54am

Anders, thanks for sharing and welcome to the GitHub revolution ;)

This reminded me of a RhinoPython script that I wrote last year to extract local curvature tensors from a mesh: I was focusing more on getting the direction of minimum and maximum curvature. I think next to your work seems like a good place share it (not meaning to hijack your blog post!).

Comment by 筑梦NARUTO on July 17, 2014 at 5:20pm

very nice,Thanks for sharing

Comment by djordje on July 17, 2014 at 3:09pm

Nice. Thank you.


Search Grasshopper

© 2014   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service