{"adoption": {"forks": 230, "observed_at": "2026-08-28T04:04:00.200880+00:00", "stars": 1211}, "canonical_url": "https://ross.abutalabs.com/products/antvis-g", "card": {"archived": false, "artifact_type": "library", "description": "💥 A flexible rendering engine for visualization.", "domain": ["data-visualization", "graphics", "web-development", "frontend"], "enriched": true, "function": ["graphics", "animation", "ui-components", "gpu-computing"], "health_score": 78, "homepage": "https://g.antv.antgroup.com/", "language": "TypeScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["antvis/G"], "name": "antvis/G", "platform": ["browser", "wasm"], "pushed_at": "2026-03-01T14:35:40+00:00", "repo": "antvis/G", "stars": 1211, "tags": ["canvas2d", "svg", "webgl", "webgpu", "rendering-engine", "scene-graph", "antv", "gpgpu", "typescript", "2d-graphics", "3d-graphics", "nodejs", "web-server"], "topics": ["canvas", "visualization", "2d-graphics", "antv", "antvis", "webgl", "webgpu"], "urls": [], "use_cases": ["render 2d and 3d graphics in the browser", "switch between canvas svg webgl and webgpu renderers at runtime", "build custom charting or visualization libraries", "accelerate graph algorithms with gpgpu on webgpu", "render charts server-side in node.js", "integrate d3 with a high-performance renderer", "add hand-drawn style rendering with rough.js", "add accessibility features like screen reader support to canvas graphics"], "what_it_is": "G is a flexible 2D/3D rendering engine for visualization, serving as the underlying graphics engine of the AntV charting ecosystem. It adapts multiple rendering backends (Canvas2D, SVG, WebGL, WebGPU, CanvasKit, Node.js server-side) with a DOM-compatible API, an extensible plugin system, and WebGPU-based GPGPU support for parallel graph algorithms.", "when_to_avoid": ["you just need simple charts out of the box - use a charting library like AntV's own G2 or Chart.js instead", "you need a full game engine with asset pipelines and physics built in", "your project requires a permissively documented license - the repo metadata shows no license field despite MIT badges in the README", "you need native desktop or mobile rendering outside the web platform"], "when_to_choose": ["you need a single scene-graph API that works across Canvas2D, SVG, WebGL, and WebGPU", "you are building visualization products on top of the AntV ecosystem", "you need GPU-accelerated computation for graph analytics", "you want DOM-compatible graphics and event APIs that integrate with D3 or existing web libraries", "you need server-side rendering of graphics"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/antvis-g", "repo": "antvis/G", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "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:00.200880+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.200880+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:18:03.073365+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aed1f55c003e6470ec80af83cc7d279dab1ababe57b1ec64e21103178f9697bf", "fetched_at": "2026-08-28T04:04:00.200880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/antvis/G"}, {"content_hash": "f177531b22ccd0a6f19a642482e1f4921cbc5bc9264fd62a6300c502df29227a", "fetched_at": "2026-08-29T12:26:14.757017+00:00", "kind": "homepage", "missing": false, "url": "https://g.antv.antgroup.com/"}, {"content_hash": "2a80d127fcdc76653230cf7c26dd1c27e9d6ad15af6717735c031b64bbe26e8e", "fetched_at": "2026-08-29T12:26:14.766153+00:00", "kind": "site_page", "missing": false, "url": "https://g.antv.antgroup.com/guide/getting-started"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 70, "longevity": 100, "rhythm": 62}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3208, "days_push": 185, "days_rel": 254, "gap_med": 22, "n_releases_24m": 18}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}