Aesthetic Part/Pattern Nesting?

This has been a thorn in my side for a while, I’ve used RhinoCAM Nest, RhinoNest and Mosaix on and off for years, I prefer RhinoCAM these days but I’ve always wanted a little more control. Less optimization, more visual balance. All that power could be used to create some visually striking compositions, not just save on material.

A recent gig requires me to CNC carve hundreds of product bottles in relief on wall panels, sorta half way stuck in the wall. I’d love to give them a non repeating pattern with 90 or even 45 degree rotations and minimum spacing.

Something like this but on a grand scale using dozens of different bottle sizes.

RhinoCAM Nest is just going to give me very predictable, efficient results like below no matter what I change, even if I force unique rotations per part.

I thought about doing a point grid with random object placement on center and random rotation but it would have to recognize and adjust for collisions, maybe that’s something I could do in K2 but I’m not on that level yet and it would probably just crash my computer.

Thought I’d probe your brains, I did a bit of searching but couldn’t come up with anything really fitting aside from some Wordle style text nesting within shapes but those didn’t seem easily adaptable. I’m theorizing/hoping there’s some Grasshopper plugin that already has part of the functionality I’m looking for that I’m just missing.

EDIT: RhinoNest should have the solution here, they have (had) Grasshopper integration at one point but it was pulled out to rework amid a corporate takeover (Stuller) and has just been unfinished, unsupported garbage since. Was looking at OpenNest but it’s functionality is pretty simple and I’m having trouble using it in R6. Ideally I’d just want to nest parts with proximity awareness, maximize/minimize space and limit nearby repetitions. That’s a huge endeavor though, so I’m trying to figure out a back-road alternative solution.

You speak of Wordle, but did you try my script ? It is not a nesting as it tries to feel the space. Gaps could be managed using some offset or scale.
It is quite simple to use it needs planar meshes that represents the profiles of the shapes.
If you want send me the shapes and I can give a try

4 Likes (11.2 KB)

Doing this in Kangaroo might not be as hard as you think. Just reference your curves in then drag them around by their center points.

7 Likes (12.4 KB)

Also, if you want to keep a minimum distance between the curves, you can use an offset like this for the collisions, then reorient the original curves by the frames.

These collisions aren’t optimised for huge numbers of curves. You might need to pack one region, then fix them in place, and include the ones on the boundary of the region as passive colliders in a new packing for the adjacent region.


This looks a little like a Takashi Murakami. Great stuff! :slight_smile:

1 Like

I added there some bottles placement in the original Gallery. I used half profile that are revolved to make the 3d bottles. Half profile are mirrored, joined, offseted and meshed to make the profile for “nesting”.

1 Like

@laurent_delrieu @DanielPiker

Thanks for the aid, both of these methods are proving really helpful. I’ll post my results soon, just troubleshooting how adapt these on my own, ya’ll are too helpful sometimes. I need to learn how to fish.

Truly awesome the potential here but I do definitely need a better computer

1 Like