{"adoption": {"forks": 207, "observed_at": "2026-08-28T04:05:30.712365+00:00", "stars": 1745}, "canonical_url": "https://ross.abutalabs.com/products/pytorch_scatter", "card": {"archived": false, "artifact_type": "library", "description": "PyTorch Extension Library of Optimized Scatter Operations", "domain": ["machine-learning", "deep-learning", "gpu-computing"], "enriched": true, "function": ["machine-learning", "gpu-computing", "math"], "health_score": 74, "homepage": "https://pytorch-scatter.readthedocs.io", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["rusty1s/pytorch_scatter"], "name": "rusty1s/pytorch_scatter", "platform": ["python", "windows"], "pushed_at": "2026-06-03T00:51:47+00:00", "repo": "rusty1s/pytorch_scatter", "stars": 1745, "tags": ["pytorch", "scatter-operations", "segment-operations", "sparse-update", "cuda", "tensor-operations", "linux", "macos", "gpu"], "topics": ["pytorch", "scatter", "segment", "gather"], "urls": [], "use_cases": ["aggregate tensor values by group index in PyTorch", "perform segment reductions on sorted or CSR-compressed indices", "compute scatter softmax or logsumexp over groups", "speed up graph neural network message aggregation on GPU", "implement sparse update operations missing from core PyTorch"], "what_it_is": "A PyTorch extension library providing highly optimized scatter and segment (sparse update) operations with sum, mean, min, and max reductions. It supports CPU and GPU with backward implementations, composite functions like scatter_softmax, and pip wheels for major OS/PyTorch/CUDA combinations.", "when_to_avoid": ["you use TensorFlow, JAX, or another framework instead of PyTorch", "your reduction needs are simple enough for built-in torch index ops", "you cannot install CUDA-matched wheels in your environment"], "when_to_choose": ["you need fast scatter/segment reductions in PyTorch on CPU or GPU", "you're building GNNs or point cloud models requiring grouped aggregation", "you need differentiable, traceable scatter operations with CUDA support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pytorch_scatter", "repo": "rusty1s/pytorch_scatter", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "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:05:30.712365+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.712365+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:29:17.072971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4d8fa81c11a1c8ac0119e986a2e5702aa67495877164a7b32dfebd65fa281068", "fetched_at": "2026-08-28T04:05:30.712365+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_scatter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3182, "days_push": 92, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}