Packing Geometry without overlapping

Hello Everyone,

Ive been trying to pack geometry using Kangaroo, but didnt figure a way to prevent the packing geometries from overlapping. Any ideas?


What im trying to accomplish:

Grasshopper script: Geometry (16.2 KB)

You can’t use SphereCollide to collide geometries that aren’t spheres! Perhaps you might have more luck with RigidBody. However this does not appear like an appropriate case for physics (i.e. your packing pattern is regular), unless you want to “simulate” how they might behave in the real world.

1 Like

I agree with this. Maybe try recursive subdivision.

Thanks, Anders. I’m trying to find a way to avoid any geometry from overlapping. Tried rigid body by @DanielPiker but no luck…

I agree with the other posters above - this does not look like somewhere it makes sense to use physics/collisions or Kangaroo.
The orientations of the octahedra in your reference image are all the same, and they line up with a regular grid (notice that the vertices of the octahedra lie in the middle of the faces of a cube). I would generate that grid at the finest scale, then select sets of 6 points at different scales to make the octahedra from.

This seems like a job for Wasp

Maybe, but I don’t think jumping to install and learn a plugin is always the answer. This absolutely looks like something that could be tackled with a fairly small number of standard Grasshopper components, and then the skills developed are then perhaps more transferable to other problems.
(this isn’t any criticism of Wasp - it looks like it can do some other interesting things, but maybe more suitable for more complex packings than this one)

Actually if the question is literally how easiest to replicate something like the geometry in the reference image, I’d say do it directly in Rhino by making one octahedron, and spending a couple of minutes copy-pasting/arraying/snapping.


This absolutely looks like something that could be tackled with a fairly small number of standard Grasshopper components

But maybe then we should provide that solution as I can imagine it being difficult to grasp from short word descriptions if they might not be familiar with the concept already (except the copy paste thing).

Just 4 native components, no plugins (8.4 KB)

I think the essentials are there to build from - regular arrays of octahedra at different scales so their vertices match up. Here which ones are kept is random, but you can substitute a different logic for selection.

1 Like

That’s what I was waiting to see :smiley: I still remember when you did this icosahedron in a crazy minimal way.

Annotation 2020-02-13 030424

1 Like

Slight cleanup: (7.1 KB)