Metadata-Version: 2.1
Name: pymoskito
Version: 0.4.1
Summary: Python based modular simulation & postprocessing kickass toolbox
Author-email: Stefan Ecklebe <stefan.ecklebe@umit-tirol.at>
License: GPLv3
Project-URL: Homepage, https://github.com/cklb/pymoskito
Keywords: pymoskito control simulation feedback feedforward
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: wheel>=0.38.1
Requires-Dist: sympy>=1.11
Requires-Dist: scipy>=1.10.1
Requires-Dist: numpy>=1.24.1
Requires-Dist: control>=0.9.0
Requires-Dist: PyYaml>=3.12
Requires-Dist: pandas>=1.5.3
Requires-Dist: pyqtgraph>=0.13.0
Requires-Dist: matplotlib>=3.6.0
Requires-Dist: PyQt5>=5.15
Provides-Extra: 3d
Requires-Dist: vtk>=6.3.0; extra == "3d"
Provides-Extra: cpp
Requires-Dist: pybind11>=2.7.0; extra == "cpp"
Provides-Extra: docs
Requires-Dist: Sphinx>=1.4.9; extra == "docs"
Requires-Dist: docutils; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=0.1.9; extra == "docs"
Requires-Dist: sphinxcontrib-tikz>=0.4.7; extra == "docs"
Provides-Extra: test

=========
PyMoskito
=========

.. image:: https://github.com/cklb/pymoskito/actions/workflows/ci.yaml/badge.svg
    :target: https://github.com/cklb/pymoskito/actions/workflows/ci.yaml
    :alt: Continuous Integration Tests

.. image:: https://img.shields.io/pypi/v/pymoskito.svg
    :target: https://pypi.python.org/pypi/pymoskito
    :alt: Link to PyPi

.. image:: https://readthedocs.org/projects/pymoskito/badge/?version=stable
    :target: http://pymoskito.readthedocs.io/en/stable/
    :alt: Documentation Status

.. image:: https://zenodo.org/badge/49145679.svg
   :target: https://zenodo.org/badge/latestdoi/49145679
   :alt: DOI index 49145679

PyMoskito stands for *Python based modular simulation & postprocessing kickass
toolbox* and is **Free software** (GPLv3)

PyMoskito is targeted at students and researchers working in control
engineering. It takes care of all structure related programming a let's you
focus on the important things in life: **control design**.

It features a modular control loop structure that already contains most of the
needed blocks a control engineer needs. Basically you implement your systems
dynamics as well as a fancy control law and you are ready to go.
On top PyMoskito also contains a GUI which let's you easily fine-tune the
parameters of your simulation.

**Go ahead and give it a try!**

Documentation can be found at https://pymoskito.readthedocs.org.

PyMoskito at work
-----------------
The main application simulating the **Tandem Pendulum** system:

.. image:: ./docs/pictures/pm_1.png
   :alt: Image showing the awesome toolbox at work

Still here? So PyMoskito features
---------------------------------
* Quick setup due to lightweight dependencies
* Modular control loop structure allowing easy configuration
* Easy integration of own system models through open interface
* Automatic simulation of simulation regimes (i.e. for parameter ranges)
* Export of simulation results for dedicated post processing
* VTK based 3D visualization interface
* Playback functions for 3D visualization
* Ready-to-go graphs for all simulation signals
* Execution of external C++ code via *pybind11*

Getting started
---------------

Install with pip::

    $ pip install pymoskito

and run an example::

    $ python -m pymoskito.examples.pendulum
