Flat Equal Paneling on a Curved Surface?


I have a curved surface that I would like to panel into small, flat, equal surfaces to mimic the Museo Soumaya (shown below) and the Santa Catarina Market. I tried the file from HS_Kim in Grasshopper (below) and dabbled in Paneling Tools and PtGridSurfaceDistance, but I still haven’t figured it out yet! I would truly appreciate ANY and ALL help!!

CurvedSurface.3dm (1.2 MB)

It’s not possible doing this with quad panel.Triangle panel could almost doing this job, but each panel are not totally the same.( they will have very small diffirence)

Hello! Thank you for the reply! How would I go about doing it with triangle panels?

input surface


mesh dual

Heres an approach using your surface with mesh machine. I think Mesh machine is now part of Kangaroo2, so should come with Rhino6. Otherwise you can find the .gha on the forums.
You will also need a Dual component. i use the one from NGon

planar_panels_re-mesh.gh (13.4 KB)
You might need Plankton Too…

panels.3dm (2.5 MB)

This method creates two versions of panels (triangular and ngon) with similar sizes, however they are not identical by any means, the ngons are not planar, and they are not clustered as per the Museo Soumaya, which is a pretty sophisticated approach.
I’d recommend reading the document above to get some insight into what’s involved.

Hopefully this gets you started


Projected planar panels

planar_panels_re-brep.gh (21.4 KB)
panels.planar.gaps.3dm (5.2 MB)
(partial panelization. filesize too big otherwise)


Hello! Thank you SO MUCH for all of your support and help! I’ve been reading up on the paper you attached and it was very helpful, as well as interesting!

My computer was a bit finnicky about downloading NGon, but once it finally did, I was able to open up your file.

When I tried to add it to my whole project, it split it into the hexagons, but then it did not make them into projected planar panels.

Do you know why this might be?

Thank you again and have a great day!

1 Like

you can use lunchbox

1 Like

you can also use : EvoluteTools

1 Like

Its not so simple. You can see here all about the design of that facade and the clustering of panel types based on curvature.


and this

they used a plugin called : VARYLAB

1 Like

Fabulous! I am downloading and trying all of these right now! Thank you so much everyone. :heart_eyes:

You are all amazing humans.

off topic
this look like a nose :smile:

1 Like

There is a ThinkParametric course using Lunchbox machine learning, Annemone and Kangaroo recreating the Soumaya: https://thinkparametric.com/courses/panel-clustering-using-machine-learning-soumaya-museum

Hello, I want to achieve similar thing in first part of my thesis project, and I have similar questions.

My thesis project steps:
1- equal paneling a given freeform surface, (triangular, quad and hexagonal grids)
2: analyzing the support structure of the paneling grid,
3: Comparing the results.

Karamba developers provided me educational licence for my project, so I’ll use it for my second step of my work.

But for the first part; I cant decide which plug-in should I use? Or which path should I follow.

I tried downloading Varylab (which provided me beta token btw) but it is blocked by Java. and grasshopper plug-in is not fully developed I guess… (But I might try this if there is no other way)

I check the Museu Soumaya publication, but they give general explanations, not educational about implementing issues.

Thanks for any help.

Kangaroo has various tools for this…
however - be aware that it is not possible to smoothly tile general freeform surfaces with identical tiles meeting exactly at their edges. You’ll need either gaps between them, or slight variation in the dimensions of the panels.

1 Like

Hi, does someone know why is this happening: mesh not generated along the entire surface

It could be many things. You’ll need to share your file to get a solution.

Try this, there are two options which are a bit easier to use than meshmachine (both of which are in kangaroo by default). It’s likely that you need to refine your input mesh before remeshing.

planar_panels_2.gh (104.8 KB)

Thank u, this is exactly what I need, but you might be right, the surface is been generated using two curves and loft. I was trying to add panels using the examples you shared above, using mash machine… but I will try this new process. Where can I find Kangaroo 2.5.2? I can only see 2.4.2
Thanks a lot

Has anyone tried to actually modify the underlying surface in a way that the curvature stays as homogeneous as possible? This doesn’t make the panels planar but it simplifies a lot. In automotive we care a lot about preventing twisted surfaces, and it leads also to lighter twists on hexagon panels (we do not planarize).

I mean is it just me? I find the surface of the initial example horrible, and I‘m shocked that this is actually built within a city. Which makes me think that hopefully this topic stays difficult…