Most main 3d printing software has the option to have several models on one build plate, but Plater crew decided that they can do the optimization better. Do not mistake it for easy task, it has some complex mathematics behind it.
From Plater description:
Plater is a 3D printer plates placer and optimizer. It takes a few STL files and some parameters such as the plate dimension, part orientation and spacing, and it tries to generates 3D model to print your parts with at least as possible plates.
It uses a really simple configuration file that contains the list of parts with their quantities and dimension. You can then build your STL plate(s) and release it with your part, or simply release the plater.conf file and let people do their own plates using their own settings.
Note that Plater will not choose the best orientation of a part for you, this is up to the user because it depends on a lot of things.
It is available in Windows and Linux versions currently.
Plater GitHub repo with download and all the guides:
https://github.com/RobotsWar/Plater#plater
Let me know what are your experiences!