注釈
完全なサンプルコードをダウンロードしたり、Binderを使ってブラウザでこのサンプルを実行するには、 最後に進んでください 。
スタート#
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