Making planar hexagons is quite different from making planar quads.
With quads, provided they are reasonably close to the surface curvature directions, it is usually possible to make them planar without changing the shape too much.
With hexagons though, when you have regions of negative curvature (which your shape does around the funnels, and between the domes), it is geometrically impossible to make all the hexagons both planar and convex. Some of them have to become ‘bowtie’ shaped.
If you use a weak anchor to the starting positions of the vertices, and gradually increase the highlighted planarization slider all the way up, you can can make them planar without intersecting themselves or each other. The second example shows how you can also apply Laplacian smoothing (you’ll need to set the assembly reference of the scripted component when you open it, and it also uses the ‘topologizer’ component). You can get different results by changing the ratio of the anchor strength and the smoothing strength.
HexCells_1.gh (115.8 KB)
HexCells_2.gh (127.4 KB)
Topologizer.gha (19 KB)
Fundamentally though, with freeform hexagonal meshes, when trying to make them planar, there’s always the question of which sides of which hexagons to make concave, and which to align with the curvature.
I’ve never really liked the methods which assign these directions essentially arbitrarily (which includes all the examples of tangent plane intersection method, and agent based approaches I’ve seen), as I find the resulting cells rather ugly where the regions clash.
I think the only way to make all nicely shaped planar hexagons on surfaces with multiple saddle regions would be to systematically create some non hexagonal faces at key points, and control the alignment of the ‘bowties’ in different regions and where they meet. That’s a big challenge though, as it is closely related to generating a perfect curvature aligned mesh and ideal singularity placement on arbitrary surfaces, which is still an unsolved problem and topic of ongoing research.
The problem becomes a little simpler if your shape doesn’t have inflections of curvature, or umbilic points, as then you can keep all the bowties in the same direction. In that case there are a couple of approaches I’ve shown in other posts which can help:
These won’t work as-is on your shape though, because the changes of curvature are more complex, so a single global direction won’t work.