planepacker.js is a rectangle packing layout engine. Its goal is to layout a set of images such that their relative sizes and their crops are optimal, while being visually appealing and not falling into boring rows or columns. Additionally, it should be able to adjust a layout without totally randomizing it.
It does not yet accomplish these goals, but the basic strategy is proved out.
You can use it. The license is the MIT license.
Documentation and tests will come some time after it is reasonably meeting its goals.