I am researching on form finding and I have a question about minimal surface in Grasshopper. I have generated a surface from Kangaroo. The shape is Otto’s Sternwellenzelt membrane. After generating the shape, I want to test whether it is a minimal surface or not. I have went through the discussions and have done these so far:
I have installed NGon to check the mesh’s mean curvature. I have read a discussion from Daniel, where he populated points on the surface, then took absolute sum of the mean values to see if it is near zero.
My questions are;
1- Why absolute sum of the mean values? should not it be just the sum?
2- Are there any native Grasshopper/Kangaroo component that can check the properties of a mesh/surface? Especially for minimal surfaces?
3- I know that Kangaroo does not specifically look for minimal surfaces, but what would be the best way to make sure every time the result is minimal surface? I thought since the SoapFilm component in Kangaroo mimics Frei Otto’s soap bubble experiment, the geometry “found” must be minimal.
Again, I appreciate any help. This is the link to the discussion from the old forum:
In the curvature_test.gh file in the discussion you link to I was showing checking curvatures on a surface rather than a mesh, using the standard Grasshopper surface curvature component.
A minimal surface is indeed defined by having zero mean curvature at all points. As a quick check you can evaluate several points on the surface and see that the values are all close to zero (they generally won’t be exactly zero because of the limits of floating point precision).
The reason I summed absolute values in that definition was just because otherwise you could potentially have positive values in some places and negative values in others, in a way that they would balance out when added together. Instead summing the absolute values will only give you a sum close to zero if all the values are close to zero.
Actually looking for minimal surfaces is exactly what the SoapFilm component does. I named it soap film because I thought the physical form-finding connection would make it more easily understandable to more people, but it works by minimising the mean curvature of the mesh, which converges to a minimal surface.
I’ll post an example of mesh curvature analysis later.
thank you @DanielPiker for the quick response. I have created a shape with soap film and checked the mesh mean curvature with NGon and the value is not even close to zero. I have attached the file. I appreciate your comments.
The file I just posted shows how you can evaluate the mean curvature values using the standard cotangent laplacian formulation, which you can check the code to see.
I see you are using a rather coarse mesh there, but even so, notice those values are all less than 0.1.
As you refine the mesh further you should see these values decrease.
The bigger issue I see there though is that because the initial meshing is done on the flat shape, the triangles become very elongated in the result. You will get a more accurate result if you use the LiveSoap component, which can remesh as it relaxes to maintain the triangle quality.