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.
  • Interoperable: Seamless integration with various simulators, sensors, and software platforms, with easy cross-platform deployment 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, analyzed with extensive verification and validation tools, ensuring reliable performance.
  • Thorough documentation: In-depth, referenced descriptions of physiology methodology and software design.
  • Open: Public repository managed by an experienced Kitware team with a permissible Apache 2.0 license, allowing users complete control without dependency on proprietary vendors, and facilitating multicenter and multidisciplinary collaborative development.
  • Economical: Cost-sharing model supported by contributions from government and private entities, reducing financial barriers for users.

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

Standard Male Validation Summary

Category < 10% < 30% > 30% Total
Patient 15 0 0 15
BloodChemistry 41 3 1 45
ArterialBloodGasTest 5 0 0 5
CompleteBloodCount 8 0 0 8
CompleteMetabolicPanel 8 0 0 8
Cardiovascular 27 2 0 29
CardiovascularCompartments 71 2 0 73
Endocrine 1 0 0 1
Energy 7 0 0 7
Gastrointestinal 1 0 0 1
Renal 24 15 5 44
RenalCompartments 35 6 8 49
RenalSubstances 13 13 10 36
Urinalysis 5 0 1 6
Respiratory 47 6 3 56
RespiratoryCompartments 34 0 0 34
Tissue 9 1 0 10
TissueCompartments 39 0 0 39
Totals 390 48 28 466

Standard Female Validation Summary

Category < 10% < 30% > 30% Total
Patient 15 0 0 15
BloodChemistry 41 2 2 45
ArterialBloodGasTest 5 0 0 5
CompleteBloodCount 8 0 0 8
CompleteMetabolicPanel 7 1 0 8
Cardiovascular 27 2 0 29
CardiovascularCompartments 69 4 0 73
Endocrine 1 0 0 1
Energy 7 0 0 7
Gastrointestinal 1 0 0 1
Renal 22 9 13 44
RenalCompartments 27 12 10 49
RenalSubstances 11 6 19 36
Urinalysis 6 0 0 6
Respiratory 47 4 5 56
RespiratoryCompartments 33 1 0 34
Tissue 6 2 2 10
TissueCompartments 36 3 0 39
Totals 369 46 51 466

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.