{"adoption": {"forks": 1077, "observed_at": "2026-08-28T04:11:08.804973+00:00", "stars": 14861}, "canonical_url": "https://ross.abutalabs.com/products/brainjs", "card": {"archived": false, "artifact_type": "library", "description": "🤖 GPU accelerated Neural networks in JavaScript for Browsers and Node.js", "domain": ["machine-learning", "deep-learning", "artificial-intelligence"], "enriched": true, "function": ["machine-learning", "deep-learning"], "health_score": 20, "homepage": "https://brain.js.org", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["BrainJS/brain.js"], "name": "BrainJS/brain.js", "platform": ["browser", "cross-platform"], "pushed_at": "2024-09-26T21:51:23+00:00", "repo": "BrainJS/brain.js", "stars": 14861, "tags": ["neural-networks", "gpu-accelerated", "lstm", "rnn", "time-series", "javascript", "typescript", "nodejs"], "topics": ["neural-network", "brain", "recurrent-neural-networks", "easy-to-use", "api", "web", "nodejs", "browser", "convolutional-neural-networks", "node", "stream", "hacktoberfest"], "urls": [], "use_cases": ["train a neural network in the browser", "run machine learning in node.js without python", "predict time series values with LSTM in javascript", "build a simple classifier with a feed-forward network", "gpu accelerated neural network training in javascript", "forecast future values from historical data in the browser"], "what_it_is": "brain.js is a GPU-accelerated neural network library written in JavaScript/TypeScript that runs in both browsers and Node.js. It supports feed-forward, recurrent (RNN, LSTM, GRU), and convolutional networks with a simple, easy-to-use API.", "when_to_avoid": ["you need large-scale deep learning with modern architectures like transformers", "you require an extensive ecosystem of ML tooling, model zoos, and research implementations", "you need production-grade training performance comparable to PyTorch or TensorFlow"], "when_to_choose": ["you want neural networks in JavaScript for browser or Node.js without a Python toolchain", "you need a simple, beginner-friendly API for feed-forward, RNN, LSTM, or GRU networks", "you want GPU acceleration for training in the browser via WebGL"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/brainjs", "repo": "BrainJS/brain.js", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "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:11:08.804973+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:08.804973+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:07:07.428948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b6c87cd668a1c589debf63eb9a0b497c7a5ac20a2f94b33622c01bcd8848c794", "fetched_at": "2026-08-28T04:11:08.804973+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BrainJS/brain.js"}, {"content_hash": "e6c499e06d2182f1875c098a794e636178cb99b7ed577c28293998fc6d97f80a", "fetched_at": "2026-08-29T08:05:20.147685+00:00", "kind": "homepage", "missing": false, "url": "https://brain.js.org"}, {"content_hash": "bf50f4d81b4ec70f5dc35d0492f72e819a8efda18cd54a5632a7487fce7c3a17", "fetched_at": "2026-08-29T08:05:20.156853+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/brain.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 3854, "days_push": 706, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}