BioGears FAQ

What is BioGears?

BioGears is a C++ based, open source, multi-platform (Windows, Mac, and Linux), comprehensive human physiology engine that will drive medical education, research, and training technologies. BioGears enables accurate and consistent physiology simulation across the medical community. The engine can be used as a standalone application or integrated with simulators, sensor interfaces, and models of all fidelities.

BioGears high-level objectives include:

  • Create a publicly available physiology research platform that enables accurate and consistent simulated physiology across training applications
  • Lower the barrier to create medical training content
  • Engage the community to develop and extend physiology models
  • Meet the training needs of the military
  • Expand the body of knowledge regarding the use of simulated physiology for medical education

What can BioGears do?

An instance of a BioGears engine models a single patient's physiology.

  • The patient is defined by parameters, such as height, weight, systolic and diastolic pressure.
  • You can initialize the patient with specific chronic and/or disease states via conditions.
  • You can modify the patients external environmental conditions (weather, submerge in water, etc.)
  • You can apply various actions (acute insults/injuries, interventions, conscious breathing, exercise, etc.) to be applied to the patient.
  • The patient can also interact with equipment models, such as an Anesthesia and/or an ECG Machine as well as an Inhaler via actions.

What kind of data can I get from BioGears?

Available data is defined within the BioGears Engine in three major ways:

  • System data, such as Cardiovascular, Respiratory, etc.
    • Analogous to system vitals
      • Examples: heart rate, oxygen consumption, mean arterial pressure, etc.
  • Compartment data
    • Flow, pressure, and volume related to specific part of the body or component of equipment
      • Examples: Blood flow to the brain, 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
  • Assessments
    • Formed at the level of a clinician's report, Intended to give general patient overviews
      • Example: Pulmonary Function Test

What are your models and how did you validate them?

BioGears is a closed loop total body physiology model that combines physics-based lumped parameter models and control system feedback mechanisms to model real-time system-level physiologic behaviors. Lumped parameter models use electrical circuit analogs to represent the major physiologic systems.

For validation, our team uses a combination of peer-reviewed publications and subject matter expert judgment. Our team has:

  • Defined key parameters for each system for validation
  • Collected published data in the form of waveforms, and max, min, and mean values
  • Used custom written tools to compare data, perform analysis, and generate plots and tables of results

A primary purpose of model validation is to ensure that the model has an appropriate domain of validity given the goals of the modeling process. Our validation effort is driven by the goals of the project. For that reason, we do not have the resources to perform a rigorous sensitivity analysis or some of the other tools associated with a general validation protocol. We are not aware of any existing third-party validation effort. We would welcome and support, in as much as we are able, any validation or uncertainty quantification effort by the community.

We provide reports for each System Methodology included in the BioGears Engine.
These documents cover the design, implementation, assumptions, limitations, and validation of each model.

Physiology Systems


Modeling Support

How do I run BioGears?

The Toolkit is intended for users (e.g., researchers, educators, or curious individuals) who wish to execute BioGears and view the physiological effects of the patient. The Toolkit will create and plot a time-based, comma delimited file of calculated physiological outputs.

You can download the Toolkit here.

The Toolkit unzips about 15 MB of files. We recommend having at least 1 GB of available disk space.

  • The result files generated from the command line executable and GUI average 20 MB.
  • Graphed results file from the GUI or graphing script can generate file sets of several hundred MB.

How do I code with BioGears?

BioGears has developed a modular architecture to reduce costs for applications that need a physiology engine as well as want to develop or extend a physiology model.

This architecture contains :

We created a Software Development Kit (SDK) to help developers integrate the BioGears Engine into software applications. This SDK provides pre-built libraries and headers, as well as examples of how to programmatically using the provided interfaces. The provided application programming interfaces (APIs) provide full control over the engine to execute various actions and retrieve a range of calculated physiological outputs.

You can download the SDK here.

How can I modify BioGears, or integrate my model with BioGears?

BioGears uses an extensible architecture to promote integration with external models with varying levels of fidelity. System-level model fidelity can be increased or decreased by adding or removing nodes and sub-circuits.

All integration/extension will require a custom build of our Source Code. The Common Data Model provides a standard for data interchange between models. The deliberate identification of data requirements must precede any model modification or addition to determine if an extension of the Common Data Model is required. If the existing data model is sufficient to meet your modeling needs, you may be able to implement changes satisfactorily just by modifying the source code for the physiologic system of interest. If a Common Data Model extension is necessary, modification of the source code becomes more complicated. The quickest and easiest way to modify BioGears to meet your needs is to work with us. We can help with requirements definition, provide development support, and/or make modifications for you.

