Grasshopper

algorithmic modeling for Rhino

I'm wondering, how crazy difficult it to find a clean solution to obtain a simple planar hexagons on a freeform surface with grasshopper. [ minimizing the distortion as much as possible ] After a few years of Grasshopper sometimes I feel a complete noob ! :) [ I read some papers about this particular issue - Tangent planes intersection, as well, however it seems really hard to obtain a nice solution, I already tried with kangaroo, but the hexagon distortion it is somehow exaggerated ] If anyone knows an interesting solution to solve this issue, please let me know.

http://research.microsoft.com/en-us/UM/people/yangliu/publication/A...

Views: 5162

Replies to This Discussion

Do you have an example of the kind of surface you want to panelize, and how you are generating the starting non-planar tesselation?

Usually the hexagons will need to change shape considerably in order to become planar, and the key to doing this in Kangaroo is to choose the right goals to only allow them to distort in the desired ways.

Thank you Daniel,for your prompt response. I Already tried to figure out with the sample developed be Rodrigo Medina from ThinkParametric, it's in fact and interesting approach, however the result achieved in this particular case, It is not what I imagined. so, I follow one of yours previous examples as well. I find interesting too this paper, but as I see so far it´s difficult to manage the tangent plane intersection with the objective to minimize the hexagonal distortion. : https://www.graphics.rwth-aachen.de/media/papers/VTPI_slides.pdf

Thanks in Advance. 

Attachments:
Piker's Kangaroo 2 to the rescue? Here I did planarization with a different tiling topology, but it may work for hexagons too:

http://www.grasshopper3d.com/forum/topics/non-twisted-box-or-module...

The trick was to mellow the system out with extra minor goals so it didn't kink into a mess.

Thanks Nik, I explore your work already in my research, unfortunately it doesn't work. I believe it's very difficult to obtain a nice clean result, I guess it because of the values of the gaussian curvature of the double curve surfaces which will always lead into an exaggerated distortion of the planar hexagon. This issue are just driving me crazy :). I will keep trying.

I wonder if planar surfaces could better adapt to each other by adopting curved edges instead of hard coded lines?

the result would not be the same? or do you mean  polylines like dual mesh, - I already try with dual mesh, and the result it´s the same even when I  equalize the edge lengths.  So I try reather the initial hexagon pattern, to design a triangular pattern, a point by it baricentry, or a circle inside of a triangl, ... well it just doesn't work. I think it's in fact a geometric problem rather than a design process problem. I mean, we could obtain a similar result of the initial surface, but never with too much accuracy,mainly if we work with surfaces with a large curvature.

by the way, @Arie-Willem de Jongh developed in fact a nice approach, and gave a nice hint here , but the problem it still remainds, surface with a large curvature, with a disparity of number r of columns and rows will always collapse the design. http://www.grasshopper3d.com/profiles/blogs/planar-hexagons-on-doub...

They planarize with Kangaroo 2 but it's both ugly and also has kinetic artifacts where some faces fold over on each other even though the result is a single polysurface after a join in Rhino.

Attachments:

Nik, I will  follow your tips as well the hint that daniel gave us. let's see how  far I can deal with that issue. Thanks for your interest.

To expand on my earlier point about goals to restrict the distortion - in cases where the starting tessellation is already pretty close to the right one it is sometimes possible to use solely planarization goals and get a good result.

However, for many surfaces the vertices will need to slide tangentially across the surface a fair distance from their starting location to find a tessellation which is possible to planarize (especially if the surface has regions of negative Gaussian curvature, for which planar hexagons are only possible if they become concave). This is a genuinely complex geometrical problem, for which all state-of-the-art approaches have their shortcomings, even before getting into implementation or software issues, so don't feel bad that you are finding this hard in Grasshopper!

If it is not guided by something more than just the planarization, this sliding over the surface can quickly lead to ugly, irregular or even self-intersecting panel boundaries. Therefore it helps to have some other 'regularization' goals too.

I think some promising options for these are:

-Clamping the angles of the hexagons - by preventing any of the internal angles of hexagons going below some threshold (say 15°), the chance that they become self-intersecting should be reduced.

-Clamping the lengths of the edges to stop any getting too close to zero.

-Keeping opposite edges of hexagons close to parallel. I notice that in 'nice' looking planar hex meshes, most panels have this property, including the concave ones, so perhaps worth exploring.

-Laplacian smoothing of a triangular mesh, which you somehow attach to its dual hexagonal mesh. Since standard uniform smoothing doesn't work with concave hexagons, I think adjusting the primal could be the way to go.

With any of these, their strength can be set moderate at the start, then gradually reduced to zero so that they guide the mesh into a good shape without compromising the planarity of the final solution.

Also - while I do think such regularizers may be able to produce good planar hex meshes even with a fair amount of tangential sliding compared to the initial tessellation, at some point one probably reaches a limit where the only way to keep a nice mesh is to make some topological changes - ie remeshing by flipping edges. Again, it may well be better to maintain a linked underlying triangulation, and make these topological changes to that. Exactly how this primal-dual pair are linked has a lot of options though.

Thank you Daniel for your clear explanation about this issue, I totally understand and I will follow in the next days the hint that you gave me. I will attach a picture with the best result I got so far using Kangaroo 2.0 .  With the time I have spent work around with this issue, I understood  that as much bigger the the curvature, of the surface both positive or negative, the larger the distortion, or in other way if we prefer to minimize the distortion of the hexagon, we lose the the relation with our initial shape, so there is a choice that i need to make. Or I accept the distortion of the hexagon relating with the initial shape, or otherwise I minimize distortion of the hexagon but I sacrifice the shape that host the surface. Kind Regards, Filipe Reis. 

Hey guys, nice features in the new kangaroo 2 there. I need to have a planar hexa mesh on every freeform and your ideas in this thread are good basics. Unfortunaly i didnt get any handsome results.

Do you made any further studies with those first steps here?

Greetings,

Hendrik

Hello Daniel,

I am working on a project to make buildings with an hexagonal plate shell structure. I started with Kim's definition from Landesgartenschau Exhibition Hall.
I am trying to clamp angles to make the plates' shape more hexagonal. Would you think of a way to do that ?

Thanks !

Attachments:

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service