Grasshopper

algorithmic modeling for Rhino

Daniel

Do you have a component, or a simple work around for calculating the mesh area surrounding a node for easy selfweight calculation when form finding shells? I'm asuming it's pretty much the same as the 'inflate' code but would be applied based on a gravity vector rather than surface normals. 

 

Thanks

Nick

Views: 2224

Replies to This Discussion

Hi Nick,

There are actually a few choices for how to calculate the area of a mesh which 'belongs' to a single vertex.

The simplest is barycentric, where you take one third of the area of the surrounding triangles, and this is what the inflate component uses.

An alternative is to use the area of the corresponding Voronoi cell. You don't actually need to calculate the full Voronoi diagram to get this (and indeed if the mesh isn't flat then you can't), but can use the cotangent weighting, as described here:

http://stackoverflow.com/questions/13882225/compute-the-size-of-vor...

There's some useful comparison of these 2 options here:

http://www.alecjacobson.com/weblog/?p=1146

If the mesh is 'nice', then they will give similar results.

However, if this is being used for form-finding, you may want to change these weights as the mesh deforms, and currently you'd have to use some additional looping outside Kangaroo to achieve this.

You've reminded me though - I been meaning for a while to add an area based dynamic weight component for form-finding (along the lines of what John Harding and Paul Shepherd describe here: http://opus.bath.ac.uk/26222/1/london_preprint2.pdf).

Here's a definition showing how to calculate these area options in Grasshopper.

I'll try and get a release with that dynamic weight component out soon.

Attachments:

Daniel

Thanks for the quick reply as normal. That's really helpful, thanks. As you say, it looks like triangulating the mesh and taking 1/3 of the area is probably the easiest in GH and is probably accurate enough for what we need. The voronoi and cotangent methods don't work well at the edges so you'd probably need a different definition for the edge nodes anyway.

 

I guess we might be able to loop it back to the start with Hoopsnake. Will give it a try.

 

I should have asked John H first...... he's only sat downstairs from me!

The cotangent method can actually be adjusted to work at boundaries (and Plankton could come in handy here - another RCD connection!), but I tend to agree that in most cases the barycentric version is probably good enough.
Is this to combine with springs for catenary shells? If you are looking at continuous shells then it could also be interesting to look at applying the cotangent scheme for the tension too - it's the same weighting used for finding minimal surfaces...

Hi Daniel, 
Were you able to work out a dynamic weight component? It seems perfect for what I'm doing currently:
I'm taking this mobile definition you started further: http://www.grasshopper3d.com/forum/topics/how-to-simulate-the-wind-... by creating weighted objects (like the metal pieces Calder used) at the vertices. Currently I'm working to combine it with this weight finding formula so the force of the panels is applied at the vertices: http://www.grasshopper3d.com/forum/topics/calculating-the-center-of but my ultimate goal is to create a form finding method so I can adjust the shape and size of one of the pieces and the model will compensate the balance by adjusting the distance from the fulcrum of the other pieces. 

Would a dynamic weight component apply to this situation? 

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service