Kangaroo 2.0 - Now out of the pouch and available for testing!

A few days ago I uploaded the first public work-in-progress version of the new Kangaroo (http://www.food4rhino.com/project/kangaroo)

I'm really excited to share this new release - which makes Kangaroo significantly more powerful and flexible.

This is a complete ground-up rewrite of both the core solver and all interface components, with several key improvements:

  • Greatly improved stability and convergence speed, overcoming previous limitations on stiffness values.
  • The old Force objects have been replaced with Goals. These encompass forces, loads and constraints in a single simple system.

  • Goal types for many new applications, such as Areas, Length clamping, Length and Angle Snapping, Collinearity, Coplanarity, Symmetry constraints, Rigid body assemblies, plasticity and more...

  • Creating goals is now simpler than ever, allowing new ones to be added quickly as needed. New custom goals can be written in the Grasshopper scripting components and modified even while the solver is still running!

  • Several of the more awkward and annoying aspects of the old interface have been improved - No more need to reset whenever goals are added, removed or modified, no more need to flatten the goals input, no more need to keep starting and stopping the timer.

  • Direct dragging and anchoring of points in the Rhino viewports with the new Grab tool.

  • The solver library is now separate from the Grasshopper components, to allow power users and developers more direct control and customization. It can be referenced from Grasshopper's VB/C#/Python scripting components, or from PythonScript/RhinoScript in Rhino.

  • The full version is free, and allows both commercial and non-commercial use

Please bear in mind that this is still a work-in-progress release - there are likely still some bugs and features which are missing or not working as they should. In time this is intended to grow into a full sized Kangaroo to completely replace the older version, but it is not there yet (hence its earlier codename 'Joey' - a young Kangaroo), and there are still some features from the old one not yet in this version. Therefore it is still recommended to install both together.

Also, all features may be subject to change in subsequent releases, and particularly if you start scripting with this library, be warned that there may still be breaking changes to the API ahead.

Because so much has changed from the previous release, much of the previous documentation/tutorial videos etc. no longer applies to this version. There is a pdf with some usage notes and descriptions of the existing goals included in the download, and the plan is to expand this into a more complete manual over time, as well as adding more tutorial videos. I appreciate your patience as the documentation is updated. Please continue to post questions/requests/bug reports in the forum of the Kangaroo group here.

Many people have made it possible for Kangaroo to get to this point. In particular for this release I'd like to thank: Will Pearson, Steve Baer and David Rutten at McNeel, Anders Deleuran and Dave Stasiuk at CITA, the LGG group at EPFL and Masaaki Miki. Thanks also to those who tested the pre-beta version and gave useful feedback - Andrew Heumann, Tomek Gancarczyk, Robert Vierlinger, Brandon Clifford and Wes McGee.

Thanks also to McNeel for their support, which has allowed me to devote the time to develop this new version.

Finally a big thank you to all of you, the Grasshopper community, for your continued enthusiasm, stimulating discussion, and for keeping this fun.

Enjoy!

 

Daniel

  • Daniel González Abalde

    I think most of this community is also excited with this new version. It's huge, thank you very much. The best thing for me, apart from its potential, is that when I touched kangaroo for the first time, it seemed too complicated the passage between "I want to achieve" and "how should I do it." Now everything seems clearer, and use of the mouse becomes complicated in fun. :)

    Could you post some example of using the library in a ghscript component?

  • Daniel Piker

    Thanks Daniel,

    There is a CustomGoal and a CustomIteration example in the download, but I also just uploaded another here, showing use of mesh topology to assign particle indexes directly.

  • David Stasiuk

    Thanks, Daniel. As you know, both of the current primary experiments underway at CITA have been made possible through your not only giving us access to Joey, but also from the support you've given along the way in terms of ideas, process flows, and better scripting logics, so I'd like to give especial thanks back to you for this (and of course, Plankton as well!). It's been a real privilege!

  • Martin Siegrist

    Thanks for your work Daniel!

  • Daniel L Nay

    Thank you so much for your work! Amazing as always. Very excited to explore the new features!

  • Riccardo Gatti

    LIKE IT!!!

    keep working we need it!

    Thanks to the All team.

  • Carlo Beltracchi

    This food is so good for my Rhino. Thank you :)

  • Manuel Muehlbauer

    Really great. Thank you !!!

  • Andrei Raducanu

    Hey, is the shell component from the old kangaroo going to appear in the new one as well or is there some easy workaround to get that effect? Thank you!

  • Daniel Piker

    Hi Andrei, there is a shell example with the download, and the shell component in the old kangaroo is actually a cluster/user object that creates a hinge from every internal edge. I will make a similar collection of user objects (for common combinations of goals, such as applying length constraints to all the edges of a mesh) for Kangaroo 2 though

  • Andrei Raducanu

    Thanks Daniel!

    Didn't know that was a cluster (i'll check next time). I adapted it, no biggie.

    I didn't yet get the result I wanted unfortunately. If anyone wants to help, please enter here http://www.grasshopper3d.com/group/kangaroo/forum/topics/trouble-be...

    Thanks!

  • heriberto

    Hi Daniel Piker,

    Great work with the new version, but I have a question. How can I display or know the loads in this version? Thanks

  • Ivan Castillo

    Hi, is kangaroo 2 the same as 1? why version two has less comands?

  • Omar Elnagar

    Hi,

    I have been working on a research project regarding gridshells, so mainly I used kangaroo 2. I am confused however what the strength of lets say the 'Line' or 'Plastic Lenght' component represents. In other words, do they have units? 

    Essentially, I want to give the grid lines material and cross section before applying to to Kangroo and then monitor how different materials form. 

    Could you please help on this matter?

    Thanks.

  • Dima_Fedchun


    Hi! Need yours help in grouping boxes. How to make more compressed layout with this boxes? Without empty space in center of this group? 

  • JASON06

    Has anyone known how to convert kangaroo1 component to kangaroo2?