This is a short guide for installing and running FINESSE. Please see
http://www.gwoptics.org/finesse/ for more information on FINESSE.
Last updated 1st April 2020.
Table of contents:
FINESSE is an interferometer simulation program written in C. It calculates light amplitudes in a user-specified interferometer configuration. It can generate output signals for various photo detector types. All calculations are done in the frequency domain. Gaussian beams can be used to model spatial effects.
FINESSE can be installed in different ways. We strongly recommend using the Anaconda installer, but other methods are listed below.
You can contact us at:
FINESSE is written in C and is compiled into a single binary executable called
kat. Direct interaction with FINESSE can be performed via a command-line
interface from a system terminal.
PYKAT is a Python wrapper for FINESSE. It enables a user to easily perform complex sets of modelling tasks efficiently, enables FINESSE to be used in conjunction with the wide variety of Python packages, and makes it easy to use FINESSE from Jupyter notebooks. This has become the preferred method of using FINESSE now for many users. We support PYKAT for Python 3.x.
You can try FINESSE and PYKAT in an online Jupyter notebook before you install it on your own computer. The link http://www.gwoptics.org/finesse/binder will forward you to an interactive notebook, hosted on https://mybinder.org/, in which we have pre-installed FINESSE and PYKAT. The initial loading of that page will be slow, but then you can play with FINESSE in a full Jupyter environment (note that you cannot save your work).
conda package manager from Anaconda is the recommended and
supported way of installing FINESSE. You need to download and install
Anaconda for Python 3.x from https://www.anaconda.com/.
We recommend creating a dedicated environment, for example with:
conda create --name finesse conda activate finesse
To install FINESSE and PYKAT together (recommended) use:
conda install -c gwoptics pykat
If instead you only want to install FINESSE, you can use:
conda install -c gwoptics finesse
We recommend Jupyter notebooks for using FINESSE, you can install Jupyter via:
conda install -c anaconda jupyter
We have created a more detailed installation guide for teaching
FINESSE in workshops and summer schools:
Remember that installing FINESSE via Conda will not make FINESSE accessible system wide. It will only be accessible from the Conda environment you install it in. This typically isn't an issue, as you can set your Conda environment to activate when you start your terminal (on OSX and Linux). On Windows, you can run everything from the Anaconda Prompt as this correctly sets up your environment.
Note that FINESSE is developed primarily for Linux and macOS, and while it does work on Windows, some features are not available in that system. In case this is a problem, you might consider using the Windows Subsystem for Linux (WSL) and then install FINESSE for Linux. For more information on WSL, see https://docs.microsoft.com/en-us/windows/wsl/about
For this you need to have PYKAT, FINESSE and Jupyter installed, and you must open the Jupyter notebook in the environment that PYKAT and FINESSE have been installed in.
Below is a simple example program to show how FINESSE can be used in a notebook.
For further examples and for guidance on getting started with FINESSE, we
encourage you to explore
from pykat import finesse from pykat.commands import * kat = finesse.kat() code = """ l laser 1 0 n1 s space 1 n1 n2 pd pout n2 xaxis laser P lin 1 10 100 """ kat.parse(code) out = kat.run() out.plot()
Without PYKAT, you can interact with FINESSE from a console window. If you
call the program by typing
kat in the console without any options or
filenames, a short message on the usage will be displayed. Using the option
-h a help screen with a syntax reference is printed (i.e.
./kat -h or
kat.exe -h). Page 2 of the syntax reference is shown using
You can also download the pre-compiled binaries of FINESSE from http://www.gwoptics.org/finesse/#download.
After downloading the appropriate package for your operating system, you can
install FINESSE simply by unpacking the zip (or tar.gz) file. This will create
a directory called
Finesse containing all the necessary files for FINESSE
(this does not provide PYKAT or Jupyter).
To run FINESSE you need to change into the working directory which contains all required files (the FINESSE binary 'kat', the init file 'kat.ini' and an interferometer input file).
If you want to automatically plot the results you need to have Gnuplot or Python installed. If you do not use Anaconda you might need to tell FINESSE where to find the Gnuplot or Python executable.
You can easily find the Gnuplot executable with the command:
This should show the full path, e.g. '/usr/bin/gnuplot'. Next open 'kat.ini' with a text editor and change the line beginning with `GNUCOMMAND' to (in this example):
GNUCOMMAND "/usr/local/bin/gnuplot -persist"
First, you must move the FINESSE folder to a location on your computer where
you want to store it. Be careful if putting it in a system-wide directory such
as 'Program Files', as you will require administrator rights to write to such a
location. Once it has been moved to the desired location, you should double
click the 'install.bat' file. Running this will bring up a command window to
update your PATH variables. After this has been run you must not move this
Finesse folder, as the system PATH variable has been set for this directory
only. If you do move the folder then please re-run
install.bat will also attempt to find a Gnuplot installation on your
computer and set up FINESSE to work with it. If it does not find one you will
either have to install it first, and re-run
install.bat, or manually se tup the
kat.ini file to use your gnuplot installation. Please install Gnuplot from:
If you have a space in the path to
gnuplot.exe, you need to use
encapsulate the path and GNUCOMMAND:
GNUCOMMAND '"C:\Program Files\gnuplot\bin\Wgnuplot.exe" --persist $s'
GNUCOMMAND 'C:\gnuplot\bin\Wgnuplot.exe --persist $s'
Starting from FINESSE version 2.1, the Windows version should show Gnuplot
plots, and allow those plots to be kept open while still using the terminal.
FINESSE will now internally use a combination of both
gnuplot.exe, which it expects to be in the same path as stated in the
GNUCOMMAND; this is irrespective of which binary is actually stated in the
If you want access to the latest development version of FINESSE you will have to set up up the development environment. This is significantly easier on Linux and macOS. On Windows we recommend the Windows Subsystem for Linux (WSL).
The FINESSE source is available at:
After installing all required dependencies, FINESSE can be compiled using the build script
The PYKAT source code can be obtained from: https://git.ligo.org/finesse/pykat