# pyvista-js: PyVista-like 3D visualization for jupyterlite / vtk.js

**URL:** https://discourse.vtk.org/t/pyvista-js-pyvista-like-3d-visualization-for-jupyterlite-vtk-js/16354
**Category:** Web
**Tags:** pyvista, vtkjs
**Created:** [March 24, 2026, 10:03pm UTC](https://discourse.vtk.org/t/pyvista-js-pyvista-like-3d-visualization-for-jupyterlite-vtk-js/16354 "2026-03-24T22:03:05Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Tetsuo\_Koyama](https://discourse.vtk.org/user_avatar/discourse.vtk.org/tetsuo_koyama/32/10553_2.png) [@Tetsuo\_Koyama](https://discourse.vtk.org/u/Tetsuo_Koyama)
#### Post date: [March 24, 2026, 10:03pm UTC](https://discourse.vtk.org/t/pyvista-js-pyvista-like-3d-visualization-for-jupyterlite-vtk-js/16354/1 "2026-03-24T22:03:05Z")

</div>

### Describe something you’ve made

Hi everyone!

I’m excited to share [pyvista-js](https://github.com/tkoyama010/pyvista-js), a new library that brings the intuitive API of [PyVista](https://github.com/pyvista/pyvista) to the browser via [vtk.js](https://github.com/Kitware/vtk-js).

It is specifically designed to work seamlessly in WASM environments like stlite and JupyterLite, making complex 3D visualization accessible without a dedicated backend server.

**Why pyvista-js?**  
While PyVista is powerful, rendering interactive 3D graphics in a purely client-side environment (like stlite) has been a challenge. pyvista-js bridges this gap by providing a familiar Pythonic API that feels like PyVista but runs entirely on vtk.js.

| [Try it with JupyterLite](https://tkoyama010.github.io/pyvista-js/) | [Try it with Stlite](https://tkoyama010.github.io/pyvista-js/stlite) |
| --- | --- |
| ![jupyterlite-preview](https://discourse.vtk.org/uploads/default/original/2X/c/ca4f5f27f8d0afcaba3e7fceaffa3d70fc0d55c4.gif) | ![stlite-preview](https://discourse.vtk.org/uploads/default/original/2X/b/b2995f309d75a96f282a7814a706a5061e3f8002.gif) |

---

<div class="post-metadata">

### Author: ![finetjul](https://discourse.vtk.org/user_avatar/discourse.vtk.org/finetjul/32/154_2.png) [@finetjul](https://discourse.vtk.org/u/finetjul)
#### Post date: [March 24, 2026, 10:10pm UTC](https://discourse.vtk.org/t/pyvista-js-pyvista-like-3d-visualization-for-jupyterlite-vtk-js/16354/2 "2026-03-24T22:10:04Z")

</div>

> [@Tetsuo\_Koyama](#):
>
> pyvista-js bridges this gap by providing a familiar Pythonic API that feels like PyVista but runs entirely on vtk

Neat !

Why not leverage VTK.wasm instead of VTK.js ?

---

<div class="post-metadata">

### Author: ![Tetsuo\_Koyama](https://discourse.vtk.org/user_avatar/discourse.vtk.org/tetsuo_koyama/32/10553_2.png) [@Tetsuo\_Koyama](https://discourse.vtk.org/u/Tetsuo_Koyama)
#### Post date: [March 25, 2026, 5:57pm UTC](https://discourse.vtk.org/t/pyvista-js-pyvista-like-3d-visualization-for-jupyterlite-vtk-js/16354/3 "2026-03-25T17:57:33Z")

</div>

Awesome idea! I created [pyvista-wasm](https://github.com/tkoyama010/pyvista-wasm) . It works fine 😉

> **[Stlite Sharing](https://edit.share.stlite.net/#!CgZhcHAucHkS4AQKBmFwcC5weRLVBArSBCIiIlN0cmVhbWxpdCBhcHAgZm9yIHRoZSBweXZpc3RhLWpzIHN0bGl0ZSBkZW1vLiIiIgoKaW1wb3J0IHN0cmVhbWxpdCBhcyBzdAppbXBvcnQgc3RyZWFtbGl0LmNvbXBvbmVudHMudjEgYXMgY29tcG9uZW50cwoKaW1wb3J0IHB5dmlzdGFfd2FzbSBhcyBwdgpmcm9tIHB5dmlzdGFfd2FzbSBpbXBvcnQgZXhhbXBsZXMKCmNvbG9yID0gc3Quc2VsZWN0Ym94KAogICAgIkNvbG9yIiwKICAgIFsiZ3JheSIsICJ3aGl0ZSIsICJyZWQiLCAiZ3JlZW4iLCAiYmx1ZSIsICJ5ZWxsb3ciLCAiY3lhbiIsICJtYWdlbnRhIl0sCikKCm9wYWNpdHkgPSBzdC5zbGlkZXIoIk9wYWNpdHkiLCBtaW5fdmFsdWU9MC4wLCBtYXhfdmFsdWU9MS4wLCB2YWx1ZT0wLjgsIHN0ZXA9MC4xKQoKcGxvdHRlciA9IHB2LlBsb3R0ZXIoKQoKbWVzaCA9IGV4YW1wbGVzLmRvd25sb2FkX2J1bm55KCkKCnBsb3R0ZXIuYWRkX21lc2gobWVzaCwgY29sb3I9Y29sb3IsIG9wYWNpdHk9b3BhY2l0eSkKCmh0bWwgPSBwbG90dGVyLl9yZW5kZXJlci5fZ2VuZXJhdGVfc3RhbmRhbG9uZV9odG1sKCkgICMgbm9xYTogU0xGMDAxCmNvbXBvbmVudHMuaHRtbChodG1sLCBoZWlnaHQ9NjAwKRoMcHl2aXN0YS13YXNt)**
>
> Write and share Streamlit apps online serverlessly
