Welcome to
The modular and extensible simulation toolkit for neurophysiology
Overview
MyoGen is a modular and extensible neuromuscular simulation framework for generating physiologically grounded motor-unit activity, muscle force, and surface EMG signals.
It supports end-to-end modeling of the neuromuscular pathway, from descending neural drive and spinal motor neuron dynamics to muscle activation and bioelectric signal formation at the electrode level. MyoGen is designed for algorithm validation, hypothesis-driven research, and education, providing configurable building blocks that can be independently combined and extended.
Highlights
🧬 Biophysically inspired neuron models — NEURON-based motor neurons with validated calcium dynamics and membrane properties
🎯 Everything is inspectable — Complete access to every motor unit, spike time, fiber location etc. for rigorous algorithm testing
⚡️ Vectorized & parallel — Multi-core CPU processing with NumPy/Numba vectorization for fast computation
🔬 End-to-end simulation — From motor unit recruitment to high-density surface EMG in a single framework
📊 Reproducible science — Deterministic random seeds and standardized Neo Block outputs for exact replication
📦 NWB export — Optional export to Neurodata Without Borders format for data sharing via DANDI
🧰 Comprehensive toolkit — Surface EMG, intramuscular EMG, force generation, and spinal network modeling
Installation
Requires Python 3.12+ — Check your version with
python --version
System Requirements
| Platform | Before Installing MyoGen |
|---|---|
| Windows | NEURON 8.2.7 - Download, run installer, select "Add to PATH" |
| Linux | sudo apt install libopenmpi-dev (Ubuntu/Debian) or sudo dnf install openmpi-devel (Fedora) |
| macOS | brew install open-mpi |
Step 1: Install uv (Package Manager)
We use uv - a fast Python package manager. Install it first:
Windows (open PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
After installing, restart your terminal (close and reopen it).
Step 2: Create a New Project
Open a terminal and navigate to where you want your project:
# Create a new folder for your project
mkdir my_emg_project
cd my_emg_project
# Initialize a Python project
uv init
# Add MyoGen to your project
uv add myogen
That's it! MyoGen is now installed and ready to use.
Step 3: Verify Installation
Create a test file to make sure everything works:
# Create a test script
uv run python -c "from myogen import simulator; print('MyoGen installed successfully!')"
If you see MyoGen installed successfully! - you're all set!
Alternative: pip install
If you prefer pip over uv:
pip install myogen
For Developers (From Source)
git clone https://github.com/NsquaredLab/MyoGen.git
cd MyoGen
uv sync
uv run poe setup_myogen
Optional: GPU Acceleration
For 5-10× faster convolutions (requires NVIDIA GPU):
uv add cupy-cuda12x
Documentation
- User Guide — Working with simulation outputs
- API Reference — Complete class documentation
- Examples — Step-by-step tutorials from recruitment to EMG
How to Cite
If you use MyoGen in your research, please cite:
@article{simpetru_molinari_2026_myogen,
title = {MyoGen: Unified Biophysical Modeling of Human Neuromotor Activity and Resulting Signals},
author = {S{\^i}mpetru, Raul C. and Molinari, Ricardo G. and Rohlf, Devon R. and
Batichotti, Rebeka L. and Watanabe, Renato N. and
Elias, Leonardo A. and Del Vecchio, Alessandro},
journal = {bioRxiv},
note = {preprint},
year = {2026},
doi = {10.64898/2026.01.01.697284},
url = {https://www.biorxiv.org/content/10.64898/2026.01.01.697284}
}
Contributing
Contributions welcome! See issues if you want to add a feature or fix a bug.
Contributors
MyoGen is authored by Raul C. Sîmpetru and Ricardo G. Molinari. It is a joint project of the Nsquared Lab (Neuromuscular Physiology and Neural Interfacing Laboratory) at FAU Erlangen-Nürnberg, the NER Lab (Neural Engineering Research Laboratory) at the University of Campinas, and the BMClab (Biomechanics and Motor Control Laboratory) at the Federal University of ABC.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
License
MyoGen is AGPL licensed. See LICENSE for details.
Metadata
Release files for MyoGen 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| myogen-0.11.0.tar.gz | 4.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| myogen-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64 | Details |
| myogen-0.11.0-cp313-cp313-macosx_11_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 11.0+ ARM64 | Details |
| myogen-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64 | Details |
| myogen-0.11.0-cp312-cp312-macosx_11_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 11.0+ ARM64 | Details |
Total release size: 29.1 MB
Release files / myogen-0.11.0.tar.gz
| Download URL | myogen-0.11.0.tar.gz |
|---|---|
| Size | 4.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0570f49586daa41cc8eeca4d404e2e742f2d42efc84643fb355e58b2570a125
|
|
BLAKE2b-256 checksum How to use checksums |
8d46c2b9fc336de95d16a84bc839789c345e1a1539c3e8e4ee2afc5cb222fe71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / myogen-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | myogen-0.11.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a5ce5d45ebc424a9f75754f7d9a7dd599fdfed92bf270cd2b51dd974367398e6
|
|
BLAKE2b-256 checksum How to use checksums |
337a4b8a5942172edeffc8f1e7e947f4034dec96b81a7a74c4529cd0fcadc43c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / myogen-0.11.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | myogen-0.11.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
097931b77493f2917ed939598d9b8af0dc66c2ebb5458d22f80bc89d65178b76
|
|
BLAKE2b-256 checksum How to use checksums |
77d4f419c0828531671a3c687f6dca940a42c0a4bc6cf4216780d96d70379e18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / myogen-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | myogen-0.11.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 7.5 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
01f01c4fbe8de227cbc3590e193dac27152376f1f887deb46b95174fc6ab6bb9
|
|
BLAKE2b-256 checksum How to use checksums |
bbb180b588d55fd3d34129583a38a3fdc1fbcb667418665ca4c46f39b9844ffc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency logRelease files / myogen-0.11.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | myogen-0.11.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a2d539c62e30b4fe204f49acdf4e6efd34b217149a1e74941b4c58c3a87cbac5
|
|
BLAKE2b-256 checksum How to use checksums |
bc381edea77b300b708fc8ee202a17dac83291e211e145b063a3dcc1c2d30ea2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 16, 2026.
Transparency log