ipywidget for vtkRenderWindow
Project description
ipyvtklink
An ipywidget for vtkRenderWindow (formerly ipyvtk-simple
)
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.
Installation
For use with PyVista, simply install with pip
or conda
:
pip install ipyvtklink
or
conda install -c conda-forge ipyvtklink
Run in Docker
A Docker image is prebuilt and hosted in the ipyvtklink repository's packages.
To run in Docker:
docker pull ghcr.io/kitware/ipyvtklink:latest
docker run -p 8888:8888 ghcr.io/kitware/ipyvtklink:latest
and open the vtk.ipynb
notebook.
Additionally, this can be used with ParaView. An example is given in
paraview.ipynb
which can be run via:
docker pull ghcr.io/kitware/ipyvtklink-paraview:latest
docker run -p 8878:8878 ghcr.io/kitware/ipyvtklink-paraview:latest
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 has fully implemented downstream support for ipyvtklink
. See PyVista's Documentation
See the pyvista.ipynb
for an original proof of concept.
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 ipyvtklink.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)
ParaView Python
See instructions above for running ParaView in a Docker container.
import paraview.simple as pvs
from ipyvtklink.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)
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
Built Distribution
File details
Details for the file ipyvtklink-0.2.3.tar.gz
.
File metadata
- Download URL: ipyvtklink-0.2.3.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e5a8d0b0b4da9ae5db96618a8ed6ecdbe7b83b0c79b9b52c998129b35da825d |
|
MD5 | 85b060fc9cdccab75f6aa6e8f09574b3 |
|
BLAKE2b-256 | d6e64771ca4dd69e933af9ab1308efafaf797ebc0ef0626ee5615ea9e8e2665b |
File details
Details for the file ipyvtklink-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: ipyvtklink-0.2.3-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d310a24bd130e077c346ff6ab0991f236794e1d76a1fff5edda92e5e758a143 |
|
MD5 | e8f78e62d9f00ef7a3dbb529d320acfa |
|
BLAKE2b-256 | ff8c8cbca6af19e6aeabd66e45b86b02bc22b845defa8f63066165adc58b429a |