Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
8a0e205
chore(deps): bump vtk dev version
jspanchu Aug 25, 2026
644bcc8
chore(deps): add trame-vuetify which is needed for devs to check exam…
jspanchu Aug 25, 2026
880206b
chore(examples): remove obsolete example
jspanchu Aug 25, 2026
9fb5a4f
chore(examples): remove unused tests from examples
jspanchu Aug 25, 2026
a340027
chore(examples): update actor_highlight_on_hover.py
jspanchu Aug 25, 2026
3e47dfa
chore(examples): update balloon_widget.py
jspanchu Aug 25, 2026
2528819
chore(examples): update border_widget.py
jspanchu Aug 25, 2026
ac72bad
chore(examples): update widgets_plane_clip.py
jspanchu Aug 25, 2026
f13493b
chore(examples): update axes_actor.py
jspanchu Aug 25, 2026
f3aba21
chore(examples): update charts_scatter.py
jspanchu Aug 25, 2026
0803206
chore(examples): update cone.py
jspanchu Aug 25, 2026
1721686
chore(examples): update flow.py
jspanchu Aug 25, 2026
d1afded
chore(examples): update glyph.py
jspanchu Aug 25, 2026
c45dfe8
chore(examples): update invoke.py
jspanchu Aug 25, 2026
b9d06c9
chore(examples): update lut.py
jspanchu Aug 25, 2026
e4f68a0
chore(examples): update many_actors.py
jspanchu Aug 25, 2026
f28cc93
chore(examples): update silhouette.py
jspanchu Aug 25, 2026
9d43523
chore(examples): update volume.py
jspanchu Aug 25, 2026
a164eef
chore(examples): update widgets_box.py
jspanchu Aug 25, 2026
2991ac0
chore(examples): update widgets_camera.py
jspanchu Aug 25, 2026
673410d
chore(examples): update widgets_plane_slice.py
jspanchu Aug 25, 2026
4fe4d9b
chore(examples): add screenshot for actor_picker.py
jspanchu Aug 25, 2026
1227200
chore(examples): add screenshot for file_viewer.py
jspanchu Aug 25, 2026
6ed4d44
chore(examples): show edges on sphere actor
jspanchu Aug 25, 2026
154395c
chore(examples): add wasm64_large_mesh.py
jspanchu Aug 25, 2026
d9937bf
chore(examples): add render_benchmark.py
jspanchu Aug 25, 2026
403d500
chore(examples): remove vtk from requirements.txt as it is covered in…
jspanchu Aug 25, 2026
2604444
chore(doc): add example gallery
jspanchu Aug 25, 2026
7878d49
docs(example): update basic demo
jourdain Aug 26, 2026
c63fd49
docs(readme): use setup instructions
jourdain Aug 26, 2026
62c2f05
docs(demo): update progress
jourdain Aug 26, 2026
d61daf1
docs(demo): update snapshot viewer
jourdain Aug 26, 2026
fac990a
docs(demo): update bike
jourdain Aug 26, 2026
1d8a2b9
docs(demo): update widgets bike demos
jourdain Aug 26, 2026
3d94047
chore(examples): fix an unexpected kwarg 'representation' error
jspanchu Aug 26, 2026
19d28a0
chore(examples): use track_interactor_observer_instances flag to auto…
jspanchu Aug 26, 2026
5d10b44
docs(examples): some cleanup
jourdain Aug 26, 2026
bdf109b
chore(examples): add back CLIENT_TYPE selection
jspanchu Aug 26, 2026
304ba8f
chore(examples): set self.ui in _build_ui()
jspanchu Aug 26, 2026
83b4606
chore(examples): add uv script command in preamble
jspanchu Aug 26, 2026
2b05e5d
chore(examples): import vtklocal from trame.widgets instead of trame_…
jspanchu Aug 26, 2026
74eb8dd
docs(widgets_plane_slice): cleanup
jourdain Aug 26, 2026
05f7d12
docs(widgets_plane_clip): code cleanup
jourdain Aug 26, 2026
53924d5
docs(widgets_camera): code cleanup
jourdain Aug 26, 2026
c102c49
docs(widgets_box): code cleanup
jourdain Aug 26, 2026
615fee8
docs(wasm64_large_mesh): code cleanup
jourdain Aug 26, 2026
6058ad0
docs(volume): code cleanup
jourdain Aug 26, 2026
d957b72
docs(silhouette): code cleanup
jourdain Aug 26, 2026
0694d2c
docs(render_benchmark): code cleanup
jourdain Aug 26, 2026
9cf250e
docs(many_actors): code cleanup
jourdain Aug 26, 2026
f1cc0a4
docs(lut): code cleanup
jourdain Aug 26, 2026
7f8be8c
docs(invoke): code cleanup
jourdain Aug 26, 2026
8d9cc54
docs(glyph): code cleanup
jourdain Aug 26, 2026
63d56ff
docs(flow): code cleanup
jourdain Aug 26, 2026
e75c93f
docs(cone): code cleanup
jourdain Aug 26, 2026
e96da9e
docs(examples): remove examples/vtk/requirements.txt
jspanchu Aug 27, 2026
ff0ad4c
docs(wasm64_large_mesh): add note for TRAME_WS_MAX_MSG_SIZE
jspanchu Aug 27, 2026
573c231
chore(deps): revert dev vtk version bump
jspanchu Aug 27, 2026
7995af0
docs(readme): drop requirements.txt
jspanchu Aug 27, 2026
3f505a6
docs(actor-highlight): split js into its own file
jourdain Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
236 changes: 232 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,6 @@ Install the library
pre-commit install
pre-commit install --hook-type commit-msg

# Allow live code edit
uv pip install -e .

Optionally, you can develop with bleeding edge VTK by following these steps. Make sure you've these tools

