Complex linking problem. How do I terminate and constrain this chain?

I am designing and building a very large (12’ wing span) ornithopter flapping mechanism for a museum. Mechanically, I know exactly what to do, but the client wants to see animations as proof of concept. I am familliar with IK and animations, so I was able to fumble through to near completion, however I cant figure out how to set up multiple contraints on one object. I have attached a pdf diagram of what I am trying to achieve.
Does anyone have some magic insight? If i link the secondary arm to the end link object, it breaks the previous link to the primary arm.

As far as I can figure out your diagram you’ll probably need an auxiliary point (or line) object at the end of the secondary arm, made child of the latter hence working as if it were part of it. This auxiliary point (line) can then be constrained to the end-link-object. When this is a polyline (or a surface or a volume) you’ll probably need a second auxiliary point (or line) being child of the end-link-object to define the exact spot of linkage – if not the constraint will wander all over the polyline (surface/volume).

Sounds complex!? Please have a look at a video tutorial concerning these matters on

If you like you can also post or mail me ( the model itself (or a schematic model) to be sure my interpretation of your diagram is correct.

Thanks for replying Luc.
I tried using a proxy object at the pivot point, but using it as a constraint caused the first anchor point to error out.
I sent you the Rhino file via email for you to look at. Once we get it figured out, I will post the solution here so everyone can benefit from it.

Jay D

I realise you are asking about doing this in Bongo, but I was interested to see what it would be like to set this up in Kangaroo/Grasshopper:

Things work a little differently there, as there is no parent/child hierarchy in the constraints - they all get applied simultaneously. (17.6 KB)
OrnithopterLinkage.3dm (26.1 KB)

1 Like

Super cool Daniel!
We played around with Kangaroo early on, but couldn’t get a good function. My team mates are pulling your grasshopper definition apart to figure it out.


Hi @DanielPiker - what did you use to get the path of the wingtip to trace out like that?

@Jay_Delbeke - great. Let me know if anything is unclear.
@ssommerv - I used the ‘trail’ component from Kangaroo 0.099 here, but you could also achieve the same thing with the standard grasshopper component ‘data recorder’.