Planarizing quad panels on double curved surface

I’m trying to planarize quad panels on a double curved surface using Kangaroo.

Planarize_Honeycomb_Shell_QUADS_REUP.gh (36.8 KB)

The resultant larger surface unfortunately becomes quite undulated due to varied orientation of flat panels.

I am to keep the surface curvature even and let Kangaroo adjust the outer boundary curve to keep the appearance smooth.

How can I do it?

Can you internalize your surface in the gh file?

Also, I don’t think all surfaces can be meshed using planar quads. Only specific surfaces can be built using this technique

1 Like

Yeah. Here it is.

Planarize_Honeycomb_Shell_QUADS_REUP.gh (36.8 KB)

I forgot to do it earlier. Sorry.

You can mesh any surface with planar quads, just in some cases you will need to adjust the mesh topology and cannot always have the grid direction lining up with the boundary.

This mesh on this surface looks fairly simple to planarize though, especially if you are happy to let the boundaries change.

With planarization you’ll generally need additional goals such as pulling to a surface and/or smoothing to keep the mesh nice.

Am I understanding you right that you want to stay close in shape to the original input surface, but all 4 boundary curves are free to change?

1 Like

What is the method to do those mesh topology adjustments? Any scripts you have that illustrate that method?

Yes. Exactly. 4 boundary curves can move a little bit.

Ok here’s a very simple version.
For this shape it actually works well even before adding any extra smoothing/fairing.
SimplePlanarize.gh (33.2 KB)

If you want further constraints it will need additional goals…

1 Like

Thanks. This works surely. However, I imported a shell structure composed of quads and a non stop explosion of lines occurred while running the Kangaroo simulation.

SimplePlanarize_with shell.gh (108.1 KB)

How to input additional constraints in this script?

Yes, there you have a mesh not even approximately following the principal curvature directions.
Even with adding smoothing/fairing/proximity goals it won’t be possible to make it planar without changing the starting mesh.

From the complexity of the shape, it looks like an appropriate mesh topology will also need some irregular vertices at key points. The boundary also has some sharp discontinuities, and does not follow the surface curvature directions, so it likely isn’t possible to have the mesh grid directions aligned with the boundary everywhere.

There isn’t really any totally automated way to create this starting mesh topology. It is possible with a bit of work and skill, by looking at the curvature, maybe modelling some base mesh informed by this and/or pulling it onto the surface while letting parts slide past the edges. I can give a bit more of a guide to this process, but it’s not a one-click solution.

However, an alternative I generally recommend wherever possible is instead of getting some shape as a surface or mesh (with topology unrelated to curvature) designed in some separate way, and then trying to fit planar panels onto it in a post-rationalization process, instead embed the constraints such as panel planarity right into the start of the design process, so that you create a shape which has those properties from the start.

I am stuck now. How do I proceed further with this form for planarizing? Please help.

I tried more. The resultant mesh has lot of undulations.

Kangarooplanarization another attempt.gh (116.5 KB)

To clarify my previous reply - I mean you will need to use a mesh with different topology. When the mesh topology doesn’t fit the shape, there’s no way of simply optimising vertex positions that will make the panels planar.

1 Like

My initial form has quadmesh typology. How do I determine whether it is fitting or not?

How do I edit the topology of this mesh, analyze if for possibility for planarization, then planarize it?

1 Like

It is clear that this is not an easy job and that it would require a lot of manual work, but I have been always curious about this too.
How do you go about doing this even inside Rhino?

Judging from Daniel’s words you might need to start over and take planarization into account from the start. Now, I wouldn’t know how to do that either.

For the record, I don’t work with meshes often :sweat_smile:

1 Like

“You can mesh any surface with planar quads”… If I mesh the the surface with qauds and triangles, would it follow the surface better ? Is there a way do it all ?

1 Like

How to take that into account from the start? I began by developing a double curved surface, intending to planarize its quads later.

Here’s a simple example of including planarity during the initial shaping process:
pre-rationalize_planar.gh (23.6 KB)

If you want to do it the other way round, making a surface, then turning it into a planar quad mesh, you’d need to find the principal curvature directions, build a new mesh respecting these (bearing in mind the curvatures will probably not align with the boundaries), then planarize that.
There’s no fully automated way to do this.

1 Like

If you use subD to create the initial surface and then use subD to Mesh does this give any advantages regarding matching the mesh to curvature?

Sorry for replying so late. I fell sick and then later got busy with other work.

I tried to planarize again this time. I made a surface, then used quadremesh from Rhino 7 to convert it into quad mesh.


The geometry is internalized. However I am attaching rhino 7 file also just in case.

pre-rationalize_planar_re.gh (36.6 KB) pre-rationalize_planar.3dm (112.9 KB)

I plugged it into your script and I defined the anchor points and ran the simulation.

Only 3-4 pieces get planarized initially. After slowly moving the slider to higher values, everything explodes.

Please provide a Grasshopper script or a process to find the principal curvature directions and making a new mesh to respect those.

Bump…

Hi @archz2

pre-rationalize_planar_re.gh (44.3 KB)
Have a go with this- it uses some more fairing goals to keep the quads in shape, and lets you make the panels of your mesh fully planar.

However,
It is important to understand that when using this ‘pre-rationalisation’ approach where you define the mesh first, then pull it into shape while keeping constraints such as panel planarity,
the quality of the starting mesh still really matters a lot.

The locations of the irregular vertices will strongly affect the shapes the mesh can take and how it can curve while keeping within the constraints.
Using smoothing and fairing goals can only do so much - if the starting mesh doesn’t make sense for the form, then no amount of fairing will allow it to make a nice smooth grid while meeting the constraints.

In your file the mesh has no relationship to which parts of the boundary are fixed. This leads to discontinuities as it pulls up.
To get a nice form you would need to design your starting mesh informed by where it is going to be fixed and which parts are going to become domes/openings/saddle regions.

1 Like