{"adoption": {"forks": 265, "observed_at": "2026-08-28T04:05:45.498470+00:00", "stars": 1862}, "canonical_url": "https://ross.abutalabs.com/products/csgjs", "card": {"archived": false, "artifact_type": "library", "description": "Constructive solid geometry on meshes using BSP trees in JavaScript", "domain": ["graphics", "web-development"], "enriched": true, "function": ["graphics", "simulation", "math"], "health_score": 20, "homepage": "http://evanw.github.com/csg.js/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["evanw/csg.js"], "name": "evanw/csg.js", "platform": ["browser", "cross-platform"], "pushed_at": "2019-10-05T21:08:20+00:00", "repo": "evanw/csg.js", "stars": 1862, "tags": ["constructive-solid-geometry", "csg", "bsp-trees", "3d-meshes", "boolean-operations", "javascript", "game-development", "algorithms", "nodejs"], "topics": [], "urls": [], "use_cases": ["perform boolean operations on 3d meshes in the browser", "subtract a sphere from a cube in javascript", "build 3d modeling tools with union and intersection of solids", "learn how CSG with BSP trees works", "generate combined solid geometry for webgl scenes"], "what_it_is": "A small JavaScript library implementing Constructive Solid Geometry (CSG) on 3D meshes using BSP trees. It supports Boolean operations like union, subtraction, and intersection between solids, with correct handling of coplanar polygons.", "when_to_avoid": ["you need high-performance CSG on large or complex meshes", "you need maintained software with recent updates and releases", "you need full 3D modeling features beyond boolean operations"], "when_to_choose": ["you need simple, readable CSG operations in JavaScript", "you want a dependency-free library for boolean mesh operations", "you need correct handling of coplanar polygon edge cases"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/csgjs", "repo": "evanw/csg.js", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "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:05:45.498470+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.498470+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:15:41.886542+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "48ded66614ff3f6264ce9cd7d109a9c8cdf3c54e74f946e6691f7b34ad9d675b", "fetched_at": "2026-08-28T04:05:45.498470+00:00", "kind": "readme", "missing": false, "url": "https://github.com/evanw/csg.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5390, "days_push": 2524, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}