1. git
Expand Down Expand Up @@ -104,7 +101,10 @@ Running examples

.. code-block:: console

pip install trame "trame-vtklocal[vtk]" trame-vuetify trame-vtk
uv sync --all-extras --dev

# Activate environment
source .venv/bin/activate

# regular trame app
python ./examples/vtk/cone.py
Expand All @@ -113,6 +113,234 @@ Running examples
Some example are meant to test and validate WASM rendering.
Some will default for remote rendering but if you want to force them to use WASM just run `export USE_WASM=1` before executing them.

Example gallery
----------------------------------------

The examples below live in `examples/vtk <https://github.com/Kitware/trame-vtklocal/tree/master/examples/vtk>`_.
Click a screenshot to open its source.

.. |cone| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/cone.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/cone.py
:alt: cone.py
:width: 100%

.. |axes_actor| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/axes_actor.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/axes_actor.py
:alt: axes_actor.py
:width: 100%

.. |glyph| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/glyph.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/glyph.py
:alt: glyph.py
:width: 100%

.. |lut| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/lut.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/lut.py
:alt: lut.py
:width: 100%

.. |silhouette| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/silhouette.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/silhouette.py
:alt: silhouette.py
:width: 100%

.. |volume| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/volume.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/volume.py
:alt: volume.py
:width: 100%

.. |flow| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/flow.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/flow.py
:alt: flow.py
:width: 100%

.. |file_viewer| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/file_viewer.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/file_viewer.py
:alt: file_viewer.py
:width: 100%

.. |invoke| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/invoke.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/invoke.py
:alt: invoke.py
:width: 100%

.. |actor_picker| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/actor_picker.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/actor_picker.py
:alt: actor_picker.py
:width: 100%

.. |actor_highlight_on_hover| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/actor_highlight_on_hover.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/actor_highlight_on_hover.py
:alt: actor_highlight_on_hover.py
:width: 100%

.. |many_actors| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/many_actors.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/many_actors.py
:alt: many_actors.py
:width: 100%

.. |render_benchmark| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/render_benchmark.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/render_benchmark.py
:alt: render_benchmark.py
:width: 100%

.. |wasm64_large_mesh| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/wasm64_large_mesh.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/wasm64_large_mesh.py
:alt: wasm64_large_mesh.py
:width: 100%

.. |border_widget| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/border_widget.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/border_widget.py
:alt: border_widget.py
:width: 100%

.. |widgets_box| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/widgets_box.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_box.py
:alt: widgets_box.py
:width: 100%

.. |widgets_camera| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/widgets_camera.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_camera.py
:alt: widgets_camera.py
:width: 100%

.. |widgets_plane_clip| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/widgets_plane_clip.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_plane_clip.py
:alt: widgets_plane_clip.py
:width: 100%

.. |widgets_plane_slice| image:: https://raw.githubusercontent.com/Kitware/trame-vtklocal/refs/heads/master/examples/vtk/screenshots/widgets_plane_slice.png
:target: https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_plane_slice.py
:alt: widgets_plane_slice.py
:width: 100%

.. list-table::
:widths: 33 33 33

* - |cone|

`cone.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/cone.py>`_

Minimal cone with resolution slider.

- |axes_actor|

`axes_actor.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/axes_actor.py>`_

Orientation axes rendered next to a cone.

- |glyph|

`glyph.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/glyph.py>`_

``vtkGlyph3D`` with switchable glyph sources.

* - |lut|

`lut.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/lut.py>`_

Lookup table and color map editing.

- |silhouette|

`silhouette.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/silhouette.py>`_

``vtkPolyDataSilhouette`` outlines.

- |volume|

`volume.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/volume.py>`_

Volume rendering with selectable mapper.

* - |flow|

`flow.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/flow.py>`_

Contours and streamlines of a flow dataset.

- |file_viewer|

`file_viewer.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/file_viewer.py>`_

Load and display VTP / VTM files.

- |invoke|

`invoke.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/invoke.py>`_

Call VTK methods on the client-side objects.

* - |actor_picker|

`actor_picker.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/actor_picker.py>`_

Pick actors from the browser.

- |actor_highlight_on_hover|

`actor_highlight_on_hover.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/actor_highlight_on_hover.py>`_

Highlight the actor under the cursor.

- |many_actors|

`many_actors.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/many_actors.py>`_

Stress test with many independent actors.

* - |render_benchmark|

`render_benchmark.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/render_benchmark.py>`_

Many-actor render benchmark on a process plant scene.

- |wasm64_large_mesh|

`wasm64_large_mesh.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/wasm64_large_mesh.py>`_

Mesh above 4 GiB requiring the wasm64 runtime.

- |border_widget|

`border_widget.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/border_widget.py>`_

``vtkBorderWidget`` over a sphere.

* - |widgets_box|

`widgets_box.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_box.py>`_

``vtkBoxWidget2`` transforming an actor.

- |widgets_camera|

`widgets_camera.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_camera.py>`_

``vtkCameraOrientationWidget``.

- |widgets_plane_clip|

`widgets_plane_clip.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_plane_clip.py>`_

Interactive plane clipping.

* - |widgets_plane_slice|

`widgets_plane_slice.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/widgets_plane_slice.py>`_

Interactive plane slicing (uses wasm64 for 64-bit ids).

-

-

Two examples are kept as known limitations and have no screenshot:

- `balloon_widget.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/balloon_widget.py>`_: ``vtkBalloonWidget``
- `charts_scatter.py <https://github.com/Kitware/trame-vtklocal/blob/master/examples/vtk/charts_scatter.py>`_: ``vtkChartXY`` scatter plot


Progress events
----------------------------------------

Expand Down
Loading
Loading