Skip to content
Distributed co-simulation software
C++ CMake
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Coral is free and open-source co-simulation software built from the ground up with support for FMI and distributed simulations in mind. It is primarily a C++ library that can be embedded into any application that needs to perform co-simulations. However, we've also made some simple command-line applications for testing, demonstration and research purposes.

Coral was developed as part of the R&D project Virtual Prototyping of Maritime Systems and Operations (ViProMa), and is currently maintained by SINTEF Ocean.

Terms of use

Coral is free and open-source software released under the terms of the Mozilla Public License v. 2.0. For more information, see the MPL 2.0 FAQ.


Browse the API documentation online.

Build requirements

The version/release numbers specified for compilers, tools and libraries below are the lowest ones used for the official Coral builds, and are therefore known to work. Other versions are likely to work too, especially if they are newer or at least have the same major release number, but this is not guaranteed.

Supported platforms and compilers:

  • Windows: Visual Studio 2015 or newer.
  • Linux: GCC 4.9 or newer.

Required build tools:

  • CMake v3.6, to generate the build system.
  • The Protocol Buffers compiler, to parse the protocol buffer files and generate C++ code for them.
  • Doxygen, to generate API documentation (optional).

Required libraries:

Optional libraries (only necessary if you want to build and run tests):

The recommended way to obtain all these, which works on all supported platforms, is to use vcpkg and install the packages listed in vcpkg-deps.txt and optionally vcpkg-test-deps.txt.


Coral is built using a fairly standard CMake procedure, so we refer to the CMake documentation for details and advanced usage, and only give a quick walk-through of the procedure here.

First, in a terminal/command-line window, change to the root source directory (i.e., the one which contains the present README file), and enter the following commands:

mkdir build
cd build
cmake ..

This will locate dependencies and generate the platform-specific build system. Next, build the software by entering the following command (still within the build directory):

cmake --build .

Finally, it is a good idea to run the tests, to see that everything works as it should. The command for this is (unfortunately) platform dependent:

cmake --build . --target RUN_TESTS          &:: Windows
cmake --build . --target test               #   Linux
You can’t perform that action at this time.