PACKER
Purpose: A fully procedural tool that maximally packs an object into a container
Location: Asset Browser > B3D Tools > B3D_Packer
How To Use: Navigate to Packer in the asset browser. Click and drag the modifier onto your desired container. All parameters will be in the modifier panel (including which object to pack).
Object to Pack - Which object should be instanced inside the container
Density - How many instances to pack inside the container
Overlap - Tolerance for overlapping objects (set to 0 for absolutely no overlap)
Iterations - How many iterations to run the packing algorithm
Container Precision - How detailed the container analysis should be
Container Overlap - Tolerance for instances to be spawned near the container surface
Random Rotation - Randomly rotates all instances
Random Scale - Randomly scales the instances
Seed - Rerolls the packing and randommization
Extra Details: Having a tiny bit of overlap (non-zero) is usually totally imperceptible and allows for much denser packing. Running multiple iterations allows extra instances to fill in any gaps generated. Make sure you container is a closed mesh (a hemisphere works, a open bowl does not). Make sure your object you want to pack is smaller than the container - otherwise there will be no room to do any packing of course.