vhacdx
Python bindings for VHACD
What it is and what it does
vhacdx is a thin Python wrapper around the V-HACD convex decomposition algorithm, designed to break complex triangle meshes into simpler convex shapes. It exposes a single function, `compute_vhacd()`, that accepts mesh geometry as NumPy arrays (vertex coordinates and face indices) and returns a list of convex hull pairs representing an approximate decomposition. The package depends only on NumPy and is distributed as precompiled wheels for recent Python versions across major platforms.
The primary use case is 3D geometry processing where convex decomposition is needed—typically in physics simulation, collision detection, or mesh simplification pipelines. Because it wraps a C++ algorithm, performance is reasonable for moderate mesh sizes, but the package shows signs of minimal maintenance: the repository has only 4 stars, the last release was 255 days ago, and no license metadata is declared, creating uncertainty about legal use.
Use it for:
- Physics engine collision detection: decompose complex meshes into convex shapes for faster collision queries.
- 3D model preprocessing: simplify mesh geometry for real-time rendering or simulation.
- CAD/CAM workflows: generate convex approximations of parts for manufacturing or assembly analysis.
- Game engine asset preparation: convert imported 3D models into convex-decomposed collision meshes.
- Robotics path planning: decompose obstacle meshes into convex regions for motion planning algorithms.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Computes approximate convex decomposition of triangle meshes by wrapping the V-HACD algorithm, taking vertex coordinates and face indices as NumPy arrays and returning a list of convex hull pairs.
Yes, if you need convex mesh decomposition and can tolerate an aging package with unclear licensing. The prebuilt wheels make installation straightforward, NumPy is the only dependency, and there are no known security vulnerabilities. However, verify the upstream license terms before use in proprietary work, and be prepared for minimal maintenance support if issues arise.
Install
vhacdx on PyPI
pip
pip install vhacdxuv
uv add vhacdxpoetry
poetry add vhacdxInstalling vhacdx
Before you install
Medium install friction due to compiled wheels; prebuilt binaries exist for Python 3.10–3.12 on macOS, Linux, and Windows, but the package is aging (255 days since last release) with minimal maintenance activity and only 4 repository stars.
License in practice
License status is unclear—no SPDX identifier or raw license text is declared. Verify the upstream V-HACD and pyVHACD fork licenses before using in proprietary or copyleft-sensitive projects.
Quickstart
import numpy as np
from vhacdx import compute_vhacd
points = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0]], dtype=np.float64)
faces = np.array([0, 1, 2], dtype=np.uint32)
convex_hulls = compute_vhacd(points, faces)
Requires NumPy; input points must be (N, 3) float64 array and faces must be a flat uint32 array with length 3× number of faces.
Verify before relying
- Upstream V-HACD algorithm performance characteristics and decomposition quality trade-offs.
- Whether the package is actively maintained or if the 255-day gap represents abandonment.
- Exact license terms of V-HACD and the pyVHACD fork that vhacdx is based on.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | aging — 255 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,581,330/month — #2,987 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: vhacdx-0.0.10-cp310-cp310-macosx_10_9_x86_64.whl; vhacdx-0.0.10-cp310-cp310-macosx_11_0_arm64.whl; vhacdx-0.0.10-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; vhacdx-0.0.10-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; vhacdx-0.0.10-cp310-cp310-musllinux_1_2_aarch64.whl; vhacdx-0.0.10-cp310-cp310-musllinux_1_2_x86_64.whl; vhacdx-0.0.10-cp310-cp310-win_amd64.whl; vhacdx-0.0.10-cp311-cp311-macosx_10_9_x86_64.whl; vhacdx-0.0.10-cp311-cp311-macosx_11_0_arm64.whl; vhacdx-0.0.10-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; vhacdx-0.0.10-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; vhacdx-0.0.10-cp311-cp311-musllinux_1_2_aarch64.whl; vhacdx-0.0.10-cp311-cp311-musllinux_1_2_x86_64.whl; vhacdx-0.0.10-cp311-cp311-win_amd64.whl; vhacdx-0.0.10-cp312-cp312-macosx_10_13_x86_64.whl; vhacdx-0.0.10-cp312-cp312-macosx_11_0_arm64.whl; vhacdx-0.0.10-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; vhacdx-0.0.10-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; vhacdx-0.0.10-cp312-cp312-musllinux_1_2_aarch64.whl; vhacdx-0.0.10-cp312-cp312-musllinux_1_2_x86_64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
manifold3dManifold3d creates and operates on manifold…
permissive · top 5,000 on PyPI
xatlasGenerates UV texture coordinates for 3D…
permissive · top 15,000 on PyPI
trimeshTrimesh loads, manipulates, and analyzes…
permissive · top 5,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI
alphashapeGenerates n-dimensional alpha shapes—concave or…
permissive · top 5,000 on PyPI
cmeel-qhullProvides precompiled qhull binaries (convex…
unclear · top 15,000 on PyPI
pytetwildpytetwild converts surface meshes into…
copyleft · top 15,000 on PyPI
pymeshfixPyMeshFix repairs triangular meshes by removing…
agpl · top 15,000 on PyPI
pymeshlabPyMeshLab provides Python bindings to MeshLab,…
copyleft · top 15,000 on PyPI
bermudaProvides Rust-accelerated triangulation…
permissive · top 15,000 on PyPI