algorithmic modeling for Rhino

How to merge a Hexagonal pattern with a Voronoi pattern?



I am working on a facade pattern definition, and I could use some help, as I, frankly, don't know what I am doing.

I am after a facade pattern which is a blend between hexagons and voronoi. Basically, let's say we have a square surface, I want this square surface to be of hexagons at the left part and gradually these hexagons transform into voronoi at the right part of the square surface. So, I want a gradual change.

Now, I want to use this definition in conjunction with attractor point.


To the left of the image, there's a hexagonal pattern with an attractor point, to the right, it's the same hexagonal pattern but distorted. How do I blend these two? 


Here, I manually tried to merge the two different geometries, just to give you an idea of what I am trying to achieve. You can still see that there is a seam where the geometries meat, which is not desirable. I want gradual change between the two different patterns.

Thank you






Views: 28802


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

Join Grasshopper

Comment by Leonardo Nuevo Arenas on February 11, 2012 at 12:43pm

Comment by LINE on April 13, 2011 at 1:07pm

I have in General Discussion

Discussion one post with what I need, I can not send you one pdf file, please have look is in page 1 and you can see the pdf file.

Basiclly what I need is do voronoi not with Hexagons geometry but squares geometry.


Comment by Kyle Culver on April 13, 2011 at 12:54am


Clarify what you mean by square voronoi?  What are you trying to achieve?  That may help to find an answer.

Comment by LINE on April 12, 2011 at 4:00pm

 Hello Ola Jaensson

Can you clarify your idea to do the deformation voronoi.

Is possibel to do square voronoi in one closed 2D curve



Comment by biboarchitect on April 9, 2011 at 10:35am


using Ola's & kyle's ideas.. after deforming you grid of points.. you can rotate each side of the hexagon edge from its mid point with an attractor point from one side of the grid to the other to achieve the transformation..( and as Ols mentioned.. with no deformation of points a new hexagonal gird will be created..)

Comment by Marios on April 9, 2011 at 9:51am

Thank you everyone for your answers, you've been helpful :)

Comment by David Rutten on April 9, 2011 at 9:40am

You can only interpolate two objects if they are of the same type (or same topology). For example, I can interpolate two numbers (1.5  ---  6.2 = 3.85) and two colours (yellow  ---  blue = green), but I cannot interpolate a colour and a number (2.5  ---  red = ?).


Similarly, it's possible to blend between two curves, even if one is closed and the other open. A closed curve is nothing more than an open curve with its end-points in the same place after all, so the topology is the same. However, it might not be possible to blend between two sets of curves. If one set contains more curves than the other, then you cannot really find a point nicely in between.


Ola and Kyle's suggestions are excellent ideas as they circumvent the whole interpolation problem.


Starting from a file made by someone else is always tricky. There'll be parts you don't understand and that will prevent you from comfortably adapting and debugging it. The same problem occurs if you have to work with code someone else wrote.


I think the best way to approach this problem is to recreate the logic from scratch. You might not get all the way there, but learning how to get 25% of the way there on your own is much more worthwhile than taking work by others and combining it without understanding it. And if your teacher disagrees, he knows where I live :)

Comment by Marios on April 8, 2011 at 10:55am


I found a definition on the Internet, where, together with my tutor, we changed it a bit, and we have actually got come somewhere. We managed to create hexagons with an attractor point, and the hexagon grid points are distorted the nearer they get the attractor point, and this creates a voronoi effect. 

However, there are some wrongs with the definition, and frankly, I don't understand it. Perhaps someone could have a look at it? I posted the defs to this blog post.

Thank you!


Comment by Kyle Culver on April 7, 2011 at 11:30pm
First I'd explore the geometric relationship of the point location relative to the voronoi output.  You'll find after a bit of exploration that voronoi can become quite predictable and controlled. Hexagonal forms can be created using a voronoi method by establishing a point grid that contain a uniform alternating shift by either row or column.  Then a create a progression of random points until satisfied.  Sorry for the reiteration! I just read ola's comment.  Best of luck!
Comment by Ola Jaensson on April 7, 2011 at 10:07am



One suggestion:

Create a HexGrid and distort the point output according to taste before feeding it to the voronoi component.

If undistorted, the HexGrid centerpoints will recreate the hexgrid when fed to the voronoi component.

Or did I misunderstand your question?






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service