Grasshopper

generative modeling for Rhino

# Planar Hexagons on double curved surface definition

I've done some research about how to achieve this using various sources online. Mainly:

http://research.microsoft.com/en-us/um/people/yangliu/publication/t...

http://research.microsoft.com/en-us/um/people/yangliu/publication/a%20note%20on%20planar%20hexagonal%20meshes.pdf

Ive written a definition that achieves this, only for surfaces that have gaussian curvature != 0. For instance if a point on a surface almost hits the 0, the definition starts doing weird things. In the papers above they solve this by 'skipping' those points on the surface that have GC = 0. This would require some scripting, unfortunatley due to time i havent been able to do this. I was hoping i would write a python script some day, (really optimistic hehe) but i dont see this happening soon.

Although there is a lot of interest in the research and definition I made so i would like to share this with you guys! Maybe with some luck we could fix these bugs and have an awesome def that achieves this!

I've also tried to achieve the same thing using kangaroo see examples below:

The first one achieves planarity, the second achieves semi-planarity. As you see in the second video it sometimes gets a little unstable. Especially if you crank up the number of hexagons.

Ill keep you guys posted.

2012_PlanarHexDoubleCurvedSrf.ghx

Views: 2364

Comment

Join Grasshopper

Comment by Daniel Piker on April 30, 2012 at 1:29pm

Interesting research, thanks for sharing.

What kind of fairing forces are you using in Kangaroo ?

Laplacian smoothing or bending stiffness on the interior angles of the hexagons work okay for positive Gaussian curvature, but they prevent the hexagons becoming concave, which as you know is necessary if you want to tile surfaces of negative Gaussian curvature.

Some sort of fairing is definitely necessary in addition to the planarizing, but I think it should be possible to find something that allows concavity. Perhaps aligning pairs of opposite edges on each hexagon - as they do seem to stay roughly parallel in the examples in Wang et al's paper. You'll also need to allow the hexagons to vary in size, so equalization of edge lengths will probably work better than just springs.

It would also be interesting to consider how to throw in the occasional pentagon or heptagon, because this will allow you to tile more topologically interesting surfaces (otherwise you are limited to variations on tubes, planes and donuts). For example, if you try and cover a sphere with just hexagons they have to get infinitely small at some point, but with twelve pentagons you can have fairly small variation in size.

The directionality of the concave hexagons does complicate things though, and it is not immediately obvious how this might fit with some pentagons or heptagons. The papers referenced seem to just avoid the issue and deal only with planes/tubes/tori.

Comment by Mateusz Zwierzycki on April 30, 2012 at 7:27am

gaussian curvature = 0 is e.g. cylinder (via wikipedia), what youre thinking about is mean curvature, which with value = 0 represents minimal surface. As read on wikipedia : gc = 0 means that 3 angles of triangle on that surface will sum up to pi.

Comment by Andrea Lu on April 30, 2012 at 6:03am

GC = 0...it means this surface is a minimum surface?

by 雷锋

by 雷锋

by 雷锋

• View All