algorithmic modeling for Rhino
Hey guys, I was wondering if anyone knows of a way to tell if a surface is minimal or not for a given boundary.. without rebuilding it and then comparing. I read some mathematical definitions.. like mean curvature =0 and many more.. is there a compiled algorithm which can check and give it a numerical value so that if its a minimal surface it will equal 0.. and the closer it is to it the closer it will be to 0.. basically I"m trying to difine it as a fitness criteria.
Tags:
Hi Kipodi,
You are right that zero mean curvature is the thing that identifies a minimal surface.
If we discretize (mesh) the surface we can measure the discrete mean curvature at each vertex. Now this generally won't be exactly zero, because it is a mesh of flat triangles approximating a smooth surface, but if it is a good mesh it should be pretty close.
The standard formula for calculating the discrete mean curvature involves taking an average of the neighbours of a vertex, weighted according to the cotangents of the opposite angles. Funnily enough this topic was actually discussed on the Plankton group just the other day, and Riccardo is looking at adding methods to Plankton to return the mean curvature (among other things). In that thread I also posted some code I wrote to calculate the mean curvature normal as part of the smoothing in MeshMachine. It would be fairly simple to pull that code into a separate script. Since you are after the value of the mean curvature rather than its gradient, you would just take the magnitude of the vector.
Hey Daniel. Thanx for your delving answer as always :)
I see that there is a component in grasshopper to extract a mean curvature for any given point , either from a uv surface or a mesh (since it looks for neighboring vertex). Have you tried it?
I also see on a definition of a minimal surface that there are quite a few definitions which must all occur at the same time according to this source, where mean curvature is just one of them.
https://en.wikipedia.org/wiki/Minimal_surface
do you think that zero mean curvature (or very close in our case) is enough to decide if a surface is a minimal surface?
Those definitions are all equivalent - if a surface has everywhere zero mean curvature then it is minimal, and will automatically satisfy those other conditions as well.
I'm not sure which component you are referring to. Are you sure its a standard gh component and not from a plugin?
I see the surface curvature component, but it looks like it only takes NURBS not meshes.
If you already have your surface as NURBS though I guess this should work.
I made a quick test - taking a helicoid surface which is known to be minimal.
Summing the absolute values of the mean curvature at 100 random points on the surface gives about 0.02, and this answer quickly grows large if the surface is even slightly distorted, so it does seem to work as expected.
thanks you so much.. and I would assume 0.02 is your tolerance referring to 0..
I found this for mesh gaussian and mean curvature:
http://www.informance-design.com/?p=690
it works off the rhino sdk I think.
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by