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.

Key
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-StandardFemale 5 0 0 5
ArterialBloodGasTest-StandardMale 5 0 0 5
BloodChemistry-StandardFemale 39 2 2 43
BloodChemistry-StandardMale 40 2 1 43
Cardiovascular-StandardFemale 26 2 0 28
Cardiovascular-StandardMale 27 1 0 28
CardiovascularCompartments-StandardFemale 70 3 0 73
CardiovascularCompartments-StandardMale 72 1 0 73
CompleteBloodCount-StandardFemale 8 0 0 8
CompleteBloodCount-StandardMale 8 0 0 8
CompleteMetabolicPanel-StandardFemale 8 0 0 8
CompleteMetabolicPanel-StandardMale 8 0 0 8
Endocrine-StandardFemale 1 0 0 1
Endocrine-StandardMale 1 0 0 1
Energy-StandardFemale 6 0 0 6
Energy-StandardMale 6 0 0 6
Gastrointestinal-StandardFemale 1 0 0 1
Gastrointestinal-StandardMale 1 0 0 1
Nervous-StandardFemale 0 0 0 0
Nervous-StandardMale 0 0 0 0
Renal-StandardFemale 20 11 13 44
Renal-StandardMale 22 17 5 44
RenalCompartments-StandardFemale 28 13 8 49
RenalCompartments-StandardMale 18 7 24 49
RenalSubstances-StandardFemale 12 5 19 36
RenalSubstances-StandardMale 14 12 10 36
Respiratory-StandardFemale 38 8 9 55
Respiratory-StandardMale 40 9 6 55
RespiratoryCompartments-StandardFemale 32 2 0 34
RespiratoryCompartments-StandardMale 34 0 0 34
Tissue-StandardFemale 5 2 2 9
Tissue-StandardMale 7 2 0 9
TissueCompartments-StandardFemale 36 3 0 39
TissueCompartments-StandardMale 39 0 0 39
TissueSubstances-StandardFemale 0 0 0 0
TissueSubstances-StandardMale 0 0 0 0
Urinalysis-StandardFemale 6 0 0 6
Urinalysis-StandardMale 6 0 0 6
Total 689 102 99 890

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: Complete Blood Count

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.