Instructions how to install the openEMS Project and its dependencies.



  • Install all necessary dependencies, e.g. on Ubuntu 18.04 and above:

sudo apt-get install build-essential cmake git libhdf5-dev libvtk7-dev libboost-all-dev libcgal-dev libtinyxml-dev qtbase5-dev libvtk7-qt-dev

Note: For later versions of Ubuntu you may have to choose a later version of vtk.

  • Optional: Install octave and octave devel packages:

sudo apt-get install octave liboctave-dev
  • Optional: For the package hyp2mat you need additonal dependencies:

sudo apt-get install gengetopt help2man groff pod2pdf bison flex libhpdf-dev libtool
  • Optional: For the python interface, python with numpy, matplotlib, cython and h5py is required:

sudo pip install numpy matplotlib cython h5py

Clone, build and install

  • Clone this repository, build openEMS and install e.g. to “~/opt/openEMS”:

git clone --recursive
cd openEMS-Project
./ ~/opt/openEMS
  • Optional: Build all including hyp2mat, CTB and python:

./ ~/opt/openEMS --with-hyp2mat --with-CTB --python

Setup the Octave/Matlab or Python Interfaces

Update Instruction:

  • Perform an update in case of a new release

Note: Changes you may have made (e.g. to the tutorials or examples) may be overwritten!

cd openEMS-Project
git pull --recurse-submodules
./ ~/opt/openEMS --python


  • Download the latest 64bit openEMS_win

  • Unzip to a folder of your choice e.g. C:/ (zip contains an openEMS folder)

Setup the Octave/Matlab or Python Interfaces


  • Install Homebrew

  • Tap the openEMS-Project repository and build from source

brew tap thliebig/openems
brew install --HEAD openems
  • Optional: Install Octave

brew install octave
  • Optional: Add openEMS Matlab files to your Octave/Matlab environment

echo "addpath('$(brew --prefix)/share/openEMS/matlab:$(brew --prefix)/share/CSXCAD/matlab');" >> ~/.octaverc


brew upgrade --fetch-HEAD openems