pyvista
3D visualization and mesh analysis for science and engineering.
What it is and what it does
PyVista is a Python layer over the Visualization Toolkit (VTK) that abstracts away VTK's complexity and provides a NumPy-friendly interface for 3D mesh and point-cloud work. It handles dataset structures for points, surfaces, and volumes; offers a large filter API (clipping, slicing, thresholding, smoothing, and others); and provides one plotting framework that works interactively in Jupyter, headlessly in CI pipelines, and embedded in larger applications.
The library is built for production use: it runs image-regression tests across all supported Python versions and VTK releases, maintains a stable public API with deliberate deprecation cycles, and locks rendering behavior under visual regression baselines. It is designed to be extended by downstream packages through a registered-accessor pattern, allowing third-party domain-specific filters and plotter components without subclassing or vendoring.
Use it for:
- Visualize point clouds and 3D scan data in Jupyter notebooks or standalone scripts for exploratory analysis.
- Generate publication-quality 3D figures for scientific papers and technical reports.
- Automate batch 3D mesh processing workflows (clipping, smoothing, thresholding) in CI pipelines.
- Build custom 3D visualization applications by embedding PyVista's plotting framework in web or desktop apps.
- Analyze volumetric data (medical imaging, simulation results) with interactive slicing and filtering.
- Extend PyVista with domain-specific tools via the accessor API for specialized engineering or scientific domains.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyVista provides a NumPy-native API for 3D visualization and mesh analysis, with dataset structures and filters for points, surfaces, and volumes, plus a unified plotting framework for notebooks, scripts, CI, and applications.
Yes. PyVista is a mature, actively maintained library (last commit 2026-08-14, 3770 GitHub stars) with low install friction, MIT licensing, zero known vulnerabilities, and broad Python version support (3.10–3.14). It is the standard choice for 3D visualization in scientific Python and is built for production reliability. Install it if you need 3D mesh visualization, point-cloud analysis, or volumetric data exploration.
Install
pyvista on PyPI
pip
pip install pyvistauv
uv add pyvistapoetry
poetry add pyvistaInstalling pyvista
Before you install
Low friction: pure Python wheel with well-maintained dependencies (numpy, matplotlib, vtk). Active maintenance with recent releases; last commit 2026-08-14. Supports Python 3.10 through 3.14 across macOS, Windows, and POSIX systems.
License in practice
MIT license (permissive) allows use in commercial and proprietary projects with minimal restrictions—only requiring license attribution.
Quickstart
pip install pyvista
import pyvista as pv
mesh = pv.Sphere()
mesh.plot()
Requires Python 3.10 or later; vtk dependency may require system graphics libraries on headless systems.
Verify before relying
- Whether rendering works without a display server in all CI environments or requires xvfb/similar setup.
- Performance characteristics and memory usage for large meshes (millions of points/cells).
- Whether the extension API is stable enough for production third-party packages.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — cyclopts, matplotlib, numpy, pillow, pooch, scooby, typing-extensions, vtk |
| Maintenance | actively maintained — 88 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,396,838/month — #3,959 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyvista-0.48.4-py3-none-any.whl
Keywords: mesh, numpy, plotting, vtk
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
pyvistaqtPyVistaQt integrates VTK 3D visualization with…
permissive · top 15,000 on PyPI
ansys-tools-visualization-interfaceProvides a Python API that abstracts…
permissive · top 15,000 on PyPI
pytetwildpytetwild converts surface meshes into…
copyleft · top 15,000 on PyPI
pyevtkExports scientific data to binary VTK files for…
permissive · top 15,000 on PyPI
vtkVTK is a 3D graphics, image processing, and…
permissive · top 5,000 on PyPI
pyvista-zstdCompress and decompress VTK datasets using…
permissive · top 15,000 on PyPI
fast-simplificationSimplifies 3D meshes by reducing the number of…
permissive · top 15,000 on PyPI
PyNiteFEAPyNiteFEA performs 3D elastic structural finite…
permissive · top 15,000 on PyPI
geoh5pygeoh5py provides a Python API to read, write,…
copyleft · top 15,000 on PyPI
open3dOpen3D provides data structures and algorithms…
permissive · top 5,000 on PyPI