スタート

スタート#

PyVistaとTrameを使い始める

import pyvista as pv
from pyvista import examples

PyVistaのJupyterバックエンドは Trame で動いています。 そのため、デフォルトでは知らないうちにtrameを使っていることになります。

PyVistaのデフォルトでは、 リモートローカル のレンダリングを切り替えることができるmicro trameアプリケーションが提供されます。

まず、リモート/ローカルレンダリングのトグルを試してみて、その違いに気づくだろう

Look at the orientation axis between the 2 rendering modes.

一方はサーバーサイドで生成された画像を送信し、もう一方は vtk.js にジオメトリを送信している。

dataset = examples.download_lucy()
dataset.plot(smooth_shading=True, color="white")

PyVistaとTrameを使ったアプリケーションの構築

では、ボタンをクリックしてメッシュの色を更新する簡単なアプリケーションを作ってみましょう。

import random

from pyvista.plotting.colors import hexcolors
from pyvista.trame.ui import get_viewer
from trame.ui.vuetify3 import SinglePageLayout
from trame.widgets import vuetify3 as v3

plotter = pv.Plotter()
actor = plotter.add_mesh(dataset)
viewer = get_viewer(plotter)
view = None


def change_color() -> None:
    actor.prop.color = random.choice(list(hexcolors.keys()))  # noqa: S311
    view.update()


# Create UI
with SinglePageLayout(viewer.server) as layout:
    with layout.toolbar.clear() as tb:
        tb.density = "compact"
        tb.theme = "dark"
        viewer.ui_controls(mode="trame")
        v3.VBtn(icon="mdi-palette", click=change_color)
    with layout.content:
        view = viewer.ui(add_menu=False, mode="trame")


# Show UI
await layout.ready
layout

Sphinx-Galleryによるギャラリー