VTKJS#
Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).
import panel as pn
pn.extension('vtk')
The VTK
pane renders vtk.js files inside a panel, making it possible to load and interact with complex geometries in 3D.
Parameters:#
For details on other options for customizing the component see the layout and styling how-to guides.
axes
(dict): A dictionary with the parameters of the axes to construct in the 3D view. Must contain at leastxticker
,yticker
andzticker
.[x|y|z]ticker
is a dictionary which contains:ticks
(array of numbers) - required. Positions in the scene coordinates of the corresponding axis tickslabels
(array of strings) - optional. Label displayed respectively to theticks
positions.
If
labels
are not defined they are inferred from theticks
array.digits
: number of decimal digits whenticks
are converted tolabels
.fontsize
: size in pts of the ticks labels.show_grid
: boolean. If true (default) the axes grid is visible.grid_opacity
: float between 0-1. Defines the grid opacity.axes_opacity
: float between 0-1. Defines the axes lines opacity.
camera
(dict): A dictionary reflecting the current state of the VTK cameraenable_keybindings
(bool): A boolean to activate/deactivate keybindings. Bound keys are:s: set representation of all actors to surface
w: set representation of all actors to wireframe
v: set representation of all actors to vertex
r: center the actors and move the camera so that all actors are visible
The mouse must be over the pane to work.
Warning: These keybindings may not work as expected in a notebook context, if they interact with already bound keys.orientation_widget
(bool): A boolean to activate/deactivate the orientation widget in the 3D pane.ìnteractive_orientation_widget
(bool): If True the orientation widget is clickable and allows to rotate the scene in one of the orthographic projections.object
(str or object): Can be a string pointing to a local or remote file with a.vtkjs
extension.
The simplest way to construct a VTK
pane is to give it a vtk.js file which it will serialize and embed in the plot. The VTK
pane also supports the regular sizing options provided by Bokeh, including responsive sizing modes:
vtk_pane = pn.pane.VTK(
'https://raw.githubusercontent.com/Kitware/vtk-js/master/Data/StanfordDragon.vtkjs',
sizing_mode='stretch_width', height=400, enable_keybindings=True, orientation_widget=True
)
vtk_pane