{"adoption": {"forks": 81, "observed_at": "2026-08-28T04:04:37.075369+00:00", "stars": 1400}, "canonical_url": "https://ross.abutalabs.com/products/jscity", "card": {"archived": false, "artifact_type": "application", "description": "Visualizing JavaScript source code as navigable 3D cities", "domain": ["developer-tools", "data-visualization", "web-development"], "enriched": true, "function": ["data-visualization", "graphics", "parser", "developer-tools"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["aserg-ufmg/JSCity"], "name": "aserg-ufmg/JSCity", "platform": ["cross-platform"], "pushed_at": "2019-11-03T21:47:23+00:00", "repo": "aserg-ufmg/JSCity", "stars": 1400, "tags": ["code-city", "software-visualization", "threejs", "javascript-analysis", "3d-visualization", "research-tool", "nodejs", "web-server"], "topics": ["code-city", "software-visualization", "data-visualization", "javascript-tools"], "urls": [], "use_cases": ["visualize a javascript project's structure as a 3d city", "understand code complexity of a large js codebase at a glance", "identify large or deeply nested functions in javascript source", "teach software visualization using the code city metaphor", "explore anonymous vs named function distribution in a project"], "what_it_is": "JSCity is a tool that visualizes JavaScript source code as navigable 3D cities using the Code City metaphor and the three.js library. Folders become districts, files become sub-districts, and functions become buildings whose height and base size reflect lines of code and number of variables.", "when_to_avoid": ["you need visualization for languages other than JavaScript", "you want an actively maintained tool with recent updates", "you cannot install MySQL or Node.js locally", "you need lightweight static analysis without 3D rendering"], "when_to_choose": ["you want an intuitive 3D overview of a JavaScript codebase's size and structure", "you are doing research or education in software visualization", "you prefer a self-hosted tool with a Vagrant setup option"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jscity", "repo": "aserg-ufmg/JSCity", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "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:37.075369+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:37.075369+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:05.522089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "905e3b98c8a8d60f57237d12058b82211d3c9d6c0498102ceda0a78fb5b67ee5", "fetched_at": "2026-08-28T04:04:37.075369+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aserg-ufmg/JSCity"}], "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": 4089, "days_push": 2495, "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}}