An implementation of the maximal rectangles algorithm by Jukka Jylänki for 2d bin packing. This crate utilizes the MaxRects algorithm to efficiently pack a given number of boxes into a specified number of bins, and generate a visualization of the packing result.
This was created as an effort to learn rust with one of my favorite algorithms. Included is a png generator to visualize results:
bash
git clone https://github.com/jeremycg/max_rects.git
cd max_rects
bash
cargo run -- -b 50 -n 10
```rust use max_rects::{Bucket, MaxRects, PackingBox};
fn main() { let boxes = vec![PackingBox::new(5, 6), PackingBox::new(4, 4)]; let bins = vec![Bucket::new(10, 20, 0, 0, 1)]; let mut maxrects = MaxRects::new(boxes, bins); let (placed, remaining, updatedbins) = max_rects.place(); } ```
You can generate the documentation for this crate by running:
bash
cargo doc --open
This project is licensed under the MIT License - see the LICENSE.md file for details.
Feel free to submit issues and pull requests, we appreciate your help!