{"adoption": {"forks": 199, "observed_at": "2026-08-28T04:04:34.673850+00:00", "stars": 1383}, "canonical_url": "https://ross.abutalabs.com/products/box2djs", "card": {"archived": false, "artifact_type": "library", "description": "Port of Box2D to JavaScript using Emscripten", "domain": ["web-development", "simulation"], "enriched": true, "function": ["game-engine", "simulation", "graphics"], "health_score": 20, "homepage": null, "language": "C", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["kripken/box2d.js"], "name": "kripken/box2d.js", "platform": ["browser", "cross-platform", "wasm"], "pushed_at": "2020-07-09T16:47:57+00:00", "repo": "kripken/box2d.js", "stars": 1383, "tags": ["physics-engine", "box2d", "emscripten", "2d-physics", "webassembly", "game-development", "javascript"], "topics": [], "urls": [], "use_cases": ["add 2d physics simulation to a browser game", "run box2d physics in javascript", "simulate rigid bodies and collisions in the browser", "build an html5 canvas physics demo", "use webassembly physics engine in a web app"], "what_it_is": "A direct port of the Box2D 2D physics engine to JavaScript and WebAssembly using Emscripten, with automatically generated bindings. It preserves the original Box2D API and functionality for use in web browsers.", "when_to_avoid": ["you need a natively written JavaScript physics engine with idiomatic API", "you need 3D physics (use ammo.js or a 3D engine instead)", "you need actively maintained code with recent updates and guaranteed support"], "when_to_choose": ["you need Box2D-identical physics behavior in a web browser", "you want a proven, mature 2D physics engine ported via Emscripten", "you are porting an existing Box2D C++ project to the web"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/box2djs", "repo": "kripken/box2d.js", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "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:04:34.673850+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.673850+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:02.857266+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac9a7d5a3e52dada3866303bfaca2649d1c322754a56033b35043beb3ce3c961", "fetched_at": "2026-08-28T04:04:34.673850+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kripken/box2d.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5307, "days_push": 2246, "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}}