CompaSS (Compacting Soft and Slicing Packings)

Hayward Chan and Igor Markov

CompaSS is an open source block-packer that handles a wide range of block-packing problems.  On the small-scale, it produces optimal slicing packings that consist of hard or soft blocks.  On the large-scale, it can pack 10, 100, 1000, 10000 or 100000's of blocks hierarchically.  The packings returned by CompaSS outperform the state-of-the-art.  While its predecessor, BloBB,  produces reasonable packings very quickly, CompaSS takes extra time to pack the blocks more tightly.

News

March 15, 2005:   CompaSS 1.2 released.  It automatically tunes key parameters based on input.
May 11, 2004:  

The page of utilities and benchmarks is completed.  New utilities are added.

May 10, 2004:

 

CompaSS 1.1 is now available! The final slicing packing can now be compacted via B*-Tree.

Publications

Downloads (to compile, simply type: make compass)

If you are using CompaSS in a publication, please refer to the GLSVLSI '04 paper, available here.

Version 1.2

Manual ps, pdf

(last updated - March 15, 2005)

Source code of CompaSS and BloBB only (C++)

(last updated - March 15, 2005)

Executable of CompaSS and BloBB only (Linux, Solaris)

(last updated - March 15, 2005)
Source code and Executable of CompaSS and BloBB (Linux, Solaris) (last updated - March 15, 2005)

Version 1.1

Manual ps, pdf

(last updated - May 11, 2004)

Source code of CompaSS only (C++)

(last updated - May 10, 2004)

Executable of CompaSS only (Linux, Solaris)

(last updated - May 10, 2004)
Source code and Executable of CompaSS (Linux, Solaris) (last updated - May 10, 2004)

Version 1.0

Manual ps, pdf

(last updated - Feb 07, 2004)

Source code of CompaSS only (C++)

(last updated - Feb 07, 2004)

Executable of CompaSS only (Linux, Solaris)

(last updated - Feb 07, 2004)
Source code and Executable of CompaSS (Linux, Solaris) (last updated - Feb 07, 2004)

 

 

Benchmark and Utilities

Features

  Hard blocks Soft Blocks
  Fixed orientation Free orientation
Small-scale optimal packing

(~ 12 blocks with random dimensions)

supported supported supported
Large-scale optimal packing

(up to ~100K blocks with random dimensions)

supported supported supported

Sample Packings (generated by CompaSS 1.0)

Optimal Block-Packing    

Large-scale Block-Packing (Hard)    

Large-scale Block-Packing (Soft)    

Last updated - March 15, 2005