You can download the source code here.
The source unzips around 350 MB of files.
We recommend having at least 5 GB of disk space dedicated to building BioGears.

How do I ensure my changes/model are good?

We include scenarios and their results for verification and validation. These results provide a baseline we can use to measure deviations to results when the code is modified. As changes are implemented in the code base, we rerun all scenarios and compare the new results with baseline results to see how the implemented changes manifest in BioGears system data. Any new result that is over 2% error is marked as a failure. This data is used extensively to validate each system individually, as well as the combined effects of insults and interventions. See the Methodology Reports for more details. The scenarios output requests match the columns in the results file; we recommend that these scenarios remain unmodified.

You can download the data sets here.
The complete data set unzips around 2 GB of files.
Execution of all scenarios provided can generate up to 20 GB of results data.


Why does it take so long to initialize BioGears?

BioGears represents a single, variable patient. Patient variability requires that the engine analyze the provided patient baseline values and stabilize the physiology to those values. This initialization can take several minutes, but once complete, BioGears can save the engine state to an xml file. You can then load this state and instantaneously start execution of the simulation without any initialization time. Please consult the example in the SDK for how to take advantage of this feature and eliminate any initialization time in your application.

What is the fidelity of BioGears?

One definition of fidelity is "The degree to which a model or simulation represents the state and behavior of a real world object or the perception of a real world object, feature, condition, or chosen standard in a measurable or perceivable manner; a measure of the realism of a model or simulation [228] . " The BioGears validation documentation (in the System Methodology reports) describes how well the engine reproduces physiology at the system level. Like the human body, BioGears is a self-compensating system of physiological systems with outcomes based on interventions [262] , and therefore can be considered high-fidelity.

Sometimes the word fidelity is used to refer to the spatial (anatomical) level of resolution of a model. BioGears is a closed loop total body physiology model that combines physics-based lumped parameter models and control system feedback mechanisms to model real-time system-level physiologic behaviors. Spatial resolution is limited by the lumped-parameter approach to sections of organs (what may arguably be referred to as the tissue level). However, BioGears uses an extensible architecture to promote integration with external models with varying levels of fidelity (resolution or granularity). For more details, please see the recorded Committee on Credible Practice of Modeling & Simulation in Healthcare webinar.

Are there any publications related to the models that you have developed and choose to implement in BioGears.

A list of publications and presentations about BioGears can be found on the Publications page. Many of the physiology models in BioGears are adapted or implemented directly from models described in literature. The implementation methodology is described in detail in the System Methodology and sub-system documentation, and all of the source publications are cited in the methodology reports and listed in the Bibliography.

What kind of uncertainty quantification do you do perform in your physiology model?

We have not performed a systematic forward propagation or inverse quantification of model uncertainty, nor do we have the resources to conduct a formal sensitivity analysis. However, we can quantify the numerical uncertainty introduced in solving the lumped-parameter fluid dynamics of the two foundation sub-models (Cardiovascular and Respiratory). BioGears currently uses a bi-conjugate gradient method specific for sparse square systems (using the Eigen third party packages). This is an iterative method and we use the default tolerance for their solver, which is as close to zero as reasonable (around 1e-16).

For more discussion of uncertainty quantification in BioGears please see the Biogears forums.

Who is developing the BioGears Engine?

Applied Research Associates, Inc. (ARA) is the company developing the BioGears open source physiology engine. ARA is an international research and engineering company recognized for providing technically excellent solutions to complex and challenging problems. ARA's biomedical modeling and simulation research group has a proven track record of creating innovative, physiologically accurate mathematical models that drive immersive, game-based medical training technologies.

ARA has a broad range of technical expertise in biomedical engineering, defense technologies, civil engineering, computer software and simulation, systems analysis, and environmental technologies.

Can I contact the BioGears team to work on my current or upcoming project?

Absolutely. We always welcome new and challenging opportunities to work with research partners and sponsors. Please contact us via the website or look at our Work With Us page to learn more about working with the BioGears team!

What open source license does BioGears Use?

Apache 2.0. For more information see our License.

What is the long-term plan for BioGears?

