Kangaroo

THIS FORUM IS NO LONGER ACTIVE. PLEASE POST ANY NEW QUESTIONS OR DISCUSSION ON:

https://discourse.mcneel.com/c/grasshopper/kangaroo

The discussions here are preserved for reference, but new questions posted here are likely to go unanswered.

Kangaroo is a Live Physics engine for interactive simulation, optimization and form-finding directly within Grasshopper.

Self weight force

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

  • up

    Daniel Piker

    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).

    4