algorithmic modeling for Rhino

Kangaroo 2.41 - including beams and curvature continuity

The big new feature here is beams. This was one of the main motivations for adding 6 degree of freedom nodes, and something I've been meaning to include in Kangaroo for several years.

Before, with only 3 degree of freedom nodes, it was very hard to model bi-axial bending behaviour and torsion. Now, when each end of the beam can have a constantly updated orientation, the relative rotations of these can be used to calculate the deformation.

Getting this working in the new projection based solver has required some modifications to the standard force-based approach to these beam elements, but the underlying principles are the same as in the work of Dr Chris Williams at Bath University.

See some more demos here:

This feature is still under development, and currently the behaviour is  only qualitative (the calculation does not yet include the multipliers for different stiffness in each axis due to the section shape). However, I wanted to share it in its current state to give an idea, and it already allows you to interactively see bending moments in different axes and torsion. The intent is to later include the full sectional stiffness, so that these beam elements can also be used for actual quantitative behaviour.

Also included is a brand new component for preserving G2 continuity between a pair of NURBS curves while interactively moving control points:

There are also various other tweaks and additions, including a SplitAtCorners utility, a Cancel key (holding down Control should stop iterations for slow simulations), and Rigid Bodies can now work directly with meshes, not just Breps (meshes are faster).

I'll be putting more example definitions of these new features in the usual place soon:

and will update in the comments below when I do.

As always, I'd love to hear any feedback, and especially ideas for new goals or features you'd like to see in the next release.

Have fun!

Views: 4952


You need to be a member of Grasshopper to add comments!

Comment by Cyril Douthe on October 22, 2018 at 10:40am

Dear Daniel,

The addition of 6 dof particles is very promising for the applications that we develop in the lab (see We have been starting using the script interface for mesh rationalisation and we were wondering if there exists any script example using 6dof particles.
We have found that the particle.position is complemented by a particle.orientation but could not find what replaces the move function. Could you give us some help on that?

Thanks a lot.

Comment by Jon on October 27, 2017 at 2:50am

again, amazing!!

Comment by Eero on October 26, 2017 at 11:01pm


Comment by Daniel Piker on October 26, 2017 at 12:32pm

Hi Phillip,

No - the continuity component should work on curves with anything over 3 control points.

If you post your file I'll take a look (probably best to do this in a kangaroo forum discussion rather than in the comments here).

Comment by phillip on October 26, 2017 at 6:24am

Hi Daniel,

great stuff! Thanks a lot.

It seems like the continuity is only working with a curve consisting of 4 control points. Is this right or am I missing something?

Comment by Martin Siegrist on October 22, 2017 at 9:28am


Comment by mark zirinsky on October 22, 2017 at 7:38am

Absolutely fantastic!

Comment by 未知 on October 21, 2017 at 7:14pm

Thank you. Look forward to more cases

Comment by Daniel Piker on October 21, 2017 at 6:48pm

Some basic first examples for the new features here:





  • Add Photos
  • View All


  • Add Videos
  • View All

© 2023   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service