How to grow/expand curves (polygons) until touch each other

Hey Guys!
I hope to get some help here. I would like to grow or expand curves (with simulate the boundary of forest areas) as long as they touch each other. This should simulate the growth of these woodlands to show the expansion of the green area in some areas of Ethiopia.
What are the best and easiest grasshopper components to do this?

Thanks for your help!

I think you need to provide more informations to a simulation which could be quiet complex.
Should the simulation stop as soon two forests intersect?
Should the growth of two forests stop as they intersect and the simulation still run on the other?
Should the growth in the direction to the intersection stop, and still go on on the other sides?
How your input boundary look? Polylines or curves?
For the first two questions, you could use offset or scale, for the third, you need something more complex, which modifies the segments individually. You may want to convert your boundary to a polyline with smaller segments. For example: one forest is a triangle, the other one rectangle. They may intersect at their corner, but the growth should go on, till there’s a line between them both.

May have a look at this:

What are the best components to do that?
There‘s no single component, neither a best one. Depending on your parameters.
I would suggest using anemone to loop the growth. You could also use kangaroo to simulate the collision of the boundary curves.

If you have a specific question on your script, it will be easier to help you.

I uploaded the Grasshopper file which I have to far, but I think I have to define each forest (hope you can see them on the map) block on a different curve component…

Basically I would like to let the different forest “island” grow as far as they create some woodland structure. A possible parameter might be, that for the first, they geow double their size or at least until the touch other woodland sections…ForSeriti-satellite

It looks like you didn’t internalize the geometry properly - but you may be looking for a voronoi diagram of the forest boundaries? (15.0 KB)


Never seen using voronoi in such manner.

1 Like

Hi @Pilsprinz,
Having two daughter-in-laws from Addis Ababa this post caught my attention. :slight_smile:

I would consider “implicit surfaces” for this. This is due to the fact that you actually want “organic growth” and, this is important, so many different growth factors can easily be incorporated into the “strength” or “energy fields” of the points forming surfaces and it’s boundaries.

Think of points with “strength” or “energy fields” normalized to values between 0…1 with diminishing strength according to radius, like so:


When two or more points are close and thus contributing to a certain strength (in an area) then you have a surface based on “intersecting forces”, like water drops adding up to gradually bigger puddles.

Jumping directly past the surfaces and their boundaries (works fine also in 3D) - consider what the “forces” making upi the surfaces could consist of (apart from the distance to each other) where every factor is normalized and added to each point’s “forrest growh strength potential”;

Distance (to next point)

  • Existing plants
  • Soil quality
  • Rain / Period
  • Height above Sea level (mesh.Vertex[ix].Z …)
  • Erosion
  • Time
  • … you name it.

= Growth potential at each point = implicit surface.


When summing up all the factors at each point, combining explicit surfaces (GIS) with your scaling factors and play it with time, then you (implicitly) have the growing surfaces and its boundaries in all directions. Or growing deserts in the Afar region) :slight_smile:

Changing in “realtime” any of the factors making up for the “strength” of each point to make live simulations demonstrating the relative influence of these factors and… possibilities are endless. Have a look at the first part of this clip (three topics, starting with Implicit Surfaces):

Somewhat related, but perhaps not an introduction (the concept is dead simple, an trees can be obscured by entire forests…)

Hope this gives you some inspiration.

// Rolf

1 Like

It is the correct use of Voronoi, not for facades :smiley:


Yep, from the wiki article:

  • In ecology, Voronoi diagrams are used to study the growth patterns of forests and forest canopies, and may also be helpful in developing predictive models for forest fires.

“A Voronoi tessellation emerges by radial growth from seeds outward.”

Interesting how lots of people in the design/architecture field seem to only know it for making funny-looking holes :smiley:

@RIL implicit surfaces sound like an interesting approach, I can see it happening with two surfaces (positive and negative “fields” → find the zero-value isocurve boundary) but it seems difficult to extend to multiple forests unless there’s some additional trick involved?

The points mentioned above could be interpreted as using different metrics instead of Euclidean distance for the Voronoi diagrams, I wonder if there’s a GH plugin out there that does this…


Thank you all guys! You helped me a lot!
Attached is a sketch of the basic idea I like to develope. I’ll try to do that with your ideas :slight_smile: