Random Linear Growth – Hoopsnake

This example shows an animation of my ‘work-in-progress’ Grasshopper definition that uses Hoopsnake to recursively perform a ‘copy by mirror’ function on a geometric form. The two examples are based on a cube and a tetrahedron. The growth is linear; expanding by one module with each step. The position of each new module is determined by a new randomly selected face of the preceding module.

I would like to develop the definition so that it doesn’t self intersect, so any comments with ideas on how to achieve this would be appreciated!