{"adoption": {"forks": 1305, "observed_at": "2026-08-28T04:06:53.194559+00:00", "stars": 2455}, "canonical_url": "https://ross.abutalabs.com/products/linuxcnc", "card": {"archived": false, "artifact_type": "application", "description": "LinuxCNC controls CNC machines. It can drive milling machines, lathes, 3d printers, laser cutters, plasma cutters, robot arms, hexapods, and more.", "domain": ["robotics", "hardware", "embedded-systems"], "enriched": true, "function": ["robotics", "simulation", "gui", "interpreter", "developer-tools"], "health_score": 99, "homepage": "http://linuxcnc.org/", "language": "Python", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["LinuxCNC/linuxcnc"], "name": "LinuxCNC/linuxcnc", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-26T03:54:47+00:00", "repo": "LinuxCNC/linuxcnc", "stars": 2455, "tags": ["cnc", "g-code", "machine-control", "realtime", "motion-control", "3d-printing", "laser-cutter", "plasma-cutter", "mill", "lathe", "linux-rtai", "hardware-retrofit", "automation", "manufacturing", "linux"], "topics": [], "urls": [], "use_cases": ["control a CNC milling machine with G-code", "retrofit an old lathe with modern machine control software", "drive a 3D printer or laser cutter from Linux", "control a robot arm or hexapod with G-code", "run a plasma cutter with rigid tapping and cutter compensation", "build a DIY CNC controller on a realtime Linux system"], "what_it_is": "LinuxCNC is an open-source machine control software that drives CNC machines such as milling machines, lathes, 3D printers, laser and plasma cutters, and robot arms. It accepts G-code input, runs under Linux with optional realtime extensions, and offers multiple GUIs and support for many hardware interfaces.", "when_to_avoid": ["you need Windows or macOS-native machine control", "you require certified safety compliance - the software explicitly disclaims liability", "you want a plug-and-play commercial controller with vendor support", "you need a lightweight hobby firmware like Marlin or GRBL for a simple 3D printer"], "when_to_choose": ["you need full-featured, proven open-source CNC control on Linux", "you want support for many machine types and hardware interfaces", "you need advanced features like rigid tapping and cutter compensation", "you want an active community and long-maintained project"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/linuxcnc", "repo": "LinuxCNC/linuxcnc", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "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:53.194559+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:53.194559+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:30:04.718778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bbc5cb9266b2e752984112ac3d4029dab542e41ad784a18f6d3af9638518851a", "fetched_at": "2026-08-28T04:06:53.194559+00:00", "kind": "readme", "missing": false, "url": "https://github.com/LinuxCNC/linuxcnc"}, {"content_hash": "e9ff7dbc4118277dde6aede15c95a245f7329291dcba9a1a4cc48bd695f7d416", "fetched_at": "2026-08-29T10:11:32.130663+00:00", "kind": "homepage", "missing": false, "url": "http://linuxcnc.org/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 79}, "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": 5291, "days_push": 7, "days_rel": 62, "gap_med": 66, "n_releases_24m": 4}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}