{"adoption": {"forks": 384, "observed_at": "2026-08-28T04:05:50.586906+00:00", "stars": 1893}, "canonical_url": "https://ross.abutalabs.com/products/pysindy", "card": {"archived": false, "artifact_type": "library", "description": "A package for the sparse identification of nonlinear dynamical systems from data", "domain": ["machine-learning", "data-science", "simulation"], "enriched": true, "function": ["machine-learning", "data-science", "simulation", "math"], "health_score": 89, "homepage": "https://pysindy.readthedocs.io/en/latest/", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["dynamicslab/pysindy"], "name": "dynamicslab/pysindy", "platform": ["python", "cross-platform"], "pushed_at": "2026-06-10T21:36:54+00:00", "repo": "dynamicslab/pysindy", "stars": 1893, "tags": ["system-identification", "sparse-regression", "dynamical-systems", "model-discovery", "nonlinear-dynamics", "interpretable-models", "scientific-computing", "algorithms"], "topics": ["dynamical-systems", "machine-learning", "sparse-regression", "model-discovery", "system-identification", "nonlinear-dynamics"], "urls": [], "use_cases": ["discover differential equations from time-series data", "fit sparse regression models to identify nonlinear dynamics", "infer governing equations of a physical system from measurements", "build interpretable models of dynamical systems for prediction and control", "perform system identification on experimental or simulation data", "learn symbolic equations of motion from trajectory data"], "what_it_is": "PySINDy is a Python library for discovering governing equations of dynamical systems from measurement data using the Sparse Identification of Nonlinear Dynamical systems (SINDy) method and related sparse regression techniques. The resulting models are interpretable symbolic equations that can be used for prediction, control, and theoretical analysis.", "when_to_avoid": ["you need black-box forecasting accuracy rather than interpretable equations", "your data is noisy, sparse, or lacks the sampling quality SINDy methods require", "you need a general-purpose deep learning time-series model instead of equation discovery"], "when_to_choose": ["you have time-series measurements and want interpretable symbolic equations rather than a black-box model", "you need to identify sparse nonlinear dynamics with techniques like SR3, MIOSR, or Bayesian regression", "you want a well-documented, actively maintained scientific Python package with tutorials"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pysindy", "repo": "dynamicslab/pysindy", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "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:50.586906+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:50.586906+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:12:55.536747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9d0121b8d5c3ac6e1bf59014fabfc3743236d859ebde0a6bd36ee84244661b6", "fetched_at": "2026-08-28T04:05:50.586906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dynamicslab/pysindy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 41}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2672, "days_push": 84, "days_rel": 237, "gap_med": 139, "n_releases_24m": 2}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}