algorithmic modeling for Rhino

Mechanical assembly simulation - tutorial videos and examples

I've made some basic step-by-step guides to simulating mechanical assemblies with Kangaroo:

Part 1:

Part 2:

Part 3:

The rhino file is included below

(These tutorials make use of the 'Coincident' goal, which is in the latest release of Kangaroo, available from

I'm also uploading here a couple of additional slightly more advanced example files.

(also included is the 'colourful' user object which creates custom previews for a list of objects)

Any questions or suggestions welcome.

Views: 9685


Replies to This Discussion

The files for the slider arm example


Hi Daniel,


I noticed that the sliding distance is limiting by ClampLength.


In your example 'ClampLength' is clear how it works. What a little bit confused me in this SliderArm example is the way to connect the 'Line' for ClampLength and how it relating to Lower- and UpperLimitation.

they have differently lower and upper limitation configuration between red/blue (L:10; U: 10000000) and yellow/green(L:3; H:19)...are those parameter meaning something..?


It would be nice if you could explain about that ;-)

Otherwise, awesome example!


Thanks Daniel, for the informative explanation.

Mind blown. I can cancel my SolidWorks subscription...

Haha, thanks Taz, but I think it has a way to go yet.

I'd be interested to hear from anyone about features/workflows in existing mechanical modellers you would like to see (or equally, things existing tools handle badly which you would like to see done differently).

great Job, thx!

This is terrific, cheers Dan!

Hi Daniel

I thought i could use coincident and evaluate curve component to use a point as a Pivot in a pantograph / scissor, so there would be no need too shatter a line in the pivot point. 

but it doesn't work!

could you please explain whats wrong?


Hi Soroush,

In your definition you have nothing telling Kangaroo that those midpoints are related to the curves, so as far as it sees, they are just 2 floating points which are coincident, and totally separately there are 2 lines which preserve their length.

It does not connect them just because they come from the same upstream curves in grasshopper. 

To make a scissor mechanism you need to actually split the lines at the pivot and tell Kangaroo that the segments on either side remain in a straight line using an angle goal - see the definition I posted here:

On a related note, something I was thinking of adding is a component that allows rigid polylines, or rigid point collections - they would operate in essentially the same way as the rigid bodies, but without requiring it to be a solid object.

Thanks for your reply

One question though. so why does my definition works if I evaluate the curves at end or start? shouldn't it act like evaluating in the middle of the curves?

and I guess that would make it possible to evaluate a curve and make the pivot with the "rigid polylines" component.






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service