Skip to content

Releases: SarahWeiii/CoACD

1.0.10

10 Apr 18:19

Choose a tag to compare

What's New

  • Minimal build mode (-DWITH_3RD_PARTY_LIBS=OFF): Build CoACD without the bundled OpenVDB/Boost/TBB/spdlog dependencies. Input meshes must already be 2-manifold (manifold preprocessing is unavailable in this mode), and logging falls back to stdout. Useful for reducing binary size and build time when integrating CoACD into a larger project that doesn't need manifold repair.
  • Windows 64-bit correctness fix: Fixed a pointer-truncation bug in the bundled Bullet convex hull code (btAlignedAllocator) where unsigned long was used to hold a pointer. On Windows (LLP64) unsigned long is 32 bits, so the cast truncated 64-bit addresses. Replaced with uintptr_t.
  • Robustness: sobol now throws on error instead of calling exit(), so the Python bindings and library users can catch and handle sequence-generation failures instead of having the process killed.
  • Build & CI:
    • CI now runs on pull requests, not just pushes to main.
    • Build step uses cmake -B and --parallel 4, bumped actions/checkout to v6.
    • Dropped -fPIC from global CXX flags in favor of the POSITION_INDEPENDENT_CODE target property.
    • Dropped -fpermissive and -D_USE_MATH_DEFINES on Linux/macOS (codebase doesn't need them; kept on MSVC because bundled OpenVDB headers reference M_PI).
    • Quickhull backport fixes and uninitialized-array warning fixes.
  • Script fix: run_example.sh now uses -pm off instead of the non-existent -np flag for SnowFlake and Octocat examples.

Usage

# Minimal build (no OpenVDB / Boost / spdlog)
cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_3RD_PARTY_LIBS=OFF
cmake --build . --target main -j

Full Changelog: 1.0.9...1.0.10

1.0.9

02 Apr 01:07

Choose a tag to compare

What's New

  • Real metric mode (-rm/--real-metric): Specify the concavity threshold directly in meters instead of normalized units. Ideal for meshes in real-world scale (e.g., from 3D scans or CAD models). The algorithm automatically converts it to the internal normalized threshold based on the mesh bounding box extent.

Usage

# CLI
./main -i model.obj -o output.obj -t 0.01 -rm

# Python
from coacd import Mesh, run_coacd
result = run_coacd(mesh, threshold=0.01, real_metric=True)

Full Changelog: 1.0.8...1.0.9

1.0.8

31 Mar 06:52

Choose a tag to compare

v1.0.8
Remove lower bound on threshold parameter.
Fix CI for macOS builds.

1.0.7

02 May 17:14

Choose a tag to compare

v1.0.7
Fix interface parameters bug.
Fix merge corner case bug.

1.0.5

22 Mar 17:50

Choose a tag to compare

v1.0.5
Add an extrude option between adjacent convex hulls.

1.0.4

22 Mar 17:50

Choose a tag to compare

v1.0.4
Fix off-by-one illegal read in MergeConvexHulls.

1.0.3

22 Mar 17:48

Choose a tag to compare

v1.0.3
Add maximal constraints to each convex hull.

1.0.2

22 Mar 17:47

Choose a tag to compare

v1.0.2
Add box approximation

1.0.6

22 Mar 18:45
58a285b

Choose a tag to compare

v1.0.6
Update ARM builds.

1.0.1

04 Apr 18:53
fce9d0f

Choose a tag to compare

Version 1.0.1