You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add `-rm`/`--real-metric` flag that lets users specify the concavity
threshold in meters (real-world scale) instead of normalized units.
The algorithm automatically converts it to the internal normalized
threshold based on the mesh bounding box extent.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
[***News***] CoACD now supports real metric mode (`-rm`), ideal for meshes in real-world scale (e.g., from 3D scans or CAD models in meters). Specify the concavity threshold directly in meters instead of normalized units!
8
+
7
9
[***News***] Check our new library, [PaMO](https://github.com/SarahWeiii/pamo.git), which converts any mesh into a low-poly, manifold, intersection-free mesh in seconds (CUDA required). It’s perfect as a preprocessing tool for CoACD.
8
10
9
11
[***News***] CoACD (both Python and C++) is supported on Linux (x86_64), Windows (amd64) and MacOS (x86_64 & apple sillicon) now!
@@ -31,6 +33,9 @@ import coacd
31
33
mesh = trimesh.load(input_file, force="mesh")
32
34
mesh = coacd.Mesh(mesh.vertices, mesh.faces)
33
35
parts = coacd.run_coacd(mesh) # a list of convex hulls.
36
+
37
+
# Or use real metric mode (threshold in meters)
38
+
parts = coacd.run_coacd(mesh, threshold=0.01, real_metric=True)
34
39
```
35
40
The complete example script is in `python/package/bin/coacd`, run it by the following command:
36
41
```
@@ -155,6 +160,7 @@ Here is the description of the parameters (sorted by importance).
155
160
*`-dt/--max-ch-vertex`: max vertex value for each convex hull, **only when decimate is enabled**, default = 256.
156
161
*`-ex/--extrude`: extrude neighboring convex hulls along the overlapping faces (other faces unchanged), default = false.
157
162
*`-em/--extrude-margin`: extrude margin, **only when extrude is enabled**, default = 0.01.
163
+
*`-rm/--real-metric`: flag to enable real metric mode, where the threshold is interpreted as an error in meters (the input mesh should be in meter scale). The algorithm automatically converts it to the normalized threshold used internally. Default = false.
158
164
*`-am/--approximate-mode`: approximation shape type ("ch" for convex hulls, "box" for cubes), default = "ch". I would recommend using a 2x threshold than it in convex for box approximation.
159
165
*`--seed`: random seed used for sampling, default = random().
0 commit comments