meshio
I/O for many mesh formats
What it is and what it does
meshio is a Python library for reading, writing, and converting between mesh file formats used in scientific computing and engineering. It supports a wide range of formats including STL, VTK, Gmsh, ANSYS, Exodus, CGNS, Nastran, and many others—both binary and ASCII variants. The library provides a unified interface to work with unstructured meshes regardless of their source format, making it easy to integrate mesh data from different simulation tools or to prepare meshes for use in different applications.
The package is built on numpy for core data handling and uses rich for command-line output formatting. It offers both a Python API for programmatic mesh manipulation and command-line tools for batch format conversion, compression, and inspection. Time-series mesh data (supported by XDMF format) can be read and written with dedicated reader/writer classes, and the library integrates with ParaView as a plugin for visualization.
Use it for:
- Convert mesh files between incompatible simulation software (e.g., Gmsh to ANSYS format) for interoperability in multi-tool workflows
- Batch process and compress mesh files from the command line without writing custom code
- Load mesh geometry and associated data (point/cell fields) into Python for post-processing or analysis
- Write custom-generated or modified meshes to standard formats for use in FEM or CFD solvers
- Read time-series mesh data from XDMF files for transient simulation analysis
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes mesh files in dozens of formats (STL, VTK, Gmsh, ANSYS, Exodus, and others), converting smoothly between them for scientific and engineering workflows.
Yes. meshio is a mature, stable library (Production/Stable, 2320 stars) with low install friction and no known vulnerabilities. Dormant maintenance (last release Jan 2024) is acceptable for a format-conversion tool with a stable API. Install it if you work with mesh files across multiple tools or need programmatic mesh I/O in Python.
Install
meshio on PyPI
pip
pip install meshiouv
uv add meshiopoetry
poetry add meshioInstalling meshio
Before you install
Low friction install with only three runtime dependencies (numpy, rich, importlib-metadata). Maintenance is dormant—last release was 2024-01-31 and last commit 2024-07-23—but the codebase is stable (Production/Stable classifier) and has accumulated 2320 GitHub stars since its 2015 inception.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the software freely provided you retain the copyright notice and license text.
Quickstart
pip install meshio
import meshio
mesh = meshio.read("input.msh")
mesh.write("output.vtk")
Verify before relying
- Whether optional dependencies (netcdf4, h5py) are required for specific formats you plan to use
- Performance characteristics for large meshes in your target formats
Package facts
| License | The MIT License (MIT) Copyright (c) 2015-2021 Nico Schlömer et al. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — numpy, rich, importlib-metadata |
| Maintenance | dormant — 926 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 904,709/month — #4,762 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: meshio-5.3.5-py3-none-any.whl
Keywords: mesh, file formats, scientific, engineering, fem, finite elements
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
meshioplusplusmeshioplusplus reads and writes mesh files in…
permissive · top 15,000 on PyPI
pygmshpygmsh provides a Python interface to Gmsh, a…
copyleft · top 15,000 on PyPI
gmshGmsh is a three-dimensional finite element mesh…
copyleft · top 15,000 on PyPI
numpy-stlReads, writes, and modifies STL mesh files…
permissive · top 15,000 on PyPI
pyevtkExports scientific data to binary VTK files for…
permissive · top 15,000 on PyPI
plyfileplyfile reads and writes ASCII and binary PLY…
copyleft · top 5,000 on PyPI
pysplashsurfpySplashsurf provides Python bindings for…
permissive · top 15,000 on PyPI
pygltflibReads, writes, and manipulates GLTF and GLB 3D…
permissive · top 5,000 on PyPI
scikit-femTransforms bilinear and linear forms into…
permissive · top 15,000 on PyPI
trx-pythonReads, writes, and manipulates TRX tractography…
permissive · top 15,000 on PyPI