{"id":35201973,"url":"https://github.com/pathsim/pathsim","last_synced_at":"2026-05-27T13:01:08.663Z","repository":{"id":252690625,"uuid":"827794204","full_name":"pathsim/pathsim","owner":"pathsim","description":"A Python native dynamical system simulation framework in the block diagram paradigm.","archived":false,"fork":false,"pushed_at":"2026-05-07T07:51:11.000Z","size":20904,"stargazers_count":371,"open_issues_count":12,"forks_count":38,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-05-07T09:27:32.111Z","etag":null,"topics":["block-diagram","blockdiagram","control-systems","digital-twin","dynamical-systems","framework","fusion-energy","hierarchical-modeling","nonlinear-dynamics","numerical-methods","ode-solver","open-source","operator-training","python","scientific-computing","simulation","simulation-framework","simulink-alternative","system-simulation","transient-analysis"],"latest_commit_sha":null,"homepage":"https://pathsim.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pathsim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"milanofthe"}},"created_at":"2024-07-12T11:43:14.000Z","updated_at":"2026-05-07T07:47:31.000Z","dependencies_parsed_at":"2024-08-17T08:19:58.894Z","dependency_job_id":"72624500-0d8f-433d-8ced-97689558d136","html_url":"https://github.com/pathsim/pathsim","commit_stats":null,"previous_names":["milanofthe/pathsim"],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/pathsim/pathsim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pathsim%2Fpathsim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pathsim%2Fpathsim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pathsim%2Fpathsim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pathsim%2Fpathsim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pathsim","download_url":"https://codeload.github.com/pathsim/pathsim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pathsim%2Fpathsim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33566873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["block-diagram","blockdiagram","control-systems","digital-twin","dynamical-systems","framework","fusion-energy","hierarchical-modeling","nonlinear-dynamics","numerical-methods","ode-solver","open-source","operator-training","python","scientific-computing","simulation","simulation-framework","simulink-alternative","system-simulation","transient-analysis"],"created_at":"2025-12-29T11:57:22.724Z","updated_at":"2026-05-27T13:01:08.657Z","avatar_url":"https://github.com/pathsim.png","language":"Python","funding_links":["https://github.com/sponsors/milanofthe"],"categories":["Science"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/pathsim/pathsim/master/docs/source/logos/pathsim_logo.png\" width=\"300\" alt=\"PathSim Logo\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA block-based time-domain system simulation framework in Python\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://doi.org/10.21105/joss.08158\"\u003e\u003cimg src=\"https://joss.theoj.org/papers/10.21105/joss.08158/status.svg\" alt=\"DOI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pysimhub.io/projects/pathsim\"\u003e\u003cimg src=\"https://pysimhub.io/badge.svg\" alt=\"PySimHub\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/pathsim/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/pathsim\" alt=\"PyPI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://anaconda.org/conda-forge/pathsim\"\u003e\u003cimg src=\"https://img.shields.io/conda/vn/conda-forge/pathsim\" alt=\"Conda\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/pathsim/pathsim\" alt=\"License\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/pathsim/pathsim\" alt=\"Release\"\u003e\n  \u003cimg src=\"https://img.shields.io/pypi/dw/pathsim\" alt=\"Downloads\"\u003e\n  \u003ca href=\"https://codecov.io/gh/pathsim/pathsim\"\u003e\u003cimg src=\"https://codecov.io/gh/pathsim/pathsim/branch/master/graph/badge.svg\" alt=\"Coverage\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pathsim.org\"\u003eHomepage\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://docs.pathsim.org\"\u003eDocumentation\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://view.pathsim.org\"\u003ePathView Editor\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/sponsors/milanofthe\"\u003eSponsor\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nPathSim lets you model and simulate complex dynamical systems using an intuitive block diagram approach. Connect sources, integrators, functions, and scopes to build continuous-time, discrete-time, or hybrid systems.\n\nMinimal dependencies: just `numpy`, `scipy`, and `matplotlib`.\n\n## Features\n\n- **Hot-swappable** — modify blocks and solvers during simulation\n- **Stiff solvers** — implicit methods (BDF, ESDIRK) for challenging systems\n- **Event handling** — zero-crossing detection for hybrid systems\n- **Hierarchical** — nest subsystems for modular designs\n- **Extensible** — subclass `Block` to create custom components\n\n## Install\n\n```bash\npip install pathsim\n```\n\nor with conda:\n\n```bash\nconda install conda-forge::pathsim\n```\n\n## Quick Example\n\n```python\nfrom pathsim import Simulation, Connection\nfrom pathsim.blocks import Integrator, Amplifier, Adder, Scope\n\n# Damped harmonic oscillator: x'' + 0.5x' + 2x = 0\nint_v = Integrator(5)       # velocity, v0=5\nint_x = Integrator(2)       # position, x0=2\namp_c = Amplifier(-0.5)     # damping\namp_k = Amplifier(-2)       # spring\nadd = Adder()\nscp = Scope()\n\nsim = Simulation(\n    blocks=[int_v, int_x, amp_c, amp_k, add, scp],\n    connections=[\n        Connection(int_v, int_x, amp_c),\n        Connection(int_x, amp_k, scp),\n        Connection(amp_c, add),\n        Connection(amp_k, add[1]),\n        Connection(add, int_v),\n    ],\n    dt=0.05\n)\n\nsim.run(30)\nscp.plot()\n```\n\n## PathView\n\n[PathView](https://view.pathsim.org) is the graphical editor for PathSim — design systems visually and export to Python.\n\n## Learn More\n\n- [Documentation](https://docs.pathsim.org) — tutorials, examples, and API reference\n- [Homepage](https://pathsim.org) — overview and getting started\n- [Contributing](https://docs.pathsim.org/pathsim/latest/contributing) — how to contribute\n\n## Citation\n\nIf you use PathSim in research, please cite:\n\n```bibtex\n@article{Rother2025,\n  author = {Rother, Milan},\n  title = {PathSim - A System Simulation Framework},\n  journal = {Journal of Open Source Software},\n  year = {2025},\n  volume = {10},\n  number = {109},\n  pages = {8158},\n  doi = {10.21105/joss.08158}\n}\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpathsim%2Fpathsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpathsim%2Fpathsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpathsim%2Fpathsim/lists"}