pack

2.2.0 • Public • Published

pack

lightweight rectangle packer

View the demo!

boxes

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

npm

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

license

MIT © Brandon Semilla

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i pack

      Weekly Downloads

      1,164

      Version

      2.2.0

      License

      MIT

      Unpacked Size

      9.27 kB

      Total Files

      8

      Last publish

      Collaborators

      • semibran