From v2 to v3
Trame v3 is out and is going to break things up. But it should be easy to migrate. First of all, trame is moving to using a vue3 client by default on January 2024. But both client will remain working for a long time. To use the latest version of trame with your current project, just make sure you set the client_type to vue2.
On top of making vue3 the new default, we want to shrink the default dependency list by only bundling by default the client and the server. And if the user needs vuetify and/or vtk they will need to list them as dependency of their project (trame-vtk, trame-vuetify). This will allow a leaner core package while still offering the same capabilities as before.
So far we don't have a release date, but while vuetify, vtk and more are already vue2 and 3 compatible. Not everything is available (router, plotly) or will be ported. So until we feel we have a great offering in vue3, we will hold off for the V3 release.
New default client_type
The default client_type will be changing from vue2 to vue3 on January 2024.
from trame.app import get_server
server = get_server()
server.client_type = "vue3" # instead of 'vue2'New warning due to breaking change
A message will be printed by default at the startup of trame with the v3 version. We are expecting to remove that message during summer 2024.
INFO
--------------------------------------------------------------------------------
!!! You are currently using trame@3 which may break your application !!!
--------------------------------------------------------------------------------
1. trame@3 only provides by default trame.widgets.[html,client] and remove
everything else as implicit dependency. Those other widgets will still
exist and will be supported, but they will need to be defined as a
dependency of your application.
$ pip install trame-vtk trame-vuetify trame-plotly
Import paths are remaining the same.
For libraries like vuetify since they offer different API between
their vue2 and vue3 implementation, the widget name will reflect
which vue version they are referencing. But original naming will remain.
from trame.widgets import vuetify2, vuetify3
2. trame@3 aims to use vue3 as a new default. But to smooth the transition
we will maintain the server.client_type = 'vue2' default until
December 2023 which is the vue2 EOL.
After that time, the new default will be switched to 'vue3'.
Vue2 will still work 'forever' and many of the new widgets will be
written to support both versions.
If you have a 'vue2' application and don't need or want to update your code,
you can still use trame@3 with vue2 by setting `server.client_type='vue2'.
Actions items
~~~~~~~~~~~~~
a. Make sure you set `server.client_type` to either 'vue2' or 'vue3'.
b. List the expected dependencies or have a 'trame<3' dependency
To disable that warning you have 2 options. Use environment variable by setting TRAME_DISABLE_V3_WARNING or disabling logging which can be done by the following code snippet.
import logging
logging.getLogger('trame.app').disabled = Trueor
import os
os.environ["TRAME_DISABLE_V3_WARNING"] = "1"API change
Trame in itself won't have API change but it is possible that vue3 widget will have a different API like you can see between vuetify2 and vuetify3, but in general we'll try to maintain full API compatibility.
Known available widgets
⚠️: Non Kitware-owned repository
56 / 56 repos
| Name | Description | Topics |
|---|---|---|
| trame | Trame lets you weave various components and technologies into a Web Application solely written in Python. | VTK Paraview Maintenance program |
| trame-slicer | Bring the capabilities of 3D Slicer to the web with modern UI using the trame framework! | 3D Slicer |
| pan3d | Python library for easily loading, interacting and visualizing XArray dataset using VTK and trame. | VTK |
| trame-vtk | VTK/ParaView widgets for trame | Maintenance program |
| trame-vtklocal | Local Rendering using VTK.wasm to match server side rendering pipeline on the client side. | Maintenance program |
| trame-tutorial | Tutorial material for trame. | |
| trame-cookiecutter | Cookie Cutter template for creating trame application/module | Maintenance program |
⚠️ mmgpy | Pythonic remeshing library based on the MMG software. | |
| trame-server | Internal server side implementation of trame | Maintenance program |
| trame-tauri | Widgets/utils library to help with Tauri integration in trame. | Maintenance program |
| VERACore | — | Application VTK |
| conceptual-modeler | Conceptual Modeler based on GemPy and trame | Application |
| paraview-trame-components | High level trame components for ParaView | Paraview Application |
| trame-jupyter-extension | Jupyter extension for trame client/server communication | Maintenance program |
| trame-vuetify | trame-vuetify brings Vuetify UI Material Components into trame | Maintenance program |
| trame-client | Internal client side implementation of trame | Maintenance program |
| vtk-prompt | Control VTK using natural language | VTK |
| trame-datagrid | Trame wrapper to RevoGrid component | Maintenance program |
| trame-simput | Simput implementation for trame | Maintenance program |
⚠️ mri-viewer | (2024) A Trame application for analyzing and visualizing VTI files. | VTK |
| trame-code | VS Code text editor widget for trame | Maintenance program |
| trame-rca | Remote Controlled Area widget for trame | Maintenance program |
| multivariate-view | Multivariate volume visualizer | Application |
| trame-matplotlib | Trame widget for Matplotlib | Maintenance program |
| trame-image-tools | — | Maintenance program |
| trame-plotly | trame-plotly brings Plotly charts into trame | Maintenance program |
| trame-quasar | About trame-quasar brings Quasar UI Material Components into trame | Maintenance program |
| trame-iframe | Helper widget for trame to help for cross-origin communication between window/iframe | Maintenance program |
| trame-leaflet | — | Maintenance program |
⚠️ QuickView | A ParaView based, easy-to-use application for exploration of atmospheric data from E3SM. | Paraview |
| trame-components | Core widgets for trame | Maintenance program |
| trame-deckgl | Deck.gl widget for trame | Maintenance program |
| trame-grid-layout | Bring grid-layout widgets to trame | Maintenance program |
| trame-vega | Vega widget for trame | Maintenance program |
⚠️ 🆕 FOAMFlask | Yet another OpenFOAM frontend | Application VTK |
| trame-bbox | Widget library for trame to draw or interact with bounding box via svg. | |
| trame-gwc | Bring girder-web-components widgets to trame | Maintenance program |
| trame-monitor | Trame application and utility functions for resource monitoring | |
| trame-router | trame-router brings Vue Router capabilities into trame widgets and ui | Maintenance program |
⚠️ jupyter-trame-proxy | JupyterServerProxy for trame and ParaView Visualizer | Paraview |
| pf-simulation-modeler | Simulation modeler for ParFlow. Trame application providing user interface for configuring a parflow simulation. | Application |
⚠️ pymipf | medical image web viewer with python | VTK |
⚠️ 🆕 SAGE-Viewer | Interactive 3D visualization of dark matter haloes and SAGE galaxies across cosmic time — PyVista + Trame | |
⚠️ simplified-batch | HPC applications on Azure using Azure Batch | Paraview |
🆕 trame-dataclass | Typed Python dataclasses with automatic server-to-browser state sync for trame applications | Maintenance program |
| trame-formkit | FormKit widgets exposed in trame | Maintenance program |
| trame-markdown | Trame widget to embed markdown content into a trame application | Maintenance program |
| trame-mnist | Simple trame demonstrator using the MNIST dataset with XAITK for saliency analysis | Application |
| trame-xterm | XTerm widget for trame | Maintenance program |
⚠️ virtual-thermostat | AC without Thermostat? here is your free OSS solution | |
⚠️ 🆕 BioSET_Visualizer | A multi resolution volume renderer, specifically for analysing biomarker interactions in 3D CyCIF. | VTK |
⚠️ 🆕 interactive-population-visualization | An interactive visualization system designed to explore county-level population trends | VTK |
⚠️ trame-aoc | Kitware provides Trame, an open-source oriented framework with a Python-centric API and built on VueJs. This repo is implemented for Advent of Code | |
🆕 trame-colormaps | Trame widget and dataclass to control vtk mapper and colormaps | Maintenance program |
| trame-dockview | Trame wrapper to a Docking Layout Manager | Maintenance program |
🆕 trame-radial-menu | A trame widget that creates a radial menu around the mouse cursor | UI Widget |