{"id":37078032,"url":"https://github.com/modypy/modypy","last_synced_at":"2026-01-14T09:03:12.360Z","repository":{"id":78123255,"uuid":"324129701","full_name":"modypy/modypy","owner":"modypy","description":"A framework for hierarchical modelling, simulation and analysis of dynamic systems","archived":false,"fork":false,"pushed_at":"2022-01-09T16:45:59.000Z","size":2159,"stargazers_count":2,"open_issues_count":15,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-10T13:19:06.979Z","etag":null,"topics":["analysis","block-diagram","continuous-time","discrete-time","dynamical-systems","events","linear-systems","python","simulation","simulation-framework","simulation-modeling"],"latest_commit_sha":null,"homepage":"https://modypy.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modypy.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-12-24T10:28:01.000Z","updated_at":"2024-07-24T09:37:09.000Z","dependencies_parsed_at":"2023-02-25T03:00:58.779Z","dependency_job_id":null,"html_url":"https://github.com/modypy/modypy","commit_stats":{"total_commits":265,"total_committers":1,"mean_commits":265.0,"dds":0.0,"last_synced_commit":"18f7bf8e56d30f4e085c89e61d258955e85fab58"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/modypy/modypy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modypy%2Fmodypy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modypy%2Fmodypy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modypy%2Fmodypy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modypy%2Fmodypy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modypy","download_url":"https://codeload.github.com/modypy/modypy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modypy%2Fmodypy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["analysis","block-diagram","continuous-time","discrete-time","dynamical-systems","events","linear-systems","python","simulation","simulation-framework","simulation-modeling"],"created_at":"2026-01-14T09:03:11.680Z","updated_at":"2026-01-14T09:03:12.352Z","avatar_url":"https://github.com/modypy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://badge.fury.io/py/modypy.svg\n    :alt: PyPi Version\n\n.. image:: https://img.shields.io/pypi/pyversions/modypy\n    :alt: PyPI - Python Version\n\n.. image:: https://img.shields.io/github/license/modypy/modypy\n    :alt: GitHub\n\n.. image:: https://github.com/modypy/modypy/actions/workflows/test.yml/badge.svg?branch=master\n    :alt: Build\n    :target: https://github.com/modypy/modypy/actions/workflows/test.yml\n\n.. image:: https://github.com/modypy/modypy/actions/workflows/deploy_devdoc.yml/badge.svg?branch=master\n    :alt: Documentation Build\n    :target: https://github.com/modypy/modypy/actions/workflows/deploy_devdoc.yml\n\n.. image:: https://codecov.io/gh/modypy/modypy/branch/master/graph/badge.svg\n    :alt: Code Coverage\n    :target: https://codecov.io/gh/modypy/modypy\n\n.. image:: https://api.codiga.io/project/22584/score/svg\n    :alt: Code Quality Score\n\n.. image:: https://api.codiga.io/project/22584/status/svg\n    :alt: Code Grade\n\nMoDyPy (rhymes with \"modify\") is a Python framework for *Mo*\\ delling *dy*\\ namic\nsystems in *Py*\\ thon. The framework provides methods for describing continuous-time\nlinear and non-linear systems in\n`state-space representation \u003chttps://en.wikipedia.org/wiki/State-space_representation\u003e`_.\nIt was originally inspired by `simupy \u003chttps://github.com/simupy/simupy\u003e`_\ndeveloped by Ben Margolis, but has a completely different philosophy and\narchitecture than simupy.\n\nThe basic components of a dynamic system in MoDyPy are states and signals.\nStates represent the internal state of the system, and signals represent the\nvalues calculated based on the state. Ports can be connected to signals, so that\nreusable blocks with input and output ports can be easily built. For more\ndetails refer to the `documentation \u003chttps://docs.modypy.org/\u003e`_ or check out\nthe `video tutorial\n\u003chttps://www.youtube.com/watch?v=vlSGeh6Xx8A\u0026list=PL8mUFT3KgUN_CRhiLKiNq1T7xLBfphDY-\u003e`_.\n\nMain Features\n-------------\n\n- Simple architecture based on states, signals and connectible ports\n- Enables hierarchical modelling\n- Allows the establishment of reusable building blocks\n- Simulator for linear and non-linear continuous- and discrete-time systems\n- Clock system to model periodic events and discrete-time components\n- Steady state determination and linearization\n- Library of standard blocks, including 6-degree-of-freedom rigid body motion\n- Tested for 100% statement and branch coverage\n\nInstallation\n------------\n\nMoDyPy is available via the *pip* installer:\n\n.. code-block:: bash\n\n  $ pip install modypy\n\nTo install the development version,\n\n.. code-block:: bash\n\n  $ git clone https://github.com/modypy/modypy.git\n  $ pip install -e modypy\n\nExamples\n--------\n\n.. figure:: docs/guide/06_dc_engine_sampling.png\n    :align: center\n    :alt: Simulation of a DC-motor with propeller\n\n    Simulation of a DC-motor with propeller\n\nCheck out the examples in the\n`examples directory \u003chttps://github.com/modypy/modypy/tree/master/examples\u003e`_\nand the `User's Guide \u003chttps://docs.modypy.org/\u003e`_. These include:\n\n`dcmotor.py \u003chttps://github.com/modypy/modypy/tree/master/examples/dcmotor.py\u003e`_\n    A simple example using a DC-motor driving a propeller and sampling the\n    thrust using a zero-order hold.\n`rigidbody.py \u003chttps://github.com/modypy/modypy/tree/master/examples/rigidbody.py\u003e`_\n    Some rigid-body simulation using moments and forces showing an object\n    moving in a circle with constant velocity and turn-rate.\n`bouncing_ball.py \u003chttps://github.com/modypy/modypy/tree/master/examples/bouncing_ball.py\u003e`_\n    An example modelling a bouncing ball, demonstrating the use of events and\n    event-handler functions.\n`quadcopter_trim.py \u003chttps://github.com/modypy/modypy/tree/master/examples/quadcopter_trim.py\u003e`_\n    A larger example showcasing the steady-state-determination and linearisation\n    of complex systems, in this case for a quadrocopter frame with four\n    DC-motors with propellers.\n\nThey can be run from the sources using, e.g.,\n\n.. code-block:: bash\n\n  $ pip install matplotlib\n  $ python examples/bouncing_ball.py\n\nNote that some of the examples require ``matplotlib`` to run and display the\nresults.\n\nContributing\n------------\n\nContributions are welcome! Check out the\n`GitHub Project Page \u003chttps://github.com/modypy/modypy\u003e`_ for issues and\nideas on how to add to the project.\n\nContributions must adhere to the following conditions:\n\n- New features must be accompanied by appropriate pytest tests (ensure 100%\n  statement *and* branch coverage!)\n- New features should at least carry Python Docstrings for API documentation\n  following the general style of the existing API documentation.\n- Use `black \u003chttps://pypi.org/project/black/\u003e`_ with a line-length of 80 to\n  format your code. We are successively moving the project to the black style.\n- Contributors must accept publishing their contribution under the licensing\n  conditions laid out in the ``LICENSE`` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodypy%2Fmodypy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodypy%2Fmodypy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodypy%2Fmodypy/lists"}