algorithmic modeling for Rhino

I've just posted on Food4Rhino Kangaroo release 2.2.1

The biggest change in this release is the inclusion of 6 degree of freedom nodes.

Until now particles always had only position (3 degrees of translational freedom).

Now they can also optionally have an orientation (3 degrees of rotational freedom), which are updated by the solver at each iteration.

This makes possible new types of goals based on these orientations. The first example of this is a more robust rigid body component, and collision between pairs of rigid bodies. These can be any closed solids, and do not need to be convex.

In coming weeks I will be posting more examples of Goals which make use of the 6dof nodes, including some scripted ones.

Views: 1727

Replies to This Discussion

great! cant wait to try new Features!!

Thx Daniel!

Thanks your update , I am waiting the new examples. :(

Thanks, Daniel - as ever! 

Quick question - is the entire suite of mesh processing tools and utilities from 099 carried over, or just a portion?  I've installed 221, so this is just a check to be sure things aren't missing on my machine. 

Hi Nick,

Not all of the utilities from the old version are carried over.

Some are redundant now, since their behaviour is easily achieved with default GH components

(duplicate points and interconnect points).

Some of the user objects I didn't convert for K2 yet. Also I haven't decided yet whether to include MeshMachine in K2 or have it as a separate gha.

Thanks Daniel, that makes sense. 

One thing that I've also found to be very useful from the old version is that handy little C# component within the Shell cluster.  I've copied it out to simulate bending in triangle meshes in K2.  Perhaps this would be a useful utility?  Just a thought. 

Hello Daniel,

Thank you very much for the amazing features of the the new Kangaroo! It is great for me since I am currently doing bending simulations of beams for my PhD. I have checked your example on GitHub and I was wondering if it is possible to bend custom shaped beams (as Mesh or Brep) which can act as rigid bodies. 
In your example you work with polylines, which are translated into meshes after the solver. What do you suggest as a process if I want to explore collisions between different beams? Do you have any example on that? Any example in 2D (representing the longitudinal section of a beam) of 3D (with custom shape meshes or Brep) will be very much appreciated.



Hi Efilena,

Do the examples here help? there are a few different types of collision shown:

Hey Daniel,

I have a question regarding the use of the 6dof supports. For some reason, the nodes to which I'm assigning the supports act as "free nodes" and I cannot figure out why. When using anchor points, it works quite well. 

If you could take a look and tell me what I'm doing wrong it would be greatly appreciate it.

Thanks in advance

Hi Gerard,

A beam element has 4 input planes - a start and an end frame, and a start and end node.

If nothing is supplied for the start/end nodes, they default to xy aligned planes with their origins at the ends of the beam.

Also setting the frames for your supports as xy aligned lets Kangaroo know the beam and the support act on the same node.

I realise this appears odd at first, but I'll try and explain why it is set up like that...


Trying to explain more clearly - 

Here's an illustration of 2 beams meeting at a node. The beams here are scaled down to show the junction more clearly, but in reality their ends would be coincident.

The frame in the wireframe cube in the middle would be the EndNode of one beam, and the StartNode of the other. Because they are the same, this would result in a fixed angle connection between these two beams.

The actual orientation of this node is arbitrary - as long as it is the same for both beams they will be joined. The orientations of the beam ends are maintained relative to this frame.

Hello Daniel,

Thank you very much for the explanation. Its working perfectly now!

In that direction I have a question regarding the use of beam elements in Kangaroo2. To get mysefl familiar with it, I'm modelling a simply supported beam and applying a concentrated force in the middle of it. Then, I'm comparing the deflection given with the analytical solution. 

What I've realized is that when changing the beam elements Ix, Iy, GJ parameters, barely no change in the result is made; while when the E modulus is changed, then yes we observe a difference in the results.

I have been spending sometime over the script and I have yet to find out what I'm not doing correctly. 

Consequently, if you could provide me some documentation on how the beam elements, it would be really useful.

Thank you and best regards. Gerard






  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service