The core library implements all the functionality, which is then exposed to the user via the GUI, Python library, or CLI.

It is split into four (somewhat interdependent) parts: sme::model, sme::mesh, sme::simulate and sme::common.

The public headers for each part are in /include/sme, and the private implementation details are in /src.

For each component X there is

  • X.hpp the public interface

  • X.cpp the private implementation

  • X_t.cpp the tests

  • X_bench.cpp the benchmarks (optional)


Importing, exporting and editing spatial models.


Constructing the simplified boundary lines and triangular mesh approximation to the geometry.


Simulating the model, either with Pixel or dune-copasi.


Symbolic math, TIFF import/export, other utility functions.