The Pulse Team is excited to announce the Pulse Physiology Engine 4.1.0 release. Upgrade now to get the best in dynamic simulation.
About Pulse

The Pulse Physiology Engine can be used as a standalone application or integrated with simulators, sensor interfaces, and models of all fidelities. The platform includes a common data model for standard model and data definitions, a software interface for engine control, robust physics-based circuit and transport solvers, and a verification and validation suite. The architecture was specifically designed to reduce model development time and increase the usability of the engine in simulations by creating a modular, extensible definition for human physiology. Pulse provides the following benefits to its user community:

  • Sound underlying physics: Clear, accurate, precise first principles conservation equations
  • Standardized data model: Easily understandable, widely usable, ontologies and software interfaces
  • Extensible: Reusable, repeatable implementation to allow the addition of new capabilities and functionality
  • Modular: Interdependent, hierarchical models for varying fidelity and complexity
  • Thorough documentation: In-depth, referenced descriptions of physiology methodology and software design
  • Cross-platform deployment: Easy compilation on all standard operating systems (Windows, Mac, Linux, and ARM) and multiple languages (C++, C#, Java, Unity)
  • Credible: Computational models transparently derived from evidence-based literature and analyzed with extensive verification and validation tools
  • Open: Public repository managed by experienced Kitware team with a permissible Apache 2.0 license for multicenter and multidisciplinary collaborative development

Pulse is comprised of numerical models representing the different body systems, feedback mechanisms and interactions between the systems, PK/PD, and medical equipment. The major systems are modeled using zero-dimensional lumped-parameter circuit analogs (e.g., the cardiovascular circuit) with homeostatic feedback. The differential equations contained in each system are calculated through transient analysis with a shared dynamic time step. The numerical models currently execute with a time step of 20 ms, which can be reduced, as necessary, to ensure all physiology features of interest are captured, while maintaining real-time execution for the simulation.

Pulse has been developed through a combination of funding by many different government and private entities, and is a significantly improved and extended fork from the DoD-funded BioGears program. The Pulse repository is maintained by the Kitware team that includes the original core BioGears creators (see the FAQ). Pulse has recently been incorporated into a number of commercial, research, and academic tools for medical simulation (see Pulse in action)

Validation Methodology

Models are validated using a combination of peer-reviewed publications and subject matter expertise. The validation process includes:

  • Defining key parameters for system validation
  • Performing literature reviews to gather published data in the form of waveforms, and max, min, and mean values
  • Using custom developed tools to compare data, perform analysis, and generate plots and tables of results

We validate each system at a compartment level (pressure, flow, volume, temperature, etc.). We also validate each action for a variety of system level parameters (heart rate, respiratory rate, tidal volume, blood pressure, etc.). We provide reports for each system in our Methodology documentation.

Below is a summary of our system and compartment level validation.

Good agreement: correct trends or <10% deviation from expected
Some deviation: correct trend and/or <30% deviation from expected
Poor agreement: incorrect trends or >30% deviation from expected
Category < 10% 10%-30% > 30% Total
ArterialBloodGasTest 5 0 0 5
BloodChemistry 40 1 1 42
Cardiovascular 23 3 0 26
CardiovascularCompartments 68 5 0 73
CompleteBloodCount 7 0 0 7
CompleteMetabolicPanel 8 0 0 8
Endocrine 1 0 0 1
Energy 6 0 0 6
Gastrointestinal 1 0 0 1
Nervous 0 0 0 0
PulmonaryFunctionTest 7 0 0 7
Renal 32 7 5 44
RenalCompartments 38 3 8 49
RenalSubstances 20 5 11 36
Respiratory 39 7 7 53
RespiratoryCompartments 34 0 0 34
Tissue 7 2 0 9
TissueCompartments 26 0 0 26
TissueSubstances 0 0 0 0
Urinalysis 6 0 0 6
Total 368 33 32 433

What can I do with the physiology engine?

Define patient parameters, such as height, weight, systolic and diastolic pressure.
Simulate specific chronic and/or disease states via conditions.
Modify external environmental conditions (weather, submerge in water, etc.)
Apply various actions (acute insults/injuries, interventions, conscious breathing, exercise, etc.) to the patient.
Have patient interact with equipment models, such as an Anesthesia and/or an ECG Machine as well as an Inhaler via actions.
Integrate the engine into your applications.

Available data is defined within the engine in three major ways:

  1. System data (Cardiovascular, Respiratory, etc.) that is analogous to system vitals Examples: heart rate, oxygen consumption, mean arterial pressure, etc.
  2. Compartment data
    • Flow, pressure, and volume related to specific region of the body or component of equipment Examples: Cerebral Blood Flow, Right Lung Volume, Right Heart Pressure
    • Substance specific data related to a specific part of the body or component of equipment Examples: The Extracellular concentration of succinylcholine in the brain tissue, anesthesia machine gas inlet oxygen volume fraction
  3. Assessments formed at the level of a clinician's report, Intended to mimic test results Examples: Pulmonary Function Test

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.