Download

CRIMSON binary installers are provided free of charge.

We encourage people to use the latest release, please join our mailing list to get notifications when there is a new version.

CRIMSON Versions:

CRIMSON comes with the TetGen mesh generator, rather than the higher-quality commercial mesh generator, MeshSim by Simmetrix Inc.

If you require the more powerful capabilities of MeshSim, please use the information below to ask about CRIMSON Pro, which further includes additional advanced modelling and simulation features. We are also able to provide assistance with running CRIMSON Flowsolver on HPC facilities.

Note: Users working with saved mitk scenes which were created in an older version of CRIMSON may need to re-mesh their models in the latest release.

Windows GUI (64 Bit)  Windows Flowsolver

Please cite the CRIMSON paper if using this software for your work.
CRIMSON: An open-source Software Framework for Cardiovascular Integrated Modelling and Simulation (2021). C.J. Arthurs, R. Khlebnikov, A. Melville, A. Gomez, D. Dillon-Murphy, F. Cuomo, M. Silva Vieira, J. Schollenberger, S.R. Lynch, C. Tossas-Betancourt, K. Iyer, S. Hopper, E. Livingston, P. Youssefi, A. Noorani, S. Ben Ahmed, F.J.H. Nauta, T.M.J. van Bakel, Y. Ahmed, P.A.J. van Bakel, J. Mynard, P. Di Achille, H. Gharahi, K.D. Lau, V. Filonova, M. Aguirre, N. Nama, N. Xiao, S. Baek, K. Garikipati, O. Sahni, D. Nordsletten, C.A. Figueroa. PLOS: Computational Biology. DOI: 10.1371/journal.pcbi.1008881

Source Code:

The links to the Github repositories for the CRIMSON GUI and Flowsolver are linked below. For developer documentation, please refer to the README files in each repository.

