Get Renders#
Example for getting renders from a client’s viewport to the Python API.
1import time
2
3import imageio.v3 as iio
4import numpy as onp
5import viser
6
7
8def main():
9 server = viser.ViserServer()
10
11 button = server.add_gui_button("Render a GIF")
12
13 @button.on_click
14 def _(event: viser.GuiEvent) -> None:
15 client = event.client
16 assert client is not None
17
18 client.reset_scene()
19
20 images = []
21
22 for i in range(20):
23 positions = onp.random.normal(size=(30, 3)) * 3.0
24 client.add_spline_catmull_rom(
25 f"/catmull_{i}",
26 positions,
27 tension=0.5,
28 line_width=3.0,
29 color=onp.random.uniform(size=3),
30 )
31 images.append(client.camera.get_render(height=720, width=1280))
32
33 print("Generating and sending GIF...")
34 client.send_file_download(
35 "image.gif", iio.imwrite("<bytes>", images, extension=".gif")
36 )
37 print("Done!")
38
39 while True:
40 time.sleep(10.0)
41
42
43if __name__ == "__main__":
44 main()