Electrophysiology
Electrophysiology is the study of the electrical activity of cells and tissues — in the heart, the electrical signals that trigger and coordinate each heartbeat. None: You have not worked with electrophysiology before. Beginner: You are familiar with basic concepts such as the action potential and membrane voltage. Intermediate: You understand how an action potential arises (ion currents, depolarization, repolarization) and can interpret electrophysiological recordings. Expert: You have in-depth knowledge of cardiac electrophysiology, including ionic mechanisms and how they relate to arrhythmias, and can design or critically assess electrophysiological experiments.
Anatomy
Anatomy is the study of the structure of the body — in the context of cardiac simulation, this means understanding the physical architecture of the heart, including its chambers, walls, and the arrangement of muscle cell orientation. None: You have not come across cardiac anatomy before. Beginner: You are familiar with the basic structure of the heart, such as its chambers and major vessels. Intermediate: You understand how the three-dimensional architecture of the heart influences its electrical and mechanical function. Expert: You have in-depth knowledge of cardiac anatomy including muscle cell orientation, tissue heterogeneity, and how anatomical structures relate to arrhythmia mechanisms.
Hodgkin-Huxley & ionic modelling
Hodgkin-Huxley type models describe how electrical signals are generated in cells using mathematical equations for ion currents flowing through the cell membrane. In cardiac simulation, this type of model forms the foundation of how individual cardiac myocytes are simulated. None: You have not come across Hodgkin-Huxley models or ionic modelling before. Beginner: You are familiar with the basic concept of ion channels and understand which types of channels contribute to an action potential and how they work in principle. Intermediate: You understand the mathematical structure of Hodgkin-Huxley-type models and can work with existing ionic models. Expert: You can develop or critically evaluate ionic models, including formulating new gating variables and fitting parameters to experimental data.
ODE / linear algebra
ODEs (ordinary differential equations) and linear algebra are the mathematical foundations underlying cardiac cell models — the variables describing a cells electrical state change over time, which is why they are formulated as ODEs. None: You have not worked with ODEs or linear algebra before. Beginner: You are familiar with the basic concepts of ODEs and linear algebra, such as derivatives, matrices, and solving simple equations. Intermediate: You can work with systems of ODEs and understand numerical methods for solving them. Expert: You have in-depth knowledge of numerical methods for stiff ODE systems and linear algebra, and can assess or implement solvers for cardiac cell models.
PDE math & finite elements
PDEs (partial differential equations) and finite element methods are the mathematical foundations underlying tissue-level cardiac simulations — the spread of electrical excitation through heart tissue is described as a PDE, which is then solved numerically using the finite element method in openCARP. None: You have no prior knowledge of PDEs or finite element methods. Beginner: You are familiar with the basic concept of PDEs and understand that they describe quantities varying in both space and time. Intermediate: You understand the mathematical formulation of PDEs relevant to cardiac tissue and are familiar with how finite element methods are used to solve them numerically. Expert: You have in-depth knowledge of numerical methods for PDEs in cardiac simulation, including discretization schemes, solver strategies, and their computational implications.
Python
Python is a general-purpose programming language widely used in scientific computing. In openCARP, Python is the language used to write and run simulation scripts via carputils. None: You have no prior knowledge of Python. Beginner: You are familiar with basic Python syntax and can read and understand simple scripts. Intermediate: You can write and modify Python scripts independently, including working with libraries such as NumPy or Matplotlib. Expert: You have extensive Python experience, including software design, packaging, and writing reusable, well-structured code for scientific workflows.
C/C++
C and C++ are compiled programming languages known for high performance. The openCARP simulator core is written in C++, so knowledge of C/C++ is needed if you want to contribute to or extend the simulator itself. None: You have no prior knowledge of C or C++. Beginner: You are familiar with basic concepts of C or C++ such as variables, functions, and control flow, and can read existing code. Intermediate: You can write and modify C++ code independently, including working with classes and memory management. Expert: You have extensive C++ experience, including software architecture, performance optimization, and working in large collaborative codebases.
Unix shell
The Unix shell (also called the command line or terminal) is a text-based interface for interacting with a computer. In openCARP, most workflows — installing software, running simulations, and managing files — are carried out via the shell. None: You have no prior knowledge of the Unix shell. Beginner: You are familiar with basic commands such as navigating directories, copying files, and running scripts. Intermediate: You can write shell scripts, manage processes, and work confidently in a terminal-based environment. Expert: You have in-depth knowledge of shell scripting, environment configuration, and system-level operations, and can automate complex workflows.
Jupyter Notebook
Jupyter Notebooks are interactive documents that combine code, text, and visualizations in a browser-based environment. In openCARP, the onboarding tutorials are delivered as Jupyter Notebooks, so basic familiarity is enough for most users. None: You have no prior knowledge of Jupyter Notebooks. Beginner: You can open a Jupyter Notebook, run existing cells, and interpret the output. Intermediate: You can write and structure your own notebooks, combining code, markdown text, and visualizations. Expert: You have extensive experience with Jupyter, including setting up environments, creating reusable notebook templates, and integrating notebooks into larger workflows.
Git/GitLab
Git is a version control system that tracks changes in code and files. GitLab is a platform for hosting Git repositories and collaborating on code. In openCARP, Git and GitLab are used to access, contribute to, and manage the codebase. None: You have no prior knowledge of Git or GitLab. Beginner: You can clone a repository, pull updates, and navigate the GitLab interface to browse code and issues. Intermediate: You can work with branches, commit and push changes, and collaborate via merge requests. Expert: You have in-depth knowledge of Git workflows, repository management, and can set up and maintain collaborative development processes in GitLab.
Software installation & environments
Software installation and environment management refers to the ability to set up the tools and dependencies needed to run scientific software. In openCARP, this includes installing the simulator, managing Python environments, and configuring your system for running simulations. None: You have no prior knowledge of software installation or environment management. Beginner: You can follow step-by-step installation instructions and set up software in a guided environment. Intermediate: You can independently install and configure software, manage Python environments, and troubleshoot common installation issues. Expert: You have in-depth knowledge of software environments, containerization, and system configuration, and can set up and maintain complex software stacks for yourself and others.
High-Performance Computing
High-Performance Computing (HPC) refers to the use of powerful computing clusters to run computationally demanding simulations. In openCARP, large tissue simulations in particular often require HPC resources. None: You have no prior knowledge of HPC. Beginner: You are familiar with the basic concept of computing clusters and understand why some simulations require more computational resources than a standard laptop or desktop. Intermediate: You can submit and manage jobs on an HPC cluster using a job scheduler such as SLURM, and can configure simulations to run in parallel. Expert: You have in-depth knowledge of HPC infrastructure, parallel computing strategies, and performance optimization, and can design and manage large-scale simulation workflows on a cluster.
openCARP single cell simulator "bench"
bench is the single cell simulator included in openCARP. It runs simulations of individual cardiac cells in isolation, without spatial structure — allowing you to study and investigate the electrical behavior of a single cell in detail. None: You have no prior knowledge of bench. Beginner: You can run an existing bench simulation and inspect the output. Intermediate: You can set up and modify bench simulations independently, including adjusting model parameters and interpreting results. Expert: You have in-depth knowledge of bench, including its internal structure, and can use it to conduct scientific investigations and develop, test, and validate new ionic models.
limpet & EasyML
EasyML is a domain-specific language for describing ionic models in a human-readable, equation-based syntax — similar to C code but with automatic handling of gating variables and differential equations. An EasyML model file (.model) is compiled into a shared library (limpet) that bench or openCARP can load at runtime. None: You have no prior knowledge of EasyML or limpet. Beginner: You are aware that ionic models need to be compiled before use and understand the basic idea of the EasyML workflow. Intermediate: You can read and modify existing EasyML model files and compile them successfully. Expert: You can write EasyML models from scratch, including defining gating variables, parameters, and trace groups, and can debug and optimize models for use in bench and openCARP.
openCARP tissue simulator
openCARP is the tissue-level cardiac simulator at the core of the openCARP ecosystem. openCARP simulates the propagation of electrical signals through one-, two-, and three-dimensional cardiac tissue, taking into account e. g., spatial structure, heterogeneities, and muscle cell orientation of the heart. None: You have no prior knowledge of openCARP. Beginner: You are aware of what openCARP does and can run an existing simulation and inspect the output. Intermediate: You can set up and modify tissue simulations independently, including adjusting model parameters, stimulation protocols, and output settings. Expert: You have in-depth knowledge of openCARP, including its parameter system and internal structure, and can design complex simulation setups and interpret results in a scientific context.
carputils
carputils is the Python-based framework for setting up, running, and managing openCARP simulations. Instead of manually writing parameter files, you use carputils to define simulation workflows as Python scripts, making experiments reproducible and easy to share. None: You have no prior knowledge of carputils. Beginner: You can run an existing carputils script and understand its basic structure. Intermediate: You can modify existing carputils scripts and write simple ones from scratch, including defining stimulation protocols and output settings. Expert: You have in-depth knowledge of carputils, including its internal architecture, and can develop complex, reusable simulation workflows and contribute new features to the framework.
Pre- & post-processing in carputils
Pre- and post-processing in carputils refers to preparing the inputs for a simulation and analyzing its outputs using carputils tools. This includes tasks such as setting up meshes and stimulation protocols before a simulation, and extracting, transforming, and visualizing results afterwards. None: You have no prior knowledge of pre- and post-processing in carputils. Beginner: You can follow existing scripts to inspect simulation outputs and understand what pre- and post-processing steps are involved. Intermediate: You can independently write carputils scripts for common pre- and post-processing tasks, such as extracting activation times or converting output files. Expert: You have in-depth knowledge of carputils pre- and post-processing tools and can design and implement custom processing pipelines for complex simulation workflows.
Meshing & mesh manipulation
Meshing refers to the process of creating and manipulating the computational grids that represent cardiac tissue geometry in openCARP simulations. A mesh defines the spatial structure of the tissue, including muscle cell orientation and region labels, and directly affects the accuracy and performance of a simulation. None: You have no prior knowledge of meshing or mesh manipulation. Beginner: You are familiar with the basic concept of a mesh and can use an existing mesh in a simulation. Intermediate: You can generate and modify meshes for cardiac simulations, including assigning muscle cell orientations and regions. Expert: You have in-depth knowledge of meshing tools and techniques, and can create and validate complex anatomically realistic meshes for use in openCARP simulations.
Visualization
Visualization refers to the ability to inspect and interpret simulation results graphically. In openCARP, the native visualization tool is Meshalyzer — a dedicated viewer for cardiac meshes and simulation data. ParaView is a common multi-purpose alternative. None: You have no prior knowledge of visualization tools for simulation data. Beginner: You can open simulation results in Meshalyzer and navigate the basic interface to inspect outputs. Intermediate: You can use Meshalyzer and/or ParaView to visualize and analyze simulation results, including applying color maps and extracting specific data. Expert: You can set up automated or scripted visualization pipelines and produce publication-quality figures from openCARP simulation data.