The Model

We played with grasshopper lately. So this is a quick experiment:  a system of cylinders attracted by a polyline. The process:

  • Create a grid of points
  • Create polyline used as input
  • Use the “Curve CP” component to get the closest point on the curve for each point of the grid
  • Calculate the distance from each grid point to it’s corresponding point on the curve(the closest one)
  • Add controls: max radius, min radius, range
  • Create cylinders out of circles. Use the distance as a radius and extrusion depth


Zip file containing the grasshopper definition, the rhino file and few renders:

Note: it is saved with version 0.6.0019

Download Definition

MORPHOCODE / LAB: Polyline Attractor

11 thoughts on “Rhino + Grasshopper: Polyline Attractor

  1. Philip says:

    Hey, a definition file would be great! I’ve been trying to figure this out myself, but can only seem to get it to work with point inputs 🙁

  2. David says:


    After unzipping the file and loading the Grasshopper definition, a message appears with the following “IO generated 26 messages…” and the definition was blank. Do you know why this happened? Thanks again.

  3. morphocode says:

    Hi David,

    We guess that this happens because you are using an older version of Grasshopper.
    Note that the definition was saved with version 0.6.0019 of the plugin, which is the latest build at the moment.

    Cheers 🙂

  4. stu says:

    this is good.
    but how would it be possible for the density of the circles to be ON the curve and decay as they move away? a “reverse” attractor?

  5. morphocode says:

    hi stu,

    the density of the circles could be ON the curve.
    It’s all about how you define the relation between the distance from the curve to the cylinders and the radius of the cylinders

    To invert the density you have to use multiplication instead of division and play around with the range parameters

  6. davidd says:

    hi the link of definition say: You must be logged in to download this file.

    please again 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *