{"adoption": {"forks": 34, "observed_at": "2026-08-28T04:03:18.034020+00:00", "stars": 1031}, "canonical_url": "https://ross.abutalabs.com/products/metron", "card": {"archived": false, "artifact_type": "library", "description": "Geometry, simplified.", "domain": ["graphics", "developer-tools", "cross-platform"], "enriched": true, "function": ["math", "graphics"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["toineheuvelmans/Metron"], "name": "toineheuvelmans/Metron", "platform": [], "pushed_at": "2019-07-05T06:53:28+00:00", "repo": "toineheuvelmans/Metron", "stars": 1031, "tags": ["coregraphics", "geometry", "trigonometry", "2d-graphics", "cocoapods", "swift-package-manager", "swift", "ios", "macos"], "topics": ["swift", "geometry", "trigonometry", "coregraphics"], "urls": [], "use_cases": ["check if a touch point is inside a circle in iOS", "add and normalize angles in radians and degrees", "find intersections between line segments and view frames", "rotate polygon points around an anchor point and build a CGPath", "compute convex hull of a set of points", "calculate distances and relative positions of points in a rect"], "what_it_is": "Metron is a Swift library that extends CoreGraphics 2D geometric primitives with a comprehensive collection of geometric functions and types. It enables intuitive geometric calculations like circle containment tests, angle arithmetic, line segment intersections, and polygon operations.", "when_to_avoid": ["you need 3D geometry or physics simulation", "your project is not in Swift or does not use CoreGraphics", "you need a library with recent releases or active maintenance"], "when_to_choose": ["you do 2D geometry or drawing math in Swift with CoreGraphics", "you want readable, expressive geometric calculations instead of manual trigonometry", "you need convenient extensions for CGPoint, CGVector, CGRect, and polygons"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/metron", "repo": "toineheuvelmans/Metron", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "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:18.034020+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:18.034020+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:30.138802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91001574d226ea6a61085183a034949ceb75ef280dfc42e10a86569d5f9efd5f", "fetched_at": "2026-08-28T04:03:18.034020+00:00", "kind": "readme", "missing": false, "url": "https://github.com/toineheuvelmans/Metron"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3365, "days_push": 2616, "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}}