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)

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