Meshes#
Visualize a mesh. To get the demo data, see ./assets/download_dragon_mesh.sh
.
1import time
2from pathlib import Path
3
4import numpy as onp
5import trimesh
6import viser
7import viser.transforms as tf
8
9mesh = trimesh.load_mesh(str(Path(__file__).parent / "assets/dragon.obj"))
10assert isinstance(mesh, trimesh.Trimesh)
11mesh.apply_scale(0.05)
12
13vertices = mesh.vertices
14faces = mesh.faces
15print(f"Loaded mesh with {vertices.shape} vertices, {faces.shape} faces")
16
17server = viser.ViserServer()
18server.add_mesh_simple(
19 name="/simple",
20 vertices=vertices,
21 faces=faces,
22 wxyz=tf.SO3.from_x_radians(onp.pi / 2).wxyz,
23 position=(0.0, 0.0, 0.0),
24)
25server.add_mesh_trimesh(
26 name="/trimesh",
27 mesh=mesh.smoothed(),
28 wxyz=tf.SO3.from_x_radians(onp.pi / 2).wxyz,
29 position=(0.0, 5.0, 0.0),
30)
31
32while True:
33 time.sleep(10.0)