# Agent based pattern- growing line

Hi,
I found this project very interesting.

It is based on differential growing line. I would like to recreate it using Grasshopper. Do you know which plug-in should I use in order to get the same result. Looking at the video they use grasshopper but I think they are using also specific plug-in in order to control aspect as:
-increasing of the length of a line
-increasing the speed of the simulation
-control the distance between the different part

My question is which software or plug-in I should use to achieve that ?

thanks

It seems they are using a Python script (you can see it both when Grasshopper is visible in the video and also at at the 0:54 timestamp). There might be plugins doing something similar, though!

If you want to customize it (full control), you will need to do it from code. If not, you can use native components and Anemone, or Kangaroo and Anemone, with plenty of room for customization but much more difficult to handle. I suppose that some agent based plugins also allow this, but I’m not sure that all of them allow dynamic topology systems like this one. If I don’t know how to program, I’d use Kangaroo Zombie + Anemone.

Yes, I am trying to understand the mathematical process behind it. For now I just found this explanation:
“In brief; we start of with a number of connected nodes in a circle. Gradually we introduce new nodes on the line—prioritizing segments where the curve bends more sharply. Over time the curve grows increasingly intricate, but it never self-intersects.”

First you need to have experience with the particle systems. The nodes act as such and their movement depends on the forces applied to them (they try to stay at a distance (or 0 distance) from their neighbours? that distance increases with time? they stick to a surface? they are influenced by fields?..) and how they collide with the other nodes. All this simulates the membrane behaviour.

On the other hand, there is a growth function, which decides if a link (two connected nodes) should be divided (adding a new node in between). This function can be based on many different things, such as curvature or if they have a separation above a threshold, or using a system of hormones, or based on distance to geometry (such as the mouse cursor) or even randomly.

Similar results can be achieved in different ways. It all depends on the balance of forces with respect to the growth function.

I don’t know what’s your level of comfort with Grasshopper and programming in general. But I’d recommend having a look this C# workshop http://icd.uni-stuttgart.de/?p=22773 . The first project is a very similar.