{"adoption": {"forks": 152, "observed_at": "2026-08-28T04:03:43.168871+00:00", "stars": 1134}, "canonical_url": "https://ross.abutalabs.com/products/coacd", "card": {"archived": false, "artifact_type": "library", "description": "[SIGGRAPH2022] Approximate Convex Decomposition for 3D Meshes with Collision-Aware Concavity and Tree Search", "domain": ["computer-vision", "graphics", "robotics", "simulation"], "enriched": true, "function": ["graphics", "simulation", "machine-learning", "cli"], "health_score": 99, "homepage": "https://colin97.github.io/CoACD/", "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["SarahWeiii/CoACD"], "name": "SarahWeiii/CoACD", "platform": ["windows", "python", "cpp", "cross-platform"], "pushed_at": "2026-08-19T04:28:56+00:00", "repo": "SarahWeiii/CoACD", "stars": 1134, "tags": ["convex-decomposition", "3d-meshes", "collision-detection", "physics-simulation", "siggraph", "unity", "geometry-processing", "game-development", "linux", "macos"], "topics": ["convex-decomposition", "collision", "convex"], "urls": [], "use_cases": ["decompose a 3D mesh into convex parts for collision detection", "prepare game engine assets for physics simulation", "generate collision hulls for robot simulation environments", "convert scanned or CAD meshes into convex components with real-world metric thresholds", "preprocess meshes for articulated object simulation in Unity"], "what_it_is": "CoACD is a C++ library (with Python bindings and a Unity package) that performs approximate convex decomposition of 3D triangle meshes using a collision-aware concavity metric and tree search, published at SIGGRAPH 2022. It splits meshes into nearly convex components whose convex hulls preserve collision conditions for efficient physics simulation and interaction.", "when_to_avoid": ["you need exact convex decomposition rather than an approximation", "your input meshes are not triangle meshes and you cannot triangulate them", "you need manifold mesh repair or low-poly conversion (use the companion PaMO library instead)"], "when_to_choose": ["you need collision-aware convex decomposition that preserves fine details like slots or holes", "you want a pip-installable Python API or Unity package for mesh decomposition", "you need intersection-free convex hulls without voxelization errors", "you work with real-world scale meshes and want thresholds in meters"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/coacd", "repo": "SarahWeiii/CoACD", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.168871+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:36:53.328213+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6d493608a0781adec7f4e62893d63594f1b21d1f57662eeb640b9dcfb7183d5f", "fetched_at": "2026-08-28T04:03:43.168871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/SarahWeiii/CoACD"}, {"content_hash": "610b7716737d56e36a2a6f4e4830be4ae279c5b956ea1d4d0d143409b54a17d9", "fetched_at": "2026-08-29T12:41:47.828656+00:00", "kind": "homepage", "missing": false, "url": "https://colin97.github.io/CoACD/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1583, "days_push": 14, "days_rel": 14, "gap_med": 5, "n_releases_24m": 12}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}