Hello! I wish to make a voronoi diagram with varying voronosity i.e., for example, changing from a 2D array of hexagons (honeycomb-like) to one with more and more irregular shapes. Any advice on how to achieve this? I have seen in a paper that they change the regularity of the seed points, but I am not sure how to do this.
Thank you!
the best tool to use here is grasshopper. you need to create a 2d array of points that coincide with the centers of the hexagons in the honeycomb pattern, pass that array to the voronoi battery in grasshopper, and it should generate a 2d voronoi that is identical to a honeycomb pattern.
from here, the trick is to insert some logic that modifies the position of (some of) the points (slightly) before passing them to the voronoi battery.
noise v0.gh (39.6 KB)
Not Voronoi. Any hexa component will work, no need plugin.
Sorry, you need Tundra
after the hexa grid, extract centers with “area”, pass those to “bounding box” to get a region, and then pass the centers and the region to “voronoi”. apply your noise transformations on the centers.
I cannot get Tundra to work, especifically the Constant, SimplexPerlin and ImprovedPerlin. I think it might have to do with there not being a version for Rhino7. Is there an alternative that I can use?
graft the centroids (right click and select graft) pass that to both the bounding box and the voronoi
next step is to insert some logic after you get the centroids
sorry i meant flatten
This gives me an error because the box is supposed to have nonzero height/width.
my bad, i meant flatten, not graft
That still gives the same error.
I think there’s widespread confusion about what a Voronoi diagram actually is.
These are all Voronoi diagrams:
It is simply a division of the plane into regions depending on which point they are closest to.
There’s nothing in this definition about how these points are distributed.
However, people have come to associate the term specifically with irregularly distributed points.
So what I think you’re really after is the Voronoi diagram of a distribution of points which becomes more irregular in some areas.
Here’s an example starting from a triangular arrangement and adding a random vector scaled by a multiple of the X coordinate. This scaling factor could come from any other way of associating a number with each position.
Voronoi_randomise.gh (7.5 KB)
Note that this whole thing is a Voronoi diagram, it’s no more ‘Voronocious’ on the left than the right.
i also forgot to mention the group battery. apologies. here’s the reference image
notice how the centroids output has an arrow down. that’s the flatten flag
Ah I see, thanks a lot for the clarification!
Instead of having a gradient of the distribution of points (from regular on one side to irregular on another side), how can I change this definition such that I have a constant irregularity all over the region?
Also, do you know if there’s a way to quantify the irregularity of the cells?
Thank you for the help! Works now!
If you don’t want the gradient of irregularity, you can set the multiplier in that definition directly with a single value
As for a quantifying irregularity per cell, you could use something like
(longest side length) - (shortest side length)
Voronoi_randomise_irregularity.gh (13.9 KB)
That’s great, thanks so much for your help!