{"adoption": {"forks": 135, "observed_at": "2026-08-28T04:05:06.270887+00:00", "stars": 1578}, "canonical_url": "https://ross.abutalabs.com/products/torchdyn", "card": {"archived": false, "artifact_type": "library", "description": "A PyTorch library entirely dedicated to neural differential equations, implicit models and related numerical methods", "domain": ["deep-learning", "machine-learning", "simulation"], "enriched": true, "function": ["machine-learning", "deep-learning", "simulation", "math"], "health_score": 22, "homepage": "https://torchdyn.org", "language": "Jupyter Notebook", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["DiffEqML/torchdyn"], "name": "DiffEqML/torchdyn", "platform": ["python", "cross-platform"], "pushed_at": "2024-05-02T02:44:43+00:00", "repo": "DiffEqML/torchdyn", "stars": 1578, "tags": ["neural-ode", "neural-differential-equations", "pytorch", "dynamical-systems", "deep-equilibrium-models", "numerical-methods", "implicit-models", "control-theory", "algorithms", "gpu"], "topics": ["deep-learning", "neural-network", "neural-differential-equations", "pytorch", "dynamical-systems", "deep-equilibrium-models", "implicit-models", "control-theory", "neural-ode", "numerical-methods"], "urls": [], "use_cases": ["train neural ODEs in PyTorch", "build continuous-depth neural network models", "implement neural SDEs for stochastic dynamics", "model dynamical systems with deep learning", "solve implicit deep equilibrium models", "apply numerical methods to deep learning research", "benchmark neural differential equation solvers"], "what_it_is": "Torchdyn is a PyTorch library dedicated to numerical deep learning, providing tools for neural differential equations, implicit models, and related numerical methods. It offers classes like NeuralODE and NeuralSDE, a functional API for GPU-compatible numerical solvers, and extensive tutorials.", "when_to_avoid": ["you need a framework-agnostic solution outside PyTorch", "you only need classical ODE solvers without deep learning integration", "you require production-hardened, long-term-stable APIs for critical systems"], "when_to_choose": ["you need neural differential equations integrated with PyTorch", "you want GPU-compatible numerical solvers with a functional API", "you are researching continuous-depth models, neural ODEs, or deep equilibrium models", "you want tutorials and benchmarks for numerical deep learning"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/torchdyn", "repo": "DiffEqML/torchdyn", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "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:06.270887+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.270887+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:56:53.606156+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8838d498c95b70faf732238fe4a708c919968058ba2f44d485c6d60436eb5c25", "fetched_at": "2026-08-28T04:05:06.270887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DiffEqML/torchdyn"}], "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": 2320, "days_push": 853, "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}}