{"adoption": {"forks": 138, "observed_at": "2026-08-28T04:04:46.859733+00:00", "stars": 1455}, "canonical_url": "https://ross.abutalabs.com/products/sabrecsg", "card": {"archived": true, "artifact_type": "plugin", "description": "Level design tools for Unity", "domain": ["graphics"], "enriched": true, "function": ["graphics", "simulation", "developer-tools"], "health_score": 10, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["sabresaurus/SabreCSG"], "name": "sabresaurus/SabreCSG", "platform": ["game-engine", "cross-platform"], "pushed_at": "2022-05-07T00:53:54+00:00", "repo": "sabresaurus/SabreCSG", "stars": 1455, "tags": ["unity", "csg", "level-design", "boolean-brushes", "game-tools", "game-development"], "topics": [], "urls": [], "use_cases": ["build game levels inside Unity with CSG brushes", "block out rooms, walls, doors and windows quickly", "carve geometry by subtracting brushes", "edit vertices and clip brushes for level detail", "apply materials and edit UVs on level geometry", "export built level geometry to OBJ for external tools", "procedurally generate levels via code API"], "what_it_is": "SabreCSG is a set of level design tools for Unity that uses Constructive Solid Geometry (CSG) to build complex levels quickly with boolean brush operations. It provides brush, vertex, surface, and clipping tools for greyboxing and level blockout without needing external 3D art packages.", "when_to_avoid": ["you use a game engine other than Unity", "you need production-ready final art assets rather than level blockout", "you need actively developed software with frequent updates"], "when_to_choose": ["you are designing levels in Unity and want in-editor CSG blockout tools", "you need to greybox play spaces without a 3D modeling package", "you want MIT-licensed level design tooling for Unity"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sabrecsg", "repo": "sabresaurus/SabreCSG", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "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:04:46.859733+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.859733+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:39.873906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98704b0b62ca25b8c4c02ee5b22b997b4cef97252975305ca62b0af2b9f5e326", "fetched_at": "2026-08-28T04:04:46.859733+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sabresaurus/SabreCSG"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3610, "days_push": 1580, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}