miniacd decomposes watertight 3D meshes into convex components which aim to be a good approximation of the input shape. It is a compact and high performance implementation of the CoACD algorithm described by Wei et al. and implemented in the CoACD repository.

Run directly with uv:
uvx miniacd --help
Or, use pip to install into your local environment:
pip install miniacd
miniacd --help
Or, install a prerelease version:
- Download a recent
.whl
from GitHub Releases - Run
pip install miniacd<...>.whl
(replace<...>
with the actual filename) - Test it:
miniacd --help
git clone [email protected]:kylc/miniacd.git
cd miniacd
# Build the Rust library
cargo build --release
# OR build a Python wheel
pip wheel .
You can use the miniacd
command to process your mesh files. It has wide support for input and output formats, provided by trimesh. A typical invocation looks like this:
miniacd input_mesh.obj --output-dir output/ --threshold 0.1
If you have more specific needs, you can use miniacd as a Python library. See cli.py for an example. You can also access the internals by using miniacd as a Rust library.
Xinyue Wei, Minghua Liu, Zhan Ling, and Hao Su. 2022. Approximate convex decomposition for 3D meshes with collision-aware concavity and tree search. ACM Trans. Graph. 41, 4, Article 42 (July 2022), 18 pages. https://doi.org/10.1145/3528223.3530103