Towards Pulse 3.x

We are taking the steps to Pulse 3.x

New folder structure changes have been introduced to 2.x that will allow us to move toward our 3.x goals.

This new folder structure will allow us to be more nimble in architecture for supporting multiple languages and engine implementations.

  • A more modern CMake structure
  • DebugRun and such config files are in data/config
  • Scenarios and baselines are in data/human/adult/scenarios
  • proto files are in src/schema
  • There is now a src folder that has language folders, and everything of that language is in those
    • (Previously I have a root/cdm and root/engine and root/test that had to each be separated by language, and that was inconvenient)

The src/cpp has all the same cpp code in it, just organized a little differently. There is a new folder named cpm. CPM stands for the Common Pulse(or physiology) Models. This is the location where physiology models (like the respiratory driver) are located. Currently everything is considered common to our one engine implementation, human adults. We are in the process of creating new engine implementations, such as a pediatric engine. This is where we will keep models common to more than one engine implementation. Unique models will be placed in a specific folder under an impl folder such as impl/human/adult and impl/human/pediatric.

A few changes to note for MSVC users:

  • The superbuild solution is now named Pulse.sln (was previously Pulse-Superbuild.sln)
  • The resulting Pulse code base solution is in an Innerbuild folder under your chosen cmake build directory (was previously in a Pulse folder under your chosen cmake build directory)

Everything should work and build the same. Please let us know if you have any problems, questions, thoughts.


What is the ETA for the 3.0 release? Is there a schedule somewhere that indicates the plans for future releases (or even how often releases typically occur)? We are using Pulse on a project that we expect to continue for at least another 1.5 years, and possibly much longer. Iā€™d like to stay on top of the latest releases, so knowing the rough plans will help me plan for that (even if they end up changing a lot).

We generally try to release three times per year. Whether these are major, minor, or patch depends on how much active engine development is ongoing by us or other teams contributing to the engine.

The 3.x release is anticipated this month (June) and is a major release, including:

  • New Hemorrhagic Shock Model
  • New Ventilator Equipment Model
  • New Python API
  • Extended C# API
  • Engine Interface Improvements

We anticipate another minor release later this year, most likely in the Fall. This release will include both model improvements and more architecture improvements. We also have enough backlog and anticipated awards to have enough new features for 3 minor releases in 2021.

The best way to stay on top of news and releases is to join our newsletter hereand the Kitware Blog here. We announce all our release information directly through these mechanisms. This is also a good way to get more information on our publications, other studies, our collaborations (both commercial and government funded), and Pulse use cases (we are always interested in partners and uses of the engine!).

1 Like