Hi There,
I was trying to make a simulation of the tightening of a knot in a rope, using Kangaroo. I have been moderately successful, but have a solution that is very fussy to parameterise correctly to get the model to resolve properly.
Here is a model of a Figure-Of-Eight knot (which I use for rock-climbing):
FigureOfEight.1.gh (36.7 KB)
The model tightens up nicely, to a given rope radius, with a delightful shimmy after some time as the initial approximation finds a tighter conformation (something a real rope also does, when the rope is tensioned).
However, I am using the Kangaroo Collision component, with a series of line segments as input. If the line segments are longer than four-times the collision radius, the rope tends to pull through itself; if the line segments are too short, the line repels itself, resulting in a messy kinking in the line:
I would rather like to increase the number of line segments, and increase the rope diameter, but these aims are in conflict. Long line segments result in local minima, that are not escaped by the simulation.
I saw a very old thread on the old grasshopper forum (Rope-Length Minimization with Kangaroo) which appears to be discussing a Kangaroo 1 component that does actual line-on-line collisions. The current Kangaroo Collision component does accept lines, but the collisions appear to be modeled by colliding spheres centred on the end-points of the lines, rather than colliding the lines themselves. Is there a current Kangaroo component that would give this effect?
Does anyone have any comments on the whole approach to knot minimization? I would like a solution that is less fussy over parameters, where I can bump up the number of line segments and the radius and it ‘just works’!
Cheers,
Bob