
Tip
Dive deeper into our features and usage with the official documentation.
MyoGestic - Why start myocontrol research from zero?#
What is MyoGestic?#
MyoGestic is a software framework designed to help the myocontrol community develop and test new myocontrol algorithms. For researchers and clinicians working with individuals with neural lesions, MyoGestic streamlines the process of creating, implementing, and evaluating myoelectric control systems.
The framework is designed with two primary goals:
Easy extensibility: Add your own algorithms without extensive knowledge of the codebase
Minimal setup time: Especially important when working with clinical populations where time is limited
Key features include:
User-friendly interface: Simple setup for clinical testing
Real-time processing: Low-latency signal processing and control
Multiple device support: Works with various EMG acquisition hardware
Customizable algorithms: Implement your own control strategies
Data logging: Capture and analyze performance metrics
Visualization tools: Monitor signals and control outputs in real-time
Note
MyoGestic is actively developed at the n-squared lab at Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) by our dedicated team of PhD candidates, along with the Bachelor and Master students they supervise.
As development is closely tied to ongoing research and academic timelines, major updates often align with the completion of student theses.
While we strive to incorporate improvements regularly, much of the cutting-edge development remains internal until research milestones are reached.
We appreciate your understanding and interest in the project!
Requirements#
Windows 10 or later (for installer)
Any OS supported by Python for manual installation (for maximum performance consider using Ubuntu 24.10)
Python 3.12 or higher
Compatible EMG acquisition hardware
Installation#
Using uv
- the preferred way#
Clone the Repository:
git clone https://github.com/NsquaredLab/MyoGestic.git cd MyoGestic
Install uv: If you don’t have it yet, install
uv
. Follow the instructions on the uv GitHub page.Set up Virtual Environment & Install Dependencies: Use
uv
to create and sync your virtual environment with the project’s dependencies.# Install base dependencies uv sync # To contribute or run documentation/examples, install optional groups: uv sync --group dev --group docs
Using the Installer#
Warning
The installer is for a very old version of MyoGestic.
Until we find a better and/or reliable way of creating an executable we highly recommend using uv
.
📝 Note: The installer is only available for Windows. If you are using another operating system, please follow the developer installation instructions below.
📝 Note: Using the installer does not allow you to add your own myocontrol algorithms. This is only for using the existing ones.
How to Use / Tutorial#
Quick Start Guide#
Install MyoGestic using one of the methods described above
Connect your EMG acquisition hardware
Launch the application:
python -m myogestic.main
(or use the installed executable if using the installer)Select the desired algorithm and parameters
Begin recording and testing
Video tutorial#
If you prefer a PDF version, you can download it here.
Development#
What is what?#
MyoGestic/
├── myogestic/ # Main package source code
│ ├── data/ # Default data/configurations used by the package
│ ├── gui/ # Graphical User Interface components
│ ├── models/ # Myocontrol algorithm models and interfaces
│ │ ├── core/ # Core model implementations (assuming this still exists)
│ │ └── definitions/ # Model definitions and specifications (assuming this still exists)
│ ├── utils/ # Helper functions and utilities
│ ├── main.py # Main application entry point
│ ├── default_config.py # Default configuration settings
│ └── user_config.py # User-specific configuration
├── docs/ # Documentation source files
├── examples/ # Example usage scripts and notebooks
├── tests/ # Automated tests
├── pyproject.toml # Project metadata, dependencies, and build configuration
└── uv.lock # Pinned versions of dependencies managed by uv
How to Cite#
If you use MyoGestic in your research, please cite the following paper:
@article{
Sîmpetru2025,
author = {Raul C. Sîmpetru and Dominik I. Braun and Arndt U. Simon and Michael März and Vlad Cnejevici and Daniela Souza de Oliveira and Nico Weber and Jonas Walter and Jörg Franke and Daniel Höglinger and Cosima Prahm and Matthias Ponfick and Alessandro Del Vecchio },
title = {MyoGestic: EMG interfacing framework for decoding multiple spared motor dimensions in individuals with neural lesions},
journal = {Science Advances},
volume = {11},
number = {15},
pages = {eads9150},
year = {2025},
doi = {10.1126/sciadv.ads9150},
URL = {https://www.science.org/doi/abs/10.1126/sciadv.ads9150},
eprint = {https://www.science.org/doi/pdf/10.1126/sciadv.ads9150},
}
License#
MyoGestic is licensed under the GNU General Public License v3.0 (GPL-3.0).
This means you are free to:
Use the software for any purpose
Change the software to suit your needs
Share the software with others
Share the changes you make
Under the following conditions:
You must disclose your source code when you share the software
You must license any derivative work under the same or a compatible license
You must state changes made to the software
You must include the license and copyright notice with the software
This is a simplified explanation. For the full license text, see the LICENSE file or visit GNU GPL v3.