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.
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
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).
Jan 23, 2014