Skip to content

gzavo/irregular-object-packing

 
 

Repository files navigation

irregular-object-packing

irregular-object-packing

GitHub Actions Build Status Codacy Code Quality Status Commits since latest release Ruff

Python package for packing irregularly shaped objects in an arbitrary 3D container. The implementation is based on the paper "Packing irregular Objects in 3D Space via Hybrid Optimization" by Ma Y, Chen Z, Hu W, Wang W 2018.

  • Free software: 3-clause BSD license

Features

  • Single shape irregular object packing
  • only optimisation phase of the algorithm (no swapping/hole filling/...)
  • 3D container with arbitrary shape
  • packing up to 10 items.
  • currently limit is probably due to the faulty implementation of the non-linear constraint optimisation. see issues.

Installation

pip install irregular-object-packing

You can also install the in-development version with:

pip install https://github.com/MbBrainz/irregular-object-packing/archive/main.zip

Documentation

Currently there is no documentation. However you can read through my thesis report which explains the algorithm and the implementation in detail. Also, the notebooks show a lot of the functionallity.

Known Issues

Notebook disconnecting (date: 21-mar-2023): If you run the Optimization with jupyter notebook, you may experience the kernel disconnecting and then trying to reconnect. This is a known issue and the best way current workaround is to downgrade your jupyter_client version to 7.3.2 and tornado to 6.1 (like in de ./requirements-dev.txt file). The issue is discussed here: https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/2

Module not found: irregular-object-packing (date: 29 may 2023) Fix by running pip install -e . in the root folder of the project. which will install the package in editable mode.

About

IROP is a library that allows you to pack irregular shaped objects in a Arbitrarily shaped 3D space.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 82.3%
  • Python 17.7%