A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities 

Christophe Geuzaine and Jean-François Remacle

Gmsh is an open source 3D finite element mesh generator with a built-in CAD engine and post-processor. Its design goal is to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization capabilities. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of any input to these modules is done either interactively using the graphical user interface, in ASCII text files using Gmsh's own scripting language (.geo files), or using the C++, C, Python or Julia Application Programming Interface (API).

See this general presentation for a high-level overview of Gmsh and recent developments, the screencasts for a quick tour of Gmsh's graphical user interface, and the reference manual for a more thorough overview of Gmsh's capabilities, some frequently asked questions and the documentation of the C++, C, Python and Julia API.

The source code repository contains many examples written using both the built-in script language and the API (see e.g. the tutorialsand the and demos).


Gmsh is distributed under the terms of the GNU General Public License (GPL):

If you use Gmsh please cite the following reference in your work (books, articles, reports, etc.): C. Geuzaine and J.-F. Remacle. Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities. International Journal for Numerical Methods in Engineering 79(11), pp. 1309-1331, 2009. You can also cite additional references for specific features and algorithms.

To help fund Gmsh development, you can make a donation.


Please report all issues on



Gmsh is copyright (C) 1997-2020 by C. Geuzaine and J.-F. Remacle (see the CREDITS file for more information) and is distributed under the terms of the GNU General Public License (GPL) (version 2 or later, with an exception to allow for easier linking with external libraries).

In short, this means that everyone is free to use Gmsh and to redistribute it on a free basis. Gmsh is not in the public domain; it is copyrighted and there are restrictions on its distribution (see the license and the related frequently asked questions). For example, you cannot integrate this version of Gmsh (in full or in parts) in any closed-source software you plan to distribute (commercially or not). If you want to integrate parts of Gmsh into a closed-source software, or want to sell a modified closed-source version of Gmsh, you will need to obtain a different license. Please contact us directly for more information.


These are two screenshots of the Gmsh user interface, with either the light or dark user interface theme. See the ONELAB web site for more.

screenshot screenshot


  • Gmsh uses OpenCascade for constructive geometry features, and interfaces the optional external mesh and mesh adaptation librairies Netgen and Mmg3d.
  • Gmsh's cross-platform graphical user interface is based on FLTK and OpenGL.
  • Gmsh's high quality vector PostScript, PDF and SVG output is produced by GL2PS.
  • Gmsh implements a ONELAB server to drive external solvers such as the open source finite element solver GetDP. Gmsh and GetDP are bundled in the ONELAB app for iPhone, iPad and Android devices.


Gmsh Cross-patch and STL meshing (Compounds) Quad meshing High-order meshing High-order visualization Homology solver