gmsh
Gmsh is a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities.
What it is and what it does
Gmsh is a Python wrapper around the official Gmsh finite element mesh generator, bundling the compiled application and SDK for cross-platform use. It provides both a graphical interface (via the FLTK toolkit) and a Python API for programmatic mesh generation, making it accessible to researchers and engineers who need to create structured or unstructured meshes for finite element analysis without managing separate C++ dependencies.
The package includes pre- and post-processing facilities and is intended for scientific and educational use. It ships as platform-specific wheels containing pre-built binaries, so installation is straightforward but tied to the supported architectures (macOS x86_64 and arm64, Linux x86_64, Windows x86_64). The copyleft license and binary-only distribution model mean it is best suited for open-source or academic projects rather than proprietary software.
Use it for:
- Generate unstructured tetrahedral meshes for finite element simulations in structural or fluid dynamics analysis
- Create structured or hybrid meshes for CAD-based engineering workflows with built-in geometry preprocessing
- Batch-process mesh generation in research pipelines using the Python API without launching the GUI
- Prototype and visualize mesh quality before running expensive computational solvers
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Gmsh is a three-dimensional finite element mesh generator that wraps the official Gmsh application and SDK for use in Python, providing both a command-line tool and a Python API for mesh generation with pre- and post-processing.
Yes, if you are working on open-source or academic finite element projects and need a mature, cross-platform mesh generator. The copyleft license and binary-only distribution make it unsuitable for proprietary software. Medium install friction is acceptable for the maturity and feature completeness it provides.
Install
gmsh on PyPI
pip
pip install gmshuv
uv add gmshpoetry
poetry add gmshInstalling gmsh
Before you install
Medium install friction due to platform-specific binary wheels (macOS x86_64 and arm64, Linux, Windows). Package is actively maintained with recent releases and carries Production/Stable status.
License in practice
GPLv2+ copyleft license means any derivative work or modification must also be open-source under compatible terms; acceptable for research and education but requires careful review in proprietary or closed-source projects.
Quickstart
pip install gmsh
import gmsh
gmsh.initialize()
gmsh.fltk.run()
gmsh.finalize()
Requires a platform with a supported binary wheel (macOS 10.15+, Windows x86_64, or Linux x86_64); no pure-Python fallback.
Verify before relying
- Whether the Python API is fully feature-complete relative to the C++ API or if some advanced features require direct C/C++ access
- Performance characteristics and typical mesh size limits for common use cases
Package facts
| License | GPLv2+ (copyleft) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 143 days since the last release |
| First released | |
| Downloads | 396,981/month — #6,966 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gmsh-4.15.2-py2.py3-none-macosx_10_15_x86_64.whl; gmsh-4.15.2-py2.py3-none-macosx_12_0_arm64.whl; gmsh-4.15.2-py2.py3-none-manylinux_2_24_x86_64.whl; gmsh-4.15.2-py2.py3-none-win_amd64.whl
Keywords: fem, mesh, finite element method, cad
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pygmshpygmsh provides a Python interface to Gmsh, a…
copyleft · top 15,000 on PyPI
meshioReads and writes mesh files in dozens of…
permissive · top 5,000 on PyPI
scikit-femTransforms bilinear and linear forms into…
permissive · top 15,000 on PyPI
meshioplusplusmeshioplusplus reads and writes mesh files in…
permissive · top 15,000 on PyPI
tetgentetgen wraps the TetGen C++ library to generate…
permissive · top 15,000 on PyPI
cytriangleCyTriangle wraps Jonathan Shewchuk's Triangle…
copyleft · top 15,000 on PyPI
manifold3dManifold3d creates and operates on manifold…
permissive · top 5,000 on PyPI
gpluginsGplugins provides a plugin system for…
unclear · top 15,000 on PyPI
openseespylinuxOpenSeesPy Linux provides a Python interface to…
unclear · top 15,000 on PyPI
anastructAnalyzes 2D frames and trusses to compute…
copyleft · top 15,000 on PyPI