FINESSE: Frequency domain INterfErometer Simulation SoftwarE


Daniel Brown and Andreas Freise 26.06.2017


FINESSE [1] is a numeric simulation for laser interferometers using the frequency domain and Hermite-Gauss modes. It is open source software distributed for OSX, Linux, and Windows. You can find installation instructions at:

The source code is available at:

This document gives a short overview of the main features of FINESSE. Please see the file for information on installing and running FINESSE.

How to cite FINESSE

For results using FINESSE please cite the following DOI:

  author       = {Brown, Daniel David and
                  Freise, Andreas},
  title        = {Finesse},
  month        = may,
  year         = 2014,
  note         = {{The software and source code is available at 
  doi          = {10.5281/zenodo.821363},
  url          = {}

Table of Contents:

1. Interferometer signals
2. Beam geometry and imaging 
3. Documentation, support and examples
4. Examples of the impact of FINESSE on commissioning tasks
5. FINESSE with Python (and Matlab)
6. References
7. Copyright and disclaimer

  1. Interferometer signals

FINESSE can be used to compute a great variety of interferometer signals for control systems, including longitudinal control, alignment control and thermal compensation, for example:

  1. Beam geometry and imaging

One of the main features of FINESSE is the extensive integration of physics related to the beam shape. This makes it possible to study interferometer signals in the presence of defects such as misalignments and mode mismatch, mirror surface defects, thermal deformations and mis-centred, split photo detectors.

FINESSE can also model imaging properties of optical systems, for example, it automatically determines eigenmodes of cavities and interferometers. Gouy phases and beam waist positions can be plotted as functions of positions of optical elements.

  1. Documentation, support and examples

The program is easy to use for students: For the basic use, including graphical output, no commercial software is required. The implemented physics is well documented in a 200 pages manual. Simple examples are provided as well as detailed input files for all main interferometric gravitational-wave detectors. The manual and examples can be found on the main FINESSE page at

In addition we provide resources and self-study material on laser interferometry in the form of Jupyter notebooks using FINESSE simulations:

For questions and discussions related to FINESSE we are hosting a mailing list and LIGO chat channel. Instructions on how to join these are provided at:

The simulation code has been developed and improved continuously over the last ten years. It has been frequently and successfully tested against experimental data from GEO 600, LIGO and Virgo. The code is under version control and is executed within a nightly test-suite to maintain stability during the ongoing development.

  1. Examples of FINESSE usage for commissioning tasks

The following examples highlight FINESSE analyses of pressing problems in detector commissioning. FINESSE predictions have been used to improve the detector performance and the FINESSE results have been shown to match experimental results:

  1. FINESSE with Python (and Matlab)

FINESSE is a stand-alone executable written in C. It is, however, well interfaced with Python using PYKAT ( We recommend using FINESSE with PYKAT from Jupyter notebooks, see for details.

Previously we used FINESSE together with Matlab. Our old Matlab tools (Simtools a collection of m files and mex files) are provided to run FINESSE simulations from Matlab or to communicate with a running FINESSE process from within Matlab.

  1. References

[1] A. Freise, G. Heinzel, H. Lueck, R. Schilling, B. Willke and K. Danzmann, "Frequency-domain interferometer simulation with higher-order spatial modes", Classical and Quantum Gravity, Vol.21, (2004), available at

[2] A. Freise: "The Next Generation of Interferometry: Multi-Frequency Optical Modeling, Control Concepts and Implementation", Ph.D. Thesis, University of Hannover (2003),

[3] H. Lueck, A. Freise, S. Gossler, S. Hild, K. Kawabe and K. Danzmann, "Thermal correction of the radii of curvature of mirrors for GEO 600", Classical and Quantum Gravity, Vol.21, (2004)

[4] A. Freise, M. Loupias : "The VIRGO north arm cavity: Examples for the use of the interferometer simulation Finesse", VIRGO note VIR-NOT-EGO-1390-269 (2004)

[5] J. Marque: 'Input mirrors thermal lensing effect Frequency modulation PRCL length in Virgo' talk at LSC meeting, LIGO document number LIGO-G070338-00-Z (2007)

[6] J. R. Smith, J. Degallaix, A. Freise, H. Grote, M. Hewitson, S. Hild, H. Lueck, K. A. Strain and B. Willke, "Measurement and simulation of laser power noise in GEO 600", Classical and Quantum Gravity, Vol.25, (2008)

[7] K. Kokeyama, K. Arai, P. Fulda, S. Doravari, L. Carbone, D. Brown, C. Bond and A. Freise, ‘Finesse simulation for the alignment control signal of the aLIGO in- put mode cleaner’, LIGO note T1300074,, (2013)

[8] C. Bond, P. Fulda, D. Brown and A. Freise: ‘Investigation of beam clipping in the Power Recycling Cavity of Advanced LIGO using Finesse’, LIGO note T1300954,, (2013)

[9] D. Brown, R. J. E. Smith, and A. Freise: Fast simulation of Gaussian-mode scattering for precision interferometry Journal of Optics, 2016,

[10] Daniel David Brown Interactions of light and mirrors: advanced techniques for modelling future gravitational wave detectors Ph.D. thesis, University of Birmingham, 2016

  1. Copyright and disclaimer

FINESSE and the accompanying documentation and the example files have been written by:

Andreas Freise
School of Physics and Astronomy
University of Birmingham
B15 2TT Birmingham

FINESSE has been substantially developed further during the last years with Daniel Brown providing the key contributions, such as the implementation of mirror maps, radiation pressure effects and quantum noise. Daniel's work on the code and the manual was essential for the publication of FINESSE as open source. Charlotte Bond has carefully tested the new code and provided tutorials, examples and documentation.

The software and documentation is provided as is without any warranty of any kind. Copyright (c) by Andreas Freise 1999 - 2020.

The source code for FINESSE is available as open source under the GNU General Public License version 3 as published by the Free Software Foundation.

This manual and all FINESSE documentation and examples available from and related pages are distributed under a Creative Commons Attribution-Noncommercial-Share Alike License, see