Simulating interlocking blocks bending using Kangaroo

Hello people,

I have a 3D model which is composed of an assembly of hexagonal-shaped interlocking blocks.
The problem is whenever I start my Kangaroo simulation the block simulation seems to not follow the logical physical movement.

I designed the simulation so that when the blocks that are not on the boundary are lifted up, they lift each other as they are interlocked and then stop when they reached their maximum lift distance according to the gap spacing between them.

The blocks on the boundary are fixed so that they stop the whole configuration from moving freely upwards.

Could you please help me with that? Everything is attached.

Hexagonal Brick Kangaroo Simulation (54.2 KB)


I can see that you have Galapagos wrapped around Kangaroo, which might be problematic.

I was planning to use Galapagos to optimize the result but you can delete it for now.
The simulation has nothing to do with it.

Too bad you seem to be using a pirated license…

Testing 3dm Archive: C:\Users\martinsiegrist\Downloads\HexagonGrid.3dm
Start Section: 468 bytes (offset 0 to 468)
Offset: 0
3dm archive version: 70
Interface Name: Rhinoceros 7.19 - Corporate, build 2022-06-29 - (compiled Jun 29 2022)
SDK Version: 2348836105.2387378425
OpenNURBS Version: 2387378425
3dm Version: 7
Operating System: Windows 10 (10.0.19045 SR0.0) or greater, 64-bit, platform 2, version 10.0 build 19045 sp 0.0, suite 256, product type 1

The file is not originally mine nor I am using my computer, but could that be solved?

Yeah, that’s a good idea.

Even if I had your plugins, I probably wouldn’t be much help because I don’t know much about Kangaroo. After looking at this though, I do understand what you’re trying to do and managed to get this white group (below) that completes the construction of your hexagonal blocks (green group) without any plugins, It preserves the data tree structure from the Hexagonal component, though that doesn’t matter because it gets flattened for Kangaroo.

I’m pretty sure the code before the white group could also be simplified, but I left that alone. Simpler code is always easier for me to understand.

Hexagonal Brick Kangaroo_2023Jun16a…gh (53.4 KB)

For sure! Replaced your code with the cyan group. Way better, eh? Call me “The Optimizer”. :sunglasses:

Hexagonal Brick Kangaroo_2023Jun16bb…gh (60.0 KB)

Well, thank you Joseph for your efforts, but I had no problem with the blocks themselves nor with how were they modelled.
My problem is that the simulation is failing due to something in the Kangaroo components setup that I need help with.

I know that. But I did. You are welcome.

Man thank you very much but I’m looking for someone who can actually help me with something I need​:joy::joy:

Please up this post.

Hi @yousefkhashaba_uchih

I would not recommend trying to simulate this with solid meshes and RigidBodyCollide.

Instead I’d try and figure out what the geometric constraint between neighbouring blocks is and apply that directly. For instance it might be that they stay connected at the corners and the angle between them can only change up to a certain limit. If this was the case one could model it with lines and length and ClampAngle goals.

Could you provide me with an example?

why are you calling this guy out haha

I look at most Kangaroo topics, but I do not support the use of cracked licenses.

1 Like