Differential Growth
Differential growth is a process where different parts of a structure grow at different rates, leading to complex forms. After watching this, I decided to try it in Grasshopper. In computational design, differential growth mimics this behavior by applying rules such as Repulsion to avoid crowding or overlapping, Cohesion to keep parts connected or within a range, and Insertion to add new elements when a part stretches too far. The algorithm I present here simulates a differential growth process starting from a set of points along a curve. All agents apply repulsion forces to each other if they are within a certain distance. Each agent checks its neighbors: it pushes or pulls them. Additionally, when two neighbors become too far apart, the code inserts a new agent. Over time, this interaction leads to growing patterns.

I developed this Grasshopper Python code in Rhino 8 (Python 3). This means it will NOT work in Rhino 7. Crv is the initial curve for the starting agents. I is the distance threshold above which a new agent is inserted. R is the range within which global repulsion is applied. K is the scaling factor for force accumulation. Q is the damping coefficient (controls how fast they slow down). N is the maximum number of agents. When Run, it triggers one iteration of the simulation. I attached a Grasshopper Timer component to repeat it. The outputs are the points and the vectors.

This implementation makes some optimizations, but it still checks every boid with every other. So that it becomes very (really) slow when you increase the N value too much. You can type in the Python component to study this code. However, if you want to download my working Grasshopper file, would you consider being one of my Patreons here? Thank you.