GUI  Flowsolver
Changelog

    CRIMSON GUI 2022.02.04 and CRIMSON Flowsolver 1.5.3 - Windows Only
    • Bug fixes and improvements
    • Expiry date updated
    CRIMSON Flowsolver 1.5.2 - Windows Only
    • Bug fixes and improvements
    • Expiry date updated
    CRIMSON GUI 2020.12.03 and Flowsolver 1.4.5 - Windows Only
    • Bug fixes, including manual contour imports being handled incorrectly
    • Expiry date updated
    CRIMSON Flowsolver 1.4.4 - Windows Only
    • Expiry date updated
    CRIMSON GUI 2019.11.01 - Windows Only
    • Removed the MeshSim mesh generator. Meshing is now provided by the open-source product, TetGen
      Please contact us if you require CRIMSON with the MeshSim mesh generator
    • CRIMSON Flowsolver and CRIMSON GUI now come as two independent installers. You may use one without the other if you wish.
    • Users working with saved mitk scenes which were created in an older version of CRIMSON may need to re-mesh their models in the latest release.
    • Enhanced PC-MRI functionality to support multiple scanner vendors, and additional options for accessing PC-MRI data stored in different planes - see here for the new documentation
    • Fixed a bug with the Netlist "Remove" button, which could cause CRIMSON to crash
    • CRIMSON GUI expiry increased to 365 days
    2019.08.01 - Windows Only
    • IMPORTANT: This is the final release containing Simmetrix's MeshSim for mesh generation. Future releases will contain TetGen for mesh generation. Alternatively, if you wish to continue using the MeshSim, you will need to purchase a CRIMSON Pro license
    • Updated license validity
    • Bug fixes
      2019.05.01 - Windows Only
      • Updated license validity
      2019.03.01 - Windows Only
      • Updated license validity
      2019.01.01 - Windows Only
      • Enhanced flowsolver now uses MPI version 3, improving performance
      • Fixed the /dev/shm warning that was being printed at the start of simulations
      • MPI layout improved so that it can accurately report the causes of failures in the console
      • Fixed the "transport endpoint is not connected" simulation bug that required disabling of network adaptors
      • Numerous other bug fixes and improvements
      2018.10.01 - Windows Only
      • Extended validity of the trial version
      • Re-enabled choice of colour for various objects in the data manager
      2018.07.01 - Windows Only
      • Faster start-up of the application
      • Extended flowsolver license period
      • Fixed "vtk bad allocation" crashes
      • Additional minor bug fixes
      2018.03.01 - Windows Only
      • Bug fix for workflows involving .stl discrete models
      2018.02.01 - Windows Only
      • Renewed MeshSim license
      • Minor bug fixes
      2018.01.01 - Windows Only
      • New PC-MRI module for processing patient specific velocity profiles from PC-MRI images. This enables users to impose the true aortic inflow profiles on their models.
        Please cite our upcoming article if you use this tool: Optimal B-spline Mapping of Flow Imaging Data for Imposing Patient-specific Velocity Profiles in Computational Hemodynamics, A. Gomez et al. IEEE TBME.
      • Integration with MITK 2016.11 and updates to ITK, VTK and some other external libraries.
      2017.10.02 - Windows Only
      • Updated the license expiry date for the CRIMSON flowsolver
      2017.06.01 - Windows Only
      • Updated the license expiry date for the CRIMSON flowsolver
      • Minor flowsolver library updates
      2017.05.01 - Windows Only
      • Supports loading discrete solid models (.stl file format) for your vessel geometry. The subsequent workflow is then identical to that for analytical solid models built inside CRIMSON (meshing, re-meshing, solver setup)
      • GUI integration of the CRIMSON incompressible Navier-Stokes flowsolver for running small simulations on the local machine
      2017.03.01 - Windows Only
      • Internal license update for mesh generation
      2017.01.01 - Windows Only - Linux coming soon
      • VMTK scripting in Python is now available in the CRIMSON Python Console. A brief introduction is provided below.

        Getting Started with Centerline calculation in CRIMSON using VMTK Python scripts

        1. Start by importing a .vtk file representing a vessel surface object into CRIMSON.
        2. Open the CRIMSON Python Console. Drag and drop the vessel surface object (1. in the image below) from the Data Manager window into Python Console Variable Stack (2. in the image below) in order to make the object accessible through Python interpreter.
        3. Type the following code into the Python Console (line-by line followed by enter) or in the Python Text Editor (and press run):

        													import vmtk
        													from vmtk import vmtkscripts
        													test=vmtkscripts.vmtkCenterlines()
        													test.Surface=wall_Right_Renal
        													test.AppendEndPoints=1
        													test.Execute()
        													result=test.Centerlines
        												

        Note that wall_Right_Renal is the name of the vessel object which was imported from a .vtk file. Adjust it to match the name of the object for your specific case!

        The code will make an additional window pop-up, which is used for VMTK interaction. The window will prompt the user to select 2 seed points on the rendered vessel object. Proceed as instructed by the window in order to place the seed points.

        The calculated centerlines are stored in the Python Console Variable Stack as a variable named result. In order to move the variable into the main CRIMSON Data Manager simply double click on result (marked in the image below). The centerlines will be automatically rendered in the CRIMSON rendering windows.

      2016.12.01 - Windows Only - Linux coming soon
      • Upgraded to new version of MITK (2016.03) - now with integrated VMTK
      • Fixed a file extension bug which caused saved netlist files to have the extension ".xml)" rather than ".xml".
      2016.05.03
      • Added the ability to select faces from list and not just by clicking in 3D window (see image below)
      • The deformable wall material is treated differently for flow/wall faces for which no material is set
        • Flow faces: no material is set
        • Wall faces: isotropic material with values from the Deformable Wall Boundary Condition is set
      2016.05.02
      • Multiple meshes are allowed per model
      •    Make sure to remove meshes you don't use - they use up a lot of memory!
      • Adapted meshes are now placed under the original model
      2016.05.01
      • Multiple bug fixes for Linux version
      • Added anisotropic deformable wall material
      2016.04.02
      • Bug fixes
      2016.04.01
      • Added Netlist boundary condition and circuit editor
      • Added the meshing option allowing to propagate mesh size from surface into the volume
      • Added missing tooltips in the interface
      • Added automatic detection of planar faces for imported solid models (e.g. planar BSpline surfaces are treated as planes)
      • Bug fixes
      2016.03.05
      • Renamed "Solver Setup" to "Solver Parameters". This requires upgrading the scene (see below) or re-creating the solver setup node
      • Materials fixed
      • Small bug fixes
      • Upgrage instructions

        1. Open python console
        2. Switch to text editor tab
        3. Paste the following code there
        4. 										import upgradeScene2
          										upgradeScene2.upgradeScenes2()
          										
        5. Run it and select the file(s) to upgrade.

      2016.03.04
      • Critical bug fixes
      2016.03.03
      • Added support for solution visualization
      • Save/load transfer functions for material/solution visualization
      2016.03.02
      • Fixed a problem in Python modules
      • Improved mesh adaptation
      2016.03.01
      • Added possibility to define and visualize materials
      • Isotropic deformable wall material for CRIMSON Solver
      •  If you want to add material to the older scene it is necessary to perform clean Autodetect and re-blend the vessel tree
      • Improved clean Autodetect for scenes with custom boolean operations
      2016.02.01
      • New license keys for the meshing library integrated
      • Several small bugs fixed
      • Seam edge rotation supported for lofting operations
      2016.01.01
      • Added deformable wall boundary condition
      • Mesh nodes at the edges between flow faces and wall faces are always classified as belonging to the wall
      • Fixed the libpng warning that was cluttering the console window
      • A message box is now shown if an error occurred during writing solver setup
      • Several crashes fixed
      • Added a CRIMSON python module template to enable easier creation of complete custom solver setup modules (see Getting started page of the documentation)
      • Updated and extended documentation
      2015.12.02
      • Python-based solver setup routines (see below for details)
      • Migrated to MITK 2015.05.02
      • Multiple bug fixes
      • The solver setup is now done using the python scripts to allow extensions to be built by the users without need for recompiling CRIMSON itself. The scene format was changed to adopt these modifications and therefore, the old scenes need to be upgraded to be loaded in the new version.

        1. Open python console
        2. Switch to text editor tab
        3. Paste the following code there
        4. 											import upgradeScene
          											upgradeScene.upgradeScenes()
          											
        5. Run it and select the file(s) to upgrade.

        Upgrading may take some time especially for large scenes. However, this only needs to be done once per scene and it will produce the "filename_new.mitk", which you can then load. The scene size will also increase, but you can fix this by loading the scene and save it to a different file using "Save as...". All the contents of the scene will be preserved, except for the adaptation parameters.

        The overall solver setup workflow has also changed.

        1. c:\Program Files\CRIMSON 2015.12.01\bin\Python\lib\site-packages\All things related to solution setup are grouped under solver type node (for now we just have CRIMSON Solver)
        2. For a new scene, setup starts with creating such a node with a button. For upgraded scenes it will be created automatically
        3. Multiple boundary condition sets can be used by a single study and BC sets can be shared between studies - you should choose which ones you want in a list (3). Again, for upgraded scenes this will be done automatically
        4. Solution files are loaded using button (4), and they will be shown in the hierarchy under the solution node (5)
        5. When adapting, you should choose the error indicator for the adaptation in the combo box

        The documentation for the Python interface can be found here. The Python code for CRIMSON Solver is located in "CRIMSON install dir"\bin\Python\lib\site-packages (similar location for Linux). If you want to add your own complete solver setup package, add the directory containing that package in Window -> Preferences -> Python solver setup.

      2015.10.01
      • Critical bug fix of generating incorrect bct files
      2015.09.02
      • New MeshSim version - fixes the problems with loading files with adapted meshes
      • Bug fixes
      2015.09.01
      • Critical bug fix for scene saving/loading
      2015.08.03
      • Migrated to MITK 2015.05
      • Reslice window can now be seen in other 2D windows as a line
      • Numerous bugs fixed
      2015.06.02
      • Added support for custom boolean operations
      • Implemented additional checks upon import of solids from STEP and IGES
      2015.06.01
      • Added a check box to enable/disable parallel blending
      • Tolerance for fitting curves to contours during lofting is now relative
      • Upon import of vessels, contours are converted to circles/ellipses if possible
      • Intersection detection is now faster
      2015.05.05
      • Changed to OpenCASCADE 6.9.0 - all vessel fuse is done in one operation leading to faster blending of complex models
      • Missing discretization parameters added to the
      2015.05.03
      • Async operations report the time it took to perform the operation into log
      • Added mesh exploration view
      • The polyline passed as the vessel path to the "Import vessels" action is now fitted with a spline to allow better interaction
      • and faster/less cluttered rendering
      2015.05.02
      • Presolver support for FSI commands
      • Fixed long names causing trouble on save
      • Fixed surfaces not visible in 2D windows for multi-phase data
      2015.05.01
      • Export/import vessel paths with contours for matlab data exchange. Access this functionality through context menu of the vessel tree in data manager.
      • Added workflow toolbar
      2015.04.02
      • Added reparenting action for vessel trees and vessel paths. Note that the derived data such as lofts, blends and meshes will not be preserved, but can be restored by re-lofting/blending/meshing.
      • Fixed surface-only meshes not displayed
      • Output information on which contours/vertices failed during blend
      • Fixed name not changing in fillet size tables
      • Added log message on async operation fail
      • Style-sheet polishing
      2015.04.01
      • Added mesh adaptation view
      • Added the notion of solver study which contains the solver setup, boundary condition set and mesh used to output solver setup
      • Added output of ybar and wall shear stress to CRIMSON solver setup
      • Better order of variables in solver.inp (not alphabetical)
      • Show/hide contours context menu items added.
      • Mesh information context menu item added
      • Error message is always shown if the async task has failed
      • Error message for blending shows the contours/vertices where the error occurred if possible.
      • The new lofts/blends now inherit the properties of the ones being replaced - such as name, color and opacity
      2015.03.11
      • Fixed control points placed on top of each other for polygons
      • Fixed empty circles being created on a single click without drag
      • Fixed problems for imported models failing to mesh after save/load project.
      2015.03.09
      • Corrected the units for RCR parameters
      2015.03.08
      • Added shortcuts for lofting (Alt-L) and loft preview (Alt-P)
      2015.03.05
      • Meshing view always shows all faces, but a new column is added that shows whether local parameters are modified for this face.
      2015.03.03
      • Fillet for "use inflow/outflow" as wall moved to the blending stage (reloft needed)
      • New meshsim keys
      • Views no longer retain vessel (or other type) node when none is selected - e.g. when no path is selected
      • Added the current project notion ("Open" action split to "Open project" and "Import", "Save project" saves to current project incrementally, added "Save As", "Save" action renamed to "Export")
      • Added list of recent projects
      2015.02.06
      • Changed tolerances to allow simpler swept vessels
      • Added functionality for setting minimum size due to curvature refinement
      • Fixed step solid model output
      2015.02.04
      • Fixed crash on closing meshing/solversetup view
      • Fixed performance and memory issues for segmented contours.
      2015.02.03
      • Fixed meshing problems for imported solids
      • Sewing for IGES removed
      • Allow importing/exporting STEP
      • Changed layout of contour modeling view to incorporate show/hide loft preview and warning label about error during preview
      2015.02.02
      • Added mesh information
      2015.02.01
      • Added new lofting algorithm (sweep)
      • Live preview for lofting
      • Allow meshing and setting up BC's for standalone (imported) model
      • Solid model and vessel path set the bounding box correctly
      2015.01.05
      • Fixed incorrect normal detection for CRIMSON Solver setup
      • Removed timeout for waiting for presolver to complete
      • Latest presolver version included into distribution
      2015.01.04
      • RCR's allowed on both inflows and outflows
      • Multiple instances of CRIMSON are allowed
      • Path editing performance improved
      2015.01.03
      • Fixed crash after unsuccessful meshing
      • Fixed render window menu not being shown after changing render window layout
      2015.01.02
      • First release based on MITK 2014.10, Qt5 and OpenCASCADE 6.8.0.