Populate A Surface with 3D Objects of Different Shapes, possible? (3d object packing?)

Hi All,

I’m interested in populating a surface with multiples of different types of 3D objects. For example, we would have five multiples of Type A, Type B, Type C etc., all interlocking (but not intersecting) or knitted together to create a surface or screen. I’ve attached a quick sketch of the idea. I’ve been told it’d be very difficult to accomplish, but it seems like the kind of application grasshopper was developed for, no?

It’s relatively easy to make a wall out of several of one kind of object, such as a wall made out of spheres or box-morph references shapes, I’m wondering if it’s possible to distribute multiples of different shapes to create a surface?

thanks in advance,


I don’t think its that easy. And no, I don’t think Grasshopper was primarily build for such things. But I immediately have at least two ideas how such problem could be solved:

For metaballs(spheres):
Fill a closed shape with points and cull all points where the distance to closest point to that shape is below the radius.

A more general approach:
use the BoundingBox (or any simplistic shape, that works for collision purposes) and make sure its not colliding. For colliding you will need to use a basic physics system. You could use Kangaroo or you write a simple one by code. An object is translating until it detects an intersection, from there it bounces of.

1 Like

Hi TomTom,

I really appreciate the response. Any insight on how you might start it using the kangaroo method?

thanks again,