Collision of multiple rigid body 3D lines

Hi all,

I’m working on a nesting script to ‘pack’ a series of self-similar parts for 3Dprinting on an SLS machine.
Currently, the idea is to use the “Collider” node in Kangaroo and set the radius of the lines for collision. Though I’m mentally stuck on a way to fix each set/group of lines together to act as a rigid body, so that when they collide with another set/group of lines, their local angles between each line remain fixed. I attempted the ‘AngleSnap’ node but I’m unfamiliar with how or if it can work on lines that are not in plane with one another
Basically, I’m trying to simulate the game of ‘Jacks’, except my jacks are acting like jelly rather than steel. Any advice would be great.
Thanks. (33.7 KB)

It seems I was able to ‘solve’ the issue by using the ‘RigidPointSet’ node. I should have looked through the available options a little more before posting.
Though I see I have a “Data failed from Goo to Curve”, coming out of the Kangaroo solver. Which is only thrown when I use the ‘RigidPointSet’ node. Might someone know (Daniel) why the data type isn’t being wrapped properly when the ‘RPS’ node is being used? (18.8 KB)

Each goal object will output “something” after kangaroo solver.
Each RigidPointSet goal will result in an array of Point3d (only for the bouncy solver though…) , that is the Goo…
You want to use the “Show” goal, as its only puropose is to “transform” your geometry through the simulation (any point/vertex of your geometry that is compatible with the particles of the simulation, will move accordingly).

Bouncy Solver will mess up (flatten) goal tree structure, and so usually you need to do something like this to rebuild it:
2022-07-19 02_22_32-Window

With the normal Solver this is not needed, the Kangaroo output (O) will preserve the original GoalObjects tree structure.

RigidPointSet node have a second output: it creates a plane for each point set, for each point “group”.
You can pass that plane to a Show goal, so Kangaroo will output a re-oriented plane in the outputs.

This way you can create your heavy geometries before the simulation, and only orient them at the end: (26.8 KB)

1 Like

Thanks, Riccardo,

This was a very elegant solution to the problem at hand and clearly described. You knew exactly what I was after.
Really appreciate it.

3D print nesting see this topic too. Ive been working on a similar problem