{"adoption": {"forks": 106, "observed_at": "2026-08-28T04:05:08.970114+00:00", "stars": 1594}, "canonical_url": "https://ross.abutalabs.com/products/toy", "card": {"archived": false, "artifact_type": "framework", "description": "the thin c++ game engine", "domain": ["graphics", "cross-platform"], "enriched": true, "function": ["game-engine", "graphics", "ui-components", "audio-processing", "simulation"], "health_score": 20, "homepage": "https://toyengine.io", "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "experimental", "member_repos": ["hugoam/toy"], "name": "hugoam/toy", "platform": ["cpp", "cross-platform", "wasm"], "pushed_at": "2021-04-25T15:18:35+00:00", "repo": "hugoam/toy", "stars": 1594, "tags": ["game-engine", "cpp", "modular", "procedural-generation", "physics", "navmesh", "rendering", "editor", "scripting", "game-development"], "topics": [], "urls": [], "use_cases": ["build a 2d or 3d game in c++", "create a custom game engine from reusable building blocks", "prototype games with fast iteration cycles", "implement procedural generation in a game", "build games with complex custom ui and rendering schemes", "generate navmeshes and pathfinding for game ai", "compile a game to webassembly for the browser"], "what_it_is": "toy is a thin and modular C++ game engine built on top of the 'two' library, aiming to provide the simplest technology stack for making 2D and 3D games directly in C++. It offers a programmable 3D renderer, entities, physics, navmesh navigation, procedural generation helpers, and zero-cost tools, editors, and scripting extensions.", "when_to_avoid": ["you need a stable, production-ready engine with documentation and guaranteed stability", "you want a permissive license for commercial use without GPL obligations", "you prefer batteries-included engines like Unity, Unreal, or Godot", "you need long-term support or an active release cadence"], "when_to_choose": ["you want a lightweight, hackable c++ game engine with a small codebase", "you need full control over shaders, materials, and render paths", "you are building games with atypical constraints like complex ui or procedural generation", "you want to assemble your own game technology from minimal reusable components"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/toy", "repo": "hugoam/toy", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "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:08.970114+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.970114+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:54:11.729833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1abe9e8972f5f008501e88ebc499a4ef520f3d992ce3bb4b424fd1e4913ad262", "fetched_at": "2026-08-28T04:05:08.970114+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hugoam/toy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3524, "days_push": 1956, "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}}