This is an example wave simulation engine written in C++. The engine comes with a native Linux application which uses gtkmm and cairomm. A java version is also available.
gtk and gtkmm development packages (libgtkmm-3.0-dev).
Assuming that the working directory is the root of the project.
$ mkdir build && cd build
$ cmake .. && make
$ mv wavesim_cpp ..
$ cmake . && make
The program needs the data folder in the working directory.
$ ./wavesim_cpp
INI file reader provided from https://github.com/benhoyt/inih.