6

My goal is to make a node group that can distribute random objects over a given surface without (noticeable) intersections. I suppose the surface is flat, but it can be different forms (rectangle, circle, custom shape) and on different vertical levels like bookshelves.

I've tried is using Pack UV islands node, which gives the closest result to what I want:

enter image description here

It works pretty well, but has some issues, though.

  1. Pack UV islands works by using bounding boxes, more precise algorithms are presented in Blender, but not in the Geometry nodes.

  2. It works only in square with size of 1 (which is the biggest downside)

  3. It scales objects

  4. It packs the biggest objects in one corner (I want in center).

Also, I tried to solve the problem from another side, but this looks worse from computational perspective: Generate non-overlapping spheres having different diameters in a mesh

I think it is feasible to repeat the UV pack algorithm, but without the problems described above. But I don't know how the UV pack algorithm works, can someone help me with this?

Here is the file with pack islands node, if you want to start with:

Crantisz
  • 35,244
  • 2
  • 37
  • 89

0 Answers0