MyoGestic: A software framework for developing and testing myocontrol algorithms with minimal setup time.
💡 Tip: Take a look at our documentation.
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
- 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
- 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
⚠️ Important: The simplest way is to install MyoGestic using the installer. You can download the installer from the releases page.
📝 Note: The installer is only available for Windows. If you are using another operating system, you can follow the manual installation instructions.
📝 Note: This does not allow you to add your own myocontrol algorithms. This is only for using the existing ones.
The installation is made using uv. You can install it following the instructions at https://github.com/astral-sh/uv.
Then, you can install MyoGestic using the following command:
uv syncIf you prefer a PDF version, you can download it here.
- Install MyoGestic using one of the methods described above
- Connect your EMG acquisition hardware
- Launch the application
- Select the desired algorithm and parameters
- Begin recording and testing
If you want to contribute to the project, you can install the development dependencies using the following command:
uv sync --group dev --group docsMyoGestic/
├── myogestic/ # Main package
│ ├── models/ # Algorithm models and interfaces
│ │ ├── core/ # Core model implementations
│ │ └── definitions/ # Model definitions and specifications
│ ├── gui/ # User interface components
│ ├── utils/ # Helper functions and utilities
│ ├── main.py # Application entry point
│ └── default_config.py # Default configuration settings
├── docs/ # Documentation
├── tests/ # Test suite
├── examples/ # Example usage and demonstrations
├── setup/ # Installation and setup files
└── pyproject.toml # Project metadata and dependencies
To add a new algorithm:
-
Create a custom model class with the required methods:
save: Save model state to a fileload: Load model state from a filetrain: Train the model on input datapredict: Make predictions with the model
-
Define the required lifecycle functions:
save_function: Function to save the modelload_function: Function to load the modeltrain_function: Function to train the modelpredict_function: Function to make predictions
-
Define parameter configurations:
changeable_parameters: Parameters that can be modified through the UIunchangeable_parameters: Parameters that remain fixed
-
Register your model in the
CONFIG_REGISTRYinuser_config.py
Example implementation can be found in examples/01_add_functionality/2_add_model.py.
Refer to the documentation for detailed instructions on implementing custom algorithms.
- Hardware not detected: Ensure your EMG device is properly connected and drivers are installed
- Algorithm fails to load: Check for missing dependencies or syntax errors in your implementation
- Performance issues: Consider optimizing your algorithm or checking system resources
For more detailed troubleshooting, please refer to the documentation.
If you use MyoGestic in your research, please cite the following paper:
TBDMyoGestic 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.