Our team's goal is to first and foremost develop the most advanced, open source, whole-body physiology engine created to date. Following this, our team plans to work with the user community and stakeholders to ensure BioGears becomes the standard in physiology modeling.

During the first year of the project, our team made many important decisions regarding system architecture and the open source License structure to ensure long-term use. Our system architecture was developed in a way that will make the system easy to extend for new models and external interfaces. The license structure allows for both open-source and proprietary applications to promote widespread use across government, military, academic, and commercial markets.

The BioGears team as a whole is very passionate about the use of simulated physiology for medical training and education. As such, we intend to develop and maintain a useful, high quality, open source application that will be extended and improved by our team and the community over time.

Where can I ask questions or get help?

Our team spent a great deal of time documenting the engine and our system models. Please look at the documentation first. We have also set up an online forum as a place for the community of users to help one another figure out how to use the engine. Please remember these are friendly forums. For more specific questions about connecting the engine with an external interface or extending system models, contact us via the website or take a look at our Work With Us page to learn more about working with the BioGears team!

How can I contribute?

The BioGears team will continue to support large releases as in the past but will begin to transition most development onto our publicly facing github site. Because our team believes in collaborative open source development always feel free to fork our code base and create a pull request to have your changes adopted by the team at ARA. In the future, look for contributing requirements, rules and directions to be posted directly on that site.

Is BioGears a game?

No, BioGears is a physiology engine that can power immersive learning and serious games for medical training. The BioGears physiology engine can provide a realistic training experience by producing real-time results to trauma and treatment. BioGears can enhance the user experience of applications by providing a comprehensive physiological response to insults and interventions.

What are some possible BioGears applications?

There is a wide range of potential applications for BioGears. A few include:

  • Powering serious games for medical education and training
  • Producing responsive physiology in real time for manikin training
  • Integrating a single-system model into BioGears to understand full-body physiologic response
  • Providing inputs and outputs for sensor systems
  • Teaching and education

Where do I log a bug for BioGears?

Logging bugs helps us improve the engine and we appreciate your feedback. You can log bugs on our Report Bug discussion, or post code bugs on our github page.

Please also feel free to report any inappropriate physiology. You can check to see if we already know about the issue by visiting the Known Issues section on the main page or the System Methodology documentation.

What is a Showcase Scenario?

A Showcase Scenario is a hypothetical patient scenario our team uses to demonstrate the BioGears Engine's patient customization, insult, intervention, and assessment capabilities. We have created four of these scenarios to provide a framework for discussion about the engine and serve as a catalyst for community-initiated improvements for the duration of the project.

These Showcase Scenarios are driven by the goals of the BioGears project. It is important to note that Showcase Scenarios are not being used only as validation use cases, but also as examples to demonstrate the capabilities of the physics-based BioGears Engine.

To see the scenario outputs from the engine, check out our interactive graphing tool on our website.

What is your relationship with the Virtual Physiological Human (VPH) project.

The Virtual Physiological Human is a European initiative with the eventual goal of producing a complete mechanistic model of the entire human body. With BioGears, we are trying to simulate whole-body physiology with reasonable accuracy for a target population. In other words, we are attempting to model a generic individual within a reference population to provide reasonable physiology for a variety of applications. In contrast, the eventual goal of the VPH project is individualized medical simulation. Individualized simulation is not within the current scope of the BioGears project, but we have gained insight and generated knowledge of development processes, and we presented our findings to the VPH community at the 2016 conference [219].

Where can I find an overview presentation of BioGears?

An overview presentation on BioGears given to the Committee on Credible Practice of Modeling & Simulation in Healthcare is available on YouTube.

What is the advantage of the BioGears Common Data Model (CDM)?

For details about the BioGears Common Data Model, please see our Common Data Model documentation.

How fast does BioGears run? How can I make it faster?

BioGears currently runs at about 8 times real-time, depending on the your computer's CPU speed. The functionality requirements of the multi-purpose physiology engine are driven by the goals of the project. If your application does not require all of the existing functionality, then you could strip features by modifying the source code in the same way that you would integrate a new model.

The easiest way to make BioGears faster is to work with us. We have the expertise to quickly and efficiently modify BioGears to meet your requirements.

Do you plan to provide support for interpreter-level model input, for example with the Python language?

We do have plans to support hooks to our API for other languages such as C# and Python. We do have support for Java. We are aware of an end user creating a C# interface on top of our C++ interface.