{"adoption": {"forks": 101, "observed_at": "2026-09-01T02:14:01.164283+00:00", "stars": 1174}, "canonical_url": "https://ross.abutalabs.com/products/enable3d", "card": {"archived": false, "artifact_type": "framework", "description": "🕹️ Standalone 3D Framework / Physics for three.js (using ammo.js) / 3D extension for Phaser 3", "domain": ["web-development", "graphics", "cross-platform"], "enriched": true, "function": ["game-engine", "graphics", "simulation", "plugin-system"], "health_score": 80, "homepage": "https://enable3d.github.io", "language": "JavaScript", "license": "LGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["enable3d/enable3d"], "name": "enable3d/enable3d", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-31T07:41:02+00:00", "repo": "enable3d/enable3d", "stars": 1174, "tags": ["threejs", "ammojs", "physics", "phaser", "webgl", "3d", "typescript", "html5-games", "headless-physics", "game-development", "web-server", "nodejs", "javascript"], "topics": ["enable3d", "phaser", "threejs", "ammojs", "webgl", "game-framework", "3d"], "urls": [], "use_cases": ["add physics to a three.js scene", "build a 3D web game with WebGL", "add 3D objects and physics to a Phaser 3 game", "run headless physics on a Node.js server for multiplayer games", "convert a 3D web game to an Android or iOS app", "create a 3D HTML5 game quickly with a batteries-included framework"], "what_it_is": "Enable3d is a TypeScript 3D game framework for the web that wraps three.js and adds ammo.js (Bullet) physics, and can also be used as a physics plugin for three.js or a 3D extension for Phaser 3. It supports headless physics on Node.js for server-side simulation and deploys to mobile and desktop via Capacitor and Electron.", "when_to_avoid": ["you need a full production-grade game engine with editor tooling like Unity or Godot", "you only need 2D physics or 2D games", "you require a non-Bullet physics engine or non-WebGL rendering"], "when_to_choose": ["you want three.js rendering with rigid-body physics out of the box", "you are building a Phaser 3 game and need a third dimension", "you need server-side physics simulation without a browser environment"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/enable3d", "repo": "enable3d/enable3d", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:01.164283+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:27:05.111276+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5d1e4d2395c401cb6ef2f8349fe4cefda39cf563b07511032622d5a39ab4188c", "fetched_at": "2026-09-01T02:14:01.164283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/enable3d/enable3d"}, {"content_hash": "5cfe23216decd61c4f704e0ed9f30f7356c797c089e6591e4ed51c5c1844d9a1", "fetched_at": "2026-08-29T12:33:10.737287+00:00", "kind": "homepage", "missing": false, "url": "https://enable3d.io"}, {"content_hash": "2fcc4d72cf47ed8781f70d421a5b9efa09386bcb0af0cd33ddbf302a21c38db8", "fetched_at": "2026-08-29T12:33:10.740002+00:00", "kind": "site_page", "missing": false, "url": "https://enable3d.io/docs.html"}, {"content_hash": "fa05c4f1f7fceac08c3bf032c18aa9e3249c2a72a1b73f02c1850a4df7386eac", "fetched_at": "2026-08-29T12:33:10.742308+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/enable3d"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "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": 2442, "days_push": 2, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}