Skip to main content

ipywidget for vtkRenderWindow

Project description

ipyvtk_simple

Binder PyPI

An ipywidget for vtkRenderWindow

This is an early prototype of creating a Jupyter interface to VTK. This toolkit is a proof of concept and a more polished tool will be available as ipyvtk in the future.

The code here was implemented from the work done by Andras Lasso under an MIT License (see the source).

The goal is to enable this widget to work with any server side vtkRenderWindow This render window could be from VTK Python, ParaView, or PyVista.

Please note that vtk is not listed as a requirement for this package to simplify its installation in virtual environments where VTK may be built from source or bundled with ParaView and we do not want to install the wheels from PyPI.

Run in Docker

To build and run in Docker:

docker build -t ipyvtk_simple .
docker run -p 8878:8878 ipyvtk_simple jupyter lab --port=8878 --no-browser --ip=0.0.0.0 --allow-root

and open the pyvista.ipynb notebook.

Additionally, this can be used with ParaView. An example is given in paraview.ipynb which can be run via:

docker build -t ipyvtk_pv -f paraview.dockerfile .
docker run -p 8877:8877 ipyvtk_pv jupyter lab --port=8877 --no-browser --ip=0.0.0.0 --allow-root

and open the paraview.ipynb notebook.

Examples

You may have to build jupyter lab extensions for this to work in Lab. This is known to work well in Notebook.

PyVista

PyVista is working to implement this in a pull request. See the pyvista.ipynb for a proof of concept.

demo-1

demo-2

Python VTK

The widget here can be used with VTK. Here is a minimal example showing how to pass any vtkRenderWindow to the ViewInteractiveWidget:

import vtk
from ipyvtk_simple.viewer import ViewInteractiveWidget

# Create some data
cylinder = vtk.vtkCylinderSource()
cylinder.SetResolution(8)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(cylinder.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)

# Set up render window
ren = vtk.vtkRenderer()
ren_win = vtk.vtkRenderWindow()
ren_win.SetOffScreenRendering(1)
ren_win.SetSize(600, 600)
ren_win.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(ren_win)
style = vtk.vtkInteractorStyleTrackballCamera()
iren.SetInteractorStyle(style)

# Add actor to scene
ren.AddActor(actor)
ren.ResetCamera()

# Display
ViewInteractiveWidget(ren_win)

demo-3

ParaView Python

See instructions above for running ParaView in a Docker container.

import paraview.simple as pvs
from ipyvtk_simple.viewer import ViewInteractiveWidget

# Create data on the pipeline
wavelet = pvs.Wavelet()
contour = pvs.Contour(Input=wavelet)
contour.ContourBy = ['POINTS', 'RTData']
contour.Isosurfaces = [63, 143, 170, 197, 276]

# Set the data as visible
pvs.Show(contour)

# Fetch the view and render the scene
view = pvs.GetActiveView()
pvs.Render(view)

# Fetch the RenderWindow
ren_win = view.GetClientSideObject().GetRenderWindow()
# Display the RenderWindow with the widget
ViewInteractiveWidget(ren_win)

demo-4

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipyvtk_simple-0.1.4.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

ipyvtk_simple-0.1.4-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file ipyvtk_simple-0.1.4.tar.gz.

File metadata

  • Download URL: ipyvtk_simple-0.1.4.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for ipyvtk_simple-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ffac12e9287affd7c31538ac7f2d2390c72342a73b31010735b275ca841ceaa5
MD5 074651629b0059da00e31a112330f01f
BLAKE2b-256 86f2cc932bf7db404f4bd9f14fbd4d03a043ed5cb72e9b968f4bf6a1e85d21e3

See more details on using hashes here.

File details

Details for the file ipyvtk_simple-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: ipyvtk_simple-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for ipyvtk_simple-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8c1b9590609f03bf620cbd0d1813aea4db9e5e3acde772e38a5c31e5d08cb2b1
MD5 0b0f477f4d11f809429100c38cf1aa42
BLAKE2b-256 c5a324aad4995661606ca249a8509ce260e0319a66bda9b7ef9c4f9609a30900

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page