Reciprocal


#1

Hi @DanielPiker

I saw an old thread of yours with kangaroo 1 about Reciprocal frames using pipes:https://www.grasshopper3d.com/group/kangaroo/forum/topics/reciprocal-structures-example-definition?overrideMobileRedirect=1

Is there any example on kangaroo 2?

In the example sticks also slides too much. Could you give any recommendation how to setup Reciprocal frames?

I read few papers from Peng Song.
The rotation of edges by average normals is clear for me. But how to overlay sticks cleanly not so clear:
I tried to rotate lines by line normal plane, but it is not physically correct. So I assume there must me some iterative way to shift lines.


(Daniel Piker) #2


ReciprocalK2.gh (20.1 KB)


Help! How do you build reciprocal frame structures with Rhino and Grasshopper?
(Daniel Piker) #3

As for stopping them sliding too much - adding some very weak anchors is one way that can work if you start out reasonably close to where you end up.

It should be possible with springs as well, though it gets a bit complicated adding points along each strut and keeping them straight.

I guess the ideal would be another goal similar to this line-line one, but instead of pulling together closest points it pulls struts along their axes to make a point at a given parameter on one meet a point at a parameter on the other. Potentially with the possibility for this target parameter to shift along in a plastic manner.
This is similar to something I’d thought about before for friction in knots/weaving.


#4

Thank you:)

I am wondering if line line goal could keep attracting closest pairs of lines too not only using repulsion. When lines radius is too small it would pack them.


(Daniel Piker) #5

That’s exactly what the scripted goal in that definition is doing - the standard line-line goal checks if the cylinders overlap, and only applies the force pushing them (to the distance at which they would be tangent) if they do. To make it do attraction as well, I just skipped that check, so when they’re too far apart it pulls them back together.


#6

Thanks, it seems I chose collision pairs in a wrong way. I tried to collide all adjacent line pairs but it must be two pairs per line segent. - > two goals per line. Now it works perfectly:)