{"adoption": {"forks": 229, "observed_at": "2026-08-28T04:03:26.700510+00:00", "stars": 1065}, "canonical_url": "https://ross.abutalabs.com/products/pygame-learning-environment", "card": {"archived": false, "artifact_type": "library", "description": "PyGame Learning Environment (PLE) -- Reinforcement Learning Environment in Python.", "domain": ["reinforcement-learning", "artificial-intelligence", "machine-learning"], "enriched": true, "function": ["reinforcement-learning", "simulation", "game-engine"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["ntasfi/PyGame-Learning-Environment"], "name": "ntasfi/PyGame-Learning-Environment", "platform": ["python", "windows"], "pushed_at": "2022-01-19T22:19:02+00:00", "repo": "ntasfi/PyGame-Learning-Environment", "stars": 1065, "tags": ["pygame", "arcade-learning-environment", "rl-environment", "research", "games", "game-development", "linux", "macos"], "topics": ["reinforcement-learning", "game", "artificial-intelligence", "agent", "machine-learning", "pygame", "python", "deep-reinforcement-learning", "ai", "research"], "urls": [], "use_cases": ["train reinforcement learning agents on simple games in python", "benchmark rl algorithms without building custom environments", "get pixel observations and rewards from pygame games for deep rl", "teach reinforcement learning with an arcade-like api", "run rl experiments headless on a server"], "what_it_is": "PyGame Learning Environment (PLE) is a Python library providing a reinforcement learning environment with a suite of PyGame-based games, mimicking the Arcade Learning Environment interface. It lets practitioners focus on designing models and experiments rather than building environments.", "when_to_avoid": ["you need high-performance or massively parallel environments", "you require modern maintained alternatives like Gymnasium with rich env support", "you need 3D or complex simulated environments"], "when_to_choose": ["you want an ALE-style interface in pure Python with easy installation", "you need simple 2D games for prototyping rl models", "you want readable, modifiable game environments for research"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pygame-learning-environment", "repo": "ntasfi/PyGame-Learning-Environment", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "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:26.700510+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.700510+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:55:31.125644+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "164c94717096227a117f947faec1580e16996ce6040f69e0d387bf2a4c82a991", "fetched_at": "2026-08-28T04:03:26.700510+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ntasfi/PyGame-Learning-Environment"}], "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": 3844, "days_push": 1687, "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}}