Gymnasium environments for reinforcement learning in cardiac electrophysiology
Project description
CardioSim
Gymnasium environments for reinforcement learning in cardiac electrophysiology
CardioSim provides three Gymnasium-compatible reinforcement learning environments for cardiac electrophysiology: pacemaker control, antiarrhythmic drug dosing, and defibrillation timing. It includes the FitzHugh-Nagumo and Aliev-Panfilov cardiac action potential models, a single-compartment pharmacokinetic model, a cardiac conduction system model, configurable difficulty tiers, and baseline agents (random, heuristic, PPO). The package is designed for benchmarking RL algorithms on sequential decision-making problems in cardiology where real-world experimentation is impractical.
Installation
pip install cardiosim # Core (numpy, scipy, gymnasium)
pip install cardiosim[train] # + SB3, PyTorch for RL training
pip install cardiosim[all] # Everything
Development install:
git clone https://github.com/HassDhia/cardiosim.git
cd cardiosim
pip install -e ".[all]"
Quick Start
import gymnasium as gym
import cardiosim
env = gym.make("cardiosim/PacingControl-v0")
obs, info = env.reset(seed=42)
for _ in range(100):
action = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
obs, info = env.reset()
env.close()
Environments
| Environment | Paradigm | Observation | Action | Key Challenge |
|---|---|---|---|---|
PacingControl-v0 |
Pacemaker optimization | Voltage, recovery, HR, HR error, HRV | Pacing rate, amplitude | Restore normal sinus rhythm in bradycardia |
AntiarrhythmicDosing-v0 |
Drug dosing | Voltage, recovery, concentration, arrhythmia, efficacy | Drug dose (mg) | Maintain therapeutic window, suppress arrhythmia |
DefibrillationTiming-v0 |
Defibrillation | Membrane potential, recovery, fibrillation index | Shock decision, energy (J) | Terminate fibrillation with minimal shocks |
Architecture
CardioSim combines established cardiac electrophysiology models with Gymnasium's RL interface:
- FitzHugh-Nagumo model - Two-variable excitable membrane model (FitzHugh, 1961)
- Aliev-Panfilov model - Cardiac-specific action potential dynamics (Aliev & Panfilov, 1996)
- PK/PD model - Single-compartment pharmacokinetics with sigmoid Emax pharmacodynamics
- Conduction system - SA/AV node timing with configurable conduction block
- Difficulty tiers - Easy, medium, hard configurations per environment
- Baseline agents - Random, heuristic (clinical rules), and PPO (Stable-Baselines3)
Paper
The accompanying paper is available at:
Citation
If you use CardioSim in your research, please cite:
@software{dhia2026cardiosim,
author = {Dhia, Hass},
title = {CardioSim: Gymnasium Environments for Reinforcement Learning in Cardiac Electrophysiology},
year = {2026},
publisher = {Smart Technology Investments Research Institute},
url = {https://github.com/HassDhia/cardiosim}
}
License
MIT License. See LICENSE for details.
Contact
Hass Dhia - Smart Technology Investments Research Institute
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cardiosim-0.1.0.tar.gz.
File metadata
- Download URL: cardiosim-0.1.0.tar.gz
- Upload date:
- Size: 27.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abd45a4c1122ac9dd6e65528d282e753a67f836b1bbd03aad2441725802a90d6
|
|
| MD5 |
0618049920d30df3e437bcde377d75cc
|
|
| BLAKE2b-256 |
cb5f8314ccb6689a79e8a7f0d650361c2780b94b8d8e674c52e92159d307af47
|
File details
Details for the file cardiosim-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cardiosim-0.1.0-py3-none-any.whl
- Upload date:
- Size: 27.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45e04103a28576975a639034a69ed0d6ea3c12ba7747b0447f234d30296795ab
|
|
| MD5 |
f11404ee0eb6286b73a72fe8762af40b
|
|
| BLAKE2b-256 |
9a8f9719c94f0d75a3b9306846f2792e6b4a9227a6406edecd28d5730265f8d2
|