{"adoption": {"forks": 273, "observed_at": "2026-08-28T04:05:24.939784+00:00", "stars": 1706}, "canonical_url": "https://ross.abutalabs.com/products/circuit_training", "card": {"archived": false, "artifact_type": "library", "description": null, "domain": ["machine-learning", "hardware", "gpu-computing"], "enriched": true, "function": ["machine-learning", "reinforcement-learning", "simulation"], "health_score": 60, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google-research/circuit_training"], "name": "google-research/circuit_training", "platform": ["python"], "pushed_at": "2026-02-11T21:34:53+00:00", "repo": "google-research/circuit_training", "stars": 1706, "tags": ["chip-design", "floorplanning", "alphachip", "eda", "distributed-training", "tf-agents", "reinforcement-learning", "linux", "gpu"], "topics": [], "urls": [], "use_cases": ["generate chip floorplans with deep reinforcement learning", "place netlists with hundreds of macros and millions of standard cells", "optimize wirelength, congestion, and density in chip layouts", "reproduce the AlphaChip Nature 2021 paper methodology", "run distributed RL training across multiple GPUs for placement", "research AI methods for chip design and EDA"], "what_it_is": "AlphaChip (circuit_training) is Google's open-source framework for generating chip floorplans using distributed deep reinforcement learning, reproducing the Nature 2021 graph placement methodology. It is built on TF-Agents and TensorFlow 2.x, supporting distributed training across multiple GPUs and hundreds of data-collection actors.", "when_to_avoid": ["you need a general-purpose EDA flow or full place-and-route tool", "your netlists are not in clustered format or lack macro/stdcell preparation", "you need a lightweight CPU-only solution without TensorFlow", "you want a turnkey commercial chip design tool rather than a research framework"], "when_to_choose": ["you need RL-based macro placement and floorplanning for chip design", "you want to reproduce or extend the AlphaChip methodology from research", "you need distributed training across many GPUs and actors for placement", "you work in EDA research exploring AI for chip layout"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/circuit_training", "repo": "google-research/circuit_training", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "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:24.939784+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.939784+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:28.979632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e8dac05270f2bf8bfd20847072ca0750a995be2c6da43347f230130beb876282", "fetched_at": "2026-08-28T04:05:24.939784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google-research/circuit_training"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 67, "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": 1765, "days_push": 203, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}