{"adoption": {"forks": 176, "observed_at": "2026-08-28T04:04:30.086125+00:00", "stars": 1361}, "canonical_url": "https://ross.abutalabs.com/products/visualblocks", "card": {"archived": false, "artifact_type": "framework", "description": "Visual Blocks for ML is a Google visual programming framework that lets you create ML pipelines in a no-code graph editor. You – and your users – can quickly prototype workflows by connecting drag-and-drop ML components, including models, user inputs, processors, and visualizations.", "domain": ["machine-learning", "artificial-intelligence", "developer-tools", "data-science", "web-development"], "enriched": true, "function": ["machine-learning", "data-visualization", "frontend-framework", "ui-components", "workflow-automation"], "health_score": 74, "homepage": "https://visualblocks.withgoogle.com", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["google/visualblocks"], "name": "google/visualblocks", "platform": ["browser", "python"], "pushed_at": "2026-07-01T01:30:57+00:00", "repo": "google/visualblocks", "stars": 1361, "tags": ["no-code", "visual-programming", "node-graph-editor", "ml-pipelines", "prototyping", "google", "angular", "colab", "web-server", "typescript"], "topics": [], "urls": [], "use_cases": ["build ML pipelines without writing code", "prototype AI workflows with a drag-and-drop node editor", "embed a visual ML pipeline editor in my web app", "connect ML models, camera inputs, and visualizations in a graph", "register notebook functions as nodes in a visual pipeline UI", "rapidly experiment with multimedia ML application pipelines"], "what_it_is": "Visual Blocks for ML is a Google visual programming framework that provides a no-code node graph editor for building ML pipelines from drag-and-drop components like models, inputs, processors, and visualizations. It ships as a JavaScript front-end library for embedding the editing experience, plus a Python package for use in Google Colaboratory notebooks.", "when_to_avoid": ["you need production-grade, code-first ML orchestration with full programmatic control", "your pipelines require custom node types not supported by the library", "you need a backend-heavy workflow engine rather than a browser-based editor"], "when_to_choose": ["you want no-code/low-code visual prototyping of ML pipelines", "you need to embed a node graph editor in a web platform", "you work in Google Colab and want an interactive pipeline UI over notebook functions", "you are iterating on multimedia ML app ideas like camera or image pipelines"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/visualblocks", "repo": "google/visualblocks", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "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:30.086125+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.086125+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:35.114884+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c5516575e31af73274251cf68e830c9578c8b56377a5ad70a8e4226cfbf1085d", "fetched_at": "2026-08-28T04:04:30.086125+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/visualblocks"}, {"content_hash": "bcfd918e97269ff35fdc14d1a4038443de30bbf3c2032c5fa0d8b007ebf5b5dc", "fetched_at": "2026-08-29T11:59:36.034555+00:00", "kind": "homepage", "missing": false, "url": "https://visualblocks.withgoogle.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 89, "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": 1253, "days_push": 64, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}