# Kangaroo

Geometry Packing / Sphere Packing. Periodic boundary conditions with TranslationLock - examples. While Kangaroo is all about applying the laws of physics to digital modelling, there are times when it can be useful to be able to bend these laws a bit.

(I've written about some other examples of this before here: If we want to design repetitive structures, we might want to be able to assign periodic boundary conditions to some structure to enforce translation symmetry. For instance, a long row of connected arches or vaults, which we want to be identical for ease of fabrication. We could simulate this by adding many identical vaults in a row, and as we added more, the ones near the middle would get closer and closer to being identical. But they would never quite reach the point of being truly identical, even as we added hundreds of copies, and this would be very inefficient for large simulations: One way around this is to take some points on one side of our structure, and lock them to some points on the other side of the structure using the new TranslationLock component:

Triply Periodic Minimal Surfaces. Circle Packing on a Surface with Set Diameter. Kaleidocycle. I attempt to design a kinematic kaleidocycle structure.

There is a discussion before about that: In this case we see a geometrically approach, which doesn’t works efficient, because it required knowing how they behaviors together before, and I think it is not the ‘really behaves’. To make the structure ‘really behaves’ I tried use kangaroo and the result works very well! As you can see I simply give the 2-set reverse UForce, and then they start to rotate until they found their equilibrium. That means 90 degree rotation. By the way, I try to give supports which allow a horizontal movement only (Just curious how we could keep the anchor-movement horizontally and in the same layer, for example like usual supports for compression ring…). So maybe some one knows a better solution? Morphing Circles through compression. Example files.

Edit 29/04/14 - Here is a new collection of more than 80 example files, organized by category: This zip is the most up to date collection of examples at the moment, and collects together a wide variety of definitions made for various workshops and in response to forum questions.

Thanks to all workshop attendees and forum members for your valuable input. It is possible I've missed a few useful ones. If there is something else you'd like to see included please let me know The examples below are mostly older, but I will leave them here for now until I am certain all the same topics are adequately covered in the 'official' collection above. Showing how the trail component can be used to trace the motion of moving particles The wind component acts on sets of 3 points (typically each the vertices of each face of a triangulated mesh). CurvePull - Pulls particles onto a curve. The Vortex component rotates one particle about an axis defined by 2 points. (also requires WeaverBird) drape_example.gh. Circle Packing from Points. Dynamic remeshing script with Plankton and Kangaroo. Here are some demo's of remeshing with Plankton combined with some relaxation functions from Kangaroo.

(Similar to what I described here: The first is a simple remeshing aiming for equal edge lengths, while the second also allows interpolation between multiple target lengths, and also optimizes for circle packing. They require the latest version of Kangaroo to run. Enjoy! More explanations to follow soon Daniel Tags: Kangaroo, Plankton, mesh, remeshing Attachments: Kangaroo Manual (Grasshopper version) The integration method used by Kangaroo to calculate new positions for the particles.

To make the simulation continuously update you need to attach a Timer component (Parameters>Special>Timer). Drag the dotted line from the timer to any part of the Kangaroo component. The timer has an interval setting which controls how long it waits between updating the solution. Right click and change this interval to 1ms to get the maximum speed. Displaying the Grasshopper canvas takes quite a lot of memory and slows down the simulation considerably.