{"adoption": {"forks": 383, "observed_at": "2026-08-28T04:06:08.708508+00:00", "stars": 2043}, "canonical_url": "https://ross.abutalabs.com/products/pymesh", "card": {"archived": false, "artifact_type": "library", "description": "Geometry Processing Library for Python", "domain": ["graphics", "computer-vision", "developer-tools"], "enriched": true, "function": ["graphics", "simulation", "math", "parser"], "health_score": 20, "homepage": null, "language": "C++", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["PyMesh/PyMesh"], "name": "PyMesh/PyMesh", "platform": ["python", "cpp"], "pushed_at": "2024-08-08T20:25:21+00:00", "repo": "PyMesh/PyMesh", "stars": 2043, "tags": ["geometry-processing", "mesh", "3d", "convex-hull", "mesh-boolean", "csg", "mesh-generation", "algorithms", "linux", "macos", "docker"], "topics": ["python", "geometry", "geometry-processing", "graphics", "convex-hull", "outer-hull", "mesh-generation", "mesh-boolean", "mesh-cleanup", "3d"], "urls": [], "use_cases": ["compute boolean operations on 3d meshes", "generate convex hulls of point clouds", "clean up and repair mesh geometry", "compute mesh statistics like area and volume", "prototype geometry processing algorithms in python", "convert and process obj mesh files"], "what_it_is": "PyMesh is a rapid prototyping geometry processing library for Python, with performance-critical algorithms implemented in C++ and exposed via easy Python interfaces. It supports mesh boolean operations, convex hulls, mesh cleanup, and mesh statistics, with optional integrations like CGAL, Carve, and libigl.", "when_to_avoid": ["you need a permissively licensed dependency for commercial products (no explicit license)", "you need actively maintained software with frequent updates", "you need real-time rendering or a full graphics engine rather than geometry algorithms"], "when_to_choose": ["you need a python-friendly toolkit for 3d mesh processing and prototyping", "you want robust mesh boolean/CSG operations backed by multiple geometry libraries", "you are doing research or academic work in geometry processing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pymesh", "repo": "PyMesh/PyMesh", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "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:06:08.708508+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.708508+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:58:06.014619+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "458a200bd5216faaf6023941424c76b38eb450d722fa6338ec02ea3e9795a64f", "fetched_at": "2026-08-28T04:06:08.708508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PyMesh/PyMesh"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4106, "days_push": 755, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}