algorithmic 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:

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.


Views: 11634


You need to be a member of Grasshopper to add comments!

Join Grasshopper

Comment by MB on June 3, 2013 at 2:21pm

Hi Arie and everyone,

We're working on a new algorithm for generating P-hex meshes, and I was really glad to see all the interest here!

Do you have some insights as to why such meshes would be useful in general, even though the non-convex hexes are (perhaps?) less aesthetic?

Also, I was looking for a structure in nature that has non-convex hexes, but couldn't find a photo. Do you know of something like that?


Comment by Johan Rooijackers on July 6, 2012 at 4:31am

working partially not sure if it is also a GC=0 problem though.

Comment by Arie-Willem de Jongh on June 28, 2012 at 8:27am

Hey Johan and Andrea! How are you guys! Thanks for your posts. I havent been able to get back to it unfortunatley... I wish I was still a student when I had loads of time haha. I found also this attempt from Harry Lewis, This guy also uses the occasional pentagon. Check it out, it looks like he is also pretty far. Your attempts look pretty cool Johan! I also did some quick attempts using kangaroo, but it only works for convex surfaces. Good luck  

Comment by Johan Rooijackers on June 28, 2012 at 7:15am

Hi Arie and Andrea,

Good t read some activity on the P-Hexing front!

I also found the 2nd paper Arie posted, "a note on....". Where they start with a brick-patterned surface and then find four intersecting planes for the disconnected edges. I planerised a brick pattern with Kangaroo and did an ugly test for per loose plane.

It works fine for part of a torus.

Do you have the list maniplulating abilities to make it work?

I'll have a dive into Arie's definition.

Comment by Andrea Graziano on June 13, 2012 at 2:21am
Comment by Arie-Willem de Jongh on May 7, 2012 at 4:07pm

Interesting observation Andrea, I hadn't looked at it that way. We are always busy to find a solution for a particular problem that fits all, at least that is most of the time my goal. But like you said this is not always good. Its a nice example of a bottom up solution and forces the user to understand this relation between the initial input surface and the final output of the P-hexagons.

That said, Im still going to try to 'fix' this issue. I think with some scripting i can get it done. I'll keep you posted

Comment by Andrea Graziano on May 6, 2012 at 2:37am

Hi Arie,

I haven't solve too the GC=0 issue ... but I think it's not a defect. At the end it's a good example of bottom-up strategy. In general we are always looking for a solution that fits all the case studies ... but it's not always a good thing. In this case the GH definition drives the shape solution. The shape solution became a mediation between math & form geometry ... and I really like it since I think it pushes designer to understand the deelpy relations between parametric possibilities and geometries. However it would be great as well to "fix" the issue in order to have a component to be released.


Comment by Arie-Willem de Jongh on May 3, 2012 at 9:33am

Hi Andrea!

Haha what a coincidence :) I checked your vimeo, like two drops indeed! The thing I'm curious about is, if you solved the transition from gaussian curvature <> 0 to GC = 0. Where the method you and me are using doesnt apply, (it hits infinity as you might know). See image below, to see what i mean. The region of the surface were the GC flips from positive to negative at has troubles computing valid P-hexes. In the paper they 'skip' those points, but that would require some scripting i think.

Im genuinely interested in this, would be great to have a component or something like that in the end! That was my goal initially also. If you need my help further or anything let me know. Also let me know how you are progressing.



Comment by Andrea Graziano on May 2, 2012 at 4:03pm

Hi Arie-Willem,

it's great :-)

I did some weeks ago a similar GH def starting exactly from the same papers. :-)

You can find something more here:

this was the video of result:

I used your same method to define the planar points (Y technique) but starting from a honeycomb tassellation instead your isotrim one.

I'm planning to share it (still don't know if as GH def or GH component) but it still needs some cleaning work in the sorting points part.



Comment by Arie-Willem de Jongh on May 2, 2012 at 10:00am

Thanks All,

Im using springs and bending angles/hing forces. Ive tried a lot of combos: laplacian + planarize polygon; planarize polygon + planarize hing; Bending angles; tangent incircles. At some point however if the amount of hexagons gets cranked up, the system gets somehow unstable. Yes i know to achieve the planar hexagons in a region of a surface with negatice GC, the hexagons need to be concave, see image below

I haven't quite figured out how to achieve this in kangaroo. Maybe with aligning the opposite pairs of edges like you were saying Daniel. Would be interesting to put in some hepta or pentagon, to achieve more interesting results. In the papers above they focus on only hexagons, because at some point they refer to the Y-joint of the hexagon as opposed to triangles or quads as one of the most efficient joints.

Thanks for the interest!






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service