edsaac
stpyvista
HTML

🧊 Show 3D visualizations from PyVista in Streamlit

Last updated Jul 1, 2026
105
Stars
5
Forks
11
Issues
+1
Stars/day
Attention Score
74
Language breakdown
No language data available.
Files click to expand
README

🧊 stpyvista

Show PyVista visualizations in Streamlit.

stpyvista examples and documentation

Github Repo Check it at PyPI Github tests repo

Streamlit Cloud

Take a PyVista plotter object and show it on Streamlit as an interactive-ish component (as in it can be zoomed in/out, moved and rotated, but the visualization state is not returned). It can use either Panel or Trame to export the PyVista plotter to HTML; stpyvista places it within an iframe in Streamlit.


📦 Installation

pip install stpyvista

📚 Demo and documentation

stpyvista examples and documentation


✨ Minimal example

Render a cube
import streamlit as st
import pyvista as pv
from stpyvista import stpyvista

Initialize a plotter object

plotter = pv.Plotter(window_size=[400,400])

Create a mesh with a cube

mesh = pv.Cube()

Add some scalar field associated to the mesh

mesh['my_scalar'] = mesh.points[:, 2] * mesh.points[:, 0]

Add mesh to the plotter

plotter.addmesh(mesh, scalars='myscalar', cmap='bwr')

Final touches

plotter.view_isometric() plotter.addscalarbar() plotter.background_color = 'white'

Show in web-app

stpyvista(plotter)

🎈 Deploying to Streamlit Community Cloud

  • By default, Community Cloud will run Python 3.14 🎈. Check this on New App → Advanced settings... → Python version.
  • Add stpyvista to the requirements.txt file.
  • Install libgl1-mesa-glx, libosmesa6-dev and libxcursor-dev adding them to the packages.txt file.
  • The Community Cloud is a Debian headless machine and VTK will attempt to find a rendering environment (more info). Setting these two environment variables should do the trick:
import os

os.environ["VTKUSEX"] = "OFF" os.environ["VTKDEFAULTOPENGL_WINDOW"] = "vtkOSOpenGLRenderWindow"


🚩 Known issues

  • [x] cadquery conflicts: cadquery bundles an outdated version of vtk, which ends up conflicting with the vtk version that pyvista requires. Current solution is to install stpyvista before cadquery in a virtual environment. For fixing instructions, check this post on discuss.
  • [ ] NSInternalInconsistencyException thrown when running on macOS. Current solution is to deploy using a VM.

🍹 Solved issues

  • [x] RuntimeError thrown when running Python 3.9. Upgrading to panel>=1.4.0 or using Python 3.10 fixes this.
  • [x] Buggy colormaps when using panel==1.4.0. This issue was fixed with panel==1.4.1.
  • [x] cmocean==4.0.1 will raise an exception while trying to register its colormaps to matplotlib, making PyVista to crash. This issue was fixed in cmocean==4.0.3.

🍏 Also check

🔗 More in this category

© 2026 GitRepoTrend · edsaac/stpyvista · Updated daily from GitHub