Voronoi Attractor Curve

Hi all,

I’m currently working on a largescale voronoi that is organised in a manner wherein:

  • The boundary is an organic polyline and voronoi is generated from a geometry (Fig.1)
  • Within the voronoi there are inner curve boundaries that contain a higher point count (Fig 2.)

What I would like to do, is to be able to add an attractor point/curve within the inner curve boundaries, that make the voronois smaller and more dispersed as they go towards the introduced centre line (Fig 3.). I know it involves an interplay with constructing domains/charges but things go awry when trying. Find attached both 3dm/gh files and further illustrations of what I would like to do.

Thank you :slight_smile:




Voronoi Query.3dm (210.4 KB)
Voronoi_Charge.gh (37.2 KB)

ohh this is interesting :slight_smile:

dirty prototype: calculating first how much is the “max_travel” each point can travel before reaching the border of its “boundary of existence”

then each point moves in direction which is the perfect perpendicular “away” from the attractor curve
the graph allows you to play with the magnitude of the repulsion vectors based on the distance of the point from the attractor curve:

Voronoi_Charge_Re.gh (41.9 KB)


Amazing!! Thank you dearly and very nicely done. I wanted to ask a second query of a similar fashion, and apologies for continuing on.

What if you want a full dispersal with the interior within the centreline being completely gone. As shown below:

in that case I’d add a similar approach, but this time applied after generating the polygon cells:

Voronoi_Charge_Re_Re.gh (46.1 KB)


Hello again.

I wanted to query whether the full dispersion method could be applied using multiple curves linked to the same voronoi? Would you alter it to be points instead? I’ve attempted to do similar but it produces overlapping results.

this should work for multiple curves, but when you reference from Rhino the boundaries and the attractor curves you need to select them in the very same order:

Voronoi_Charge_Re_Re_Re.gh (52.2 KB)

in the above definition a single graph controls the behavior of all the areas the very same way, but you can have a dedicated graph for each “boundary+curve” (you’ll have to manually add graphs in this case)

Voronoi_Charge_Re_Re_Re_multi_graphs.gh (54.3 KB)

don’t know if having the very final curves data tree matching the original one is a requirement for you… right now it doesn’t, it’s just a flattened merge


Thank you for this and the previous answers. It was very informative and am grateful :slight_smile:

1 Like