Create surface(panels) from points on surface

I was intrigued by one panelization method shown in one of @LongNguyen’s C# workshop videos. I tried to create surfaces/panels (or meshes) using points on surface as seen the image below, but I’m not sure how I could create these surfaces in C# or even in Grasshopper.


I’m attaching an example with a surface, points on surface, and circles with planes for panelization.

Can anyone point me in the right direction to create surfaces/panels with points as approximate centers of surfaces/panels? I prefer C# methods, but I’m curious about Grasshopper solutions as well.
Thank you!
SurfaceWithPoints.gh (109.9 KB)

Hi,
I made this some weeks ago, for archieving this you need do the following steps:

  1. make a delaunay(or other triangulation) from your points
  2. make a Dual Mesh from your delaunay Mesh

Thank you @Baris, it’s great to know about Dual mesh. (I’m not sure if it’s a correct term.) I used “Weaverbird’s Dual graph” to get panels quickly. However, this method doesn’t make coplanar surfaces.


What I was hoping was to get coplanar surfaces by intersecting planes around each point, as shown in the image below. I tested this method using Grasshopper components as a proof of concept, and here’re four steps I’m thinking to write scripts in C#.

  1. Find adjacent planes of each point
  2. Intersect planes to get lines
  3. Intersect all lines from step 2 to get panel vertices
  4. Create coplanar surfaces using panel vertices from step 3

    Is there a good way to get adjacent planes around each point, step 1, in C#? If you know better ways to get coplanar surfaces, could you share them with me? I’m attaching a revised Grasshopper file including the test method explained above.SurfaceWithPoints_POC.gh (134.5 KB)

(and I think you might find that whole thread relevant)

Hi,
I ended up with a method @Petras_Vestartas explained here:

It is basically getting an average vector for each vertex of a hexagon and then move. I made it way less elegant/ sophisticated as him but following the same principle.

Thanks a lot @DanielPiker! It is exactly what I was trying to do and the thread isTangent plane intersect.gh (122.7 KB) very helpful. As you explained in that thread, my quick test proves this method seems quite tricky with a surface having a mix of +/- curvature, like my example.


It’s a little bit different question, but I’m wondering if there’s a way to control how to create a Delaunay mesh in connecting points. Specifically, I want to connect closer points as shown in red arrows in the image below instead of green lines. Is there any solution for this?

Thanks so much again @Baris! It’s a lot to absorb, but I’ll go through the whole thread.

I tried tangent plane planarization too in my code.

Tangent plane depends on curvature that is why it does not work in your case and most of real built examples are peanuts or domes.

If you do not use some sophisticated meshing following curvature you can hardly design with simple delaunay triangulation.

Thank you @Petras_Vestartas! I realize again that most of panelization strategies rely on how original geometries are constructed. I’m amazed by the amount of information I’m getting from all of discussions and papers including yours simply by asking a basic question here. I really appreciate great answers/insights from all of you in this tread!