pack
lightweight rectangle packer
pack
is a box packing algorithm which attempts to determine the most compact configuration for a set of rectangles. To this end, it employs the first-fit decreasing (FFD) algorithm to place the boxes, using the length of the layout's shortest side length as a heuristic.
Unlike traditional bin packing algorithms, the boxes here are placed in a single container that grows appropriately as they are packed inside. This property makes it ideal for assembling spritesheets given a list of images.
usage
pack(sizes) -> layout
Arranges a list of [ width, height ]
pairs into the most compact layout
possible. The result will be reminiscent of the following data structure:
var layout = size: 13 8 boxes: size: 5 3 position: 0 0 size: 6 5 position: 0 3 size: 5 4 position: 6 0 size: 2 4 position: 11 0 size: 7 4 position: 6 4 size: 1 3 position: 5 0
kudos
- leo - for donating the package name