Scene Handles

A handle is created for each object that is added to the scene. These can be used to read and set state, as well as detect clicks.

When a scene node is added to a server (for example, via viser.ViserServer.add_frame()), state is synchronized between all connected clients. When a scene node is added to a client (for example, via viser.ClientHandle.add_frame()), state is local to a specific client.

The most common attributes to read and write here are viser.SceneNodeHandle.wxyz and viser.SceneNodeHandle.position. Each node type also has type-specific attributes that we can read and write. Many of these are lower-level than their equivalent arguments in factory methods like viser.ViserServer.add_frame() or viser.ViserServer.add_image().

class viser.SceneNodeHandle[source]

Handle base class for interacting with scene nodes.

property name: str

Read-only name of the scene node.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

remove() None[source]

Remove the node from the scene.

Return type:

None

class viser.CameraFrustumHandle[source]

Handle for camera frustums.

property image: ndarray | None

Current content of the image. Synchronized automatically when assigned.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

fov: float

Field of view of the camera (in radians). Synchronized automatically when assigned.

aspect: float

Aspect ratio of the camera (width over height). Synchronized automatically when assigned.

scale: float

Scale factor for the size of the frustum. Synchronized automatically when assigned.

line_width: float

Width of the frustum lines. Synchronized automatically when assigned.

color: Tuple[int, int, int]

Color of the frustum as RGB integers. Synchronized automatically when assigned.

image_media_type: Literal['image/jpeg', 'image/png'] | None

Format of the provided image (‘image/jpeg’ or ‘image/png’). Synchronized automatically when assigned.

class viser.FrameHandle[source]

Handle for coordinate frames.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

show_axes: bool

Boolean to indicate whether to show the frame as a set of axes + origin sphere. Synchronized automatically when assigned.

axes_length: float

Length of each axis. Synchronized automatically when assigned.

axes_radius: float

Radius of each axis. Synchronized automatically when assigned.

origin_radius: float

Radius of the origin sphere. Synchronized automatically when assigned.

origin_color: Tuple[int, int, int]

Color of the origin sphere as RGB integers. Synchronized automatically when assigned.

class viser.BatchedAxesHandle[source]

Handle for batched coordinate frames.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

wxyzs_batched: npt.NDArray[np.float32]

Float array of shape (N,4) representing quaternion rotations. Synchronized automatically when assigned.

positions_batched: npt.NDArray[np.float32]

Float array of shape (N,3) representing positions. Synchronized automatically when assigned.

axes_length: float

Length of each axis. Synchronized automatically when assigned.

axes_radius: float

Radius of each axis. Synchronized automatically when assigned.

class viser.GlbHandle[source]

Handle for GLB objects.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

glb_data: bytes

A binary payload containing the GLB data. Synchronized automatically when assigned.

scale: float

A scale for resizing the GLB asset. Synchronized automatically when assigned.

class viser.Gui3dContainerHandle[source]

Use as a context to place GUI elements into a 3D GUI container.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

order: float

Order value for arranging GUI elements. Synchronized automatically when assigned.

container_uuid: str

Identifier for the container. Synchronized automatically when assigned.

remove() None[source]

Permanently remove this GUI container from the visualizer.

Return type:

None

class viser.ImageHandle[source]

Handle for 2D images, rendered in 3D.

property image: ndarray

Current content of the image. Synchronized automatically when assigned.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

media_type: Literal['image/jpeg', 'image/png']

Format of the provided image (‘image/jpeg’ or ‘image/png’). Synchronized automatically when assigned.

render_width: float

Width at which the image should be rendered in the scene. Synchronized automatically when assigned.

render_height: float

Height at which the image should be rendered in the scene. Synchronized automatically when assigned.

class viser.LabelHandle[source]

Handle for 2D label objects. Does not support click events.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

text: str

Text content of the label. Synchronized automatically when assigned.

class viser.MeshHandle[source]

Handle for mesh objects.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

vertices: npt.NDArray[np.float32]

A numpy array of vertex positions. Should have shape (V, 3). Synchronized automatically when assigned.

faces: npt.NDArray[np.uint32]

A numpy array of faces, where each face is represented by indices of vertices. Should have shape (F, 3). Synchronized automatically when assigned.

color: Tuple[int, int, int] | None

Color of the mesh as RGB integers. Synchronized automatically when assigned.

wireframe: bool

Boolean indicating if the mesh should be rendered as a wireframe. Synchronized automatically when assigned.

opacity: float | None

Opacity of the mesh. None means opaque. Synchronized automatically when assigned.

flat_shading: bool

Whether to do flat shading. Synchronized automatically when assigned.

side: Literal['front', 'back', 'double']

Side of the surface to render. Synchronized automatically when assigned.

material: Literal['standard', 'toon3', 'toon5']

Material type of the mesh. Synchronized automatically when assigned.

class viser.MeshSkinnedHandle[source]

Handle for skinned mesh objects.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

bone_wxyzs: npt.NDArray[np.float32]

Array of quaternions representing bone orientations (B, 4). Synchronized automatically when assigned.

bone_positions: npt.NDArray[np.float32]

Array of positions representing bone positions (B, 3). Synchronized automatically when assigned.

skin_indices: npt.NDArray[np.uint16]

Array of skin indices. Should have shape (V, 4). Synchronized automatically when assigned.

skin_weights: npt.NDArray[np.float32]

Array of skin weights. Should have shape (V, 4). Synchronized automatically when assigned.

vertices: npt.NDArray[np.float32]

A numpy array of vertex positions. Should have shape (V, 3). Synchronized automatically when assigned.

faces: npt.NDArray[np.uint32]

A numpy array of faces, where each face is represented by indices of vertices. Should have shape (F, 3). Synchronized automatically when assigned.

color: Tuple[int, int, int] | None

Color of the mesh as RGB integers. Synchronized automatically when assigned.

wireframe: bool

Boolean indicating if the mesh should be rendered as a wireframe. Synchronized automatically when assigned.

opacity: float | None

Opacity of the mesh. None means opaque. Synchronized automatically when assigned.

flat_shading: bool

Whether to do flat shading. Synchronized automatically when assigned.

side: Literal['front', 'back', 'double']

Side of the surface to render. Synchronized automatically when assigned.

material: Literal['standard', 'toon3', 'toon5']

Material type of the mesh. Synchronized automatically when assigned.

class viser.MeshSkinnedBoneHandle[source]

Handle for reading and writing the poses of bones in a skinned mesh.

property wxyz: ndarray

Orientation of the bone. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

property position: ndarray

Position of the bone. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

class viser.PointCloudHandle[source]

Handle for point clouds. Does not support click events.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

points: npt.NDArray[np.float16]

Location of points. Should have shape (N, 3). Synchronized automatically when assigned.

colors: npt.NDArray[np.uint8]

Colors of points. Should have shape (N, 3) or (3,). Synchronized automatically when assigned.

point_size: float

Size of each point. Synchronized automatically when assigned.

point_ball_norm: float

Norm value determining the shape of each point. Synchronized automatically when assigned.

class viser.SplineCatmullRomHandle[source]

Handle for Catmull-Rom splines.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

positions: Tuple[Tuple[float, float, float], ...]

A tuple of 3D positions (x, y, z) defining the spline’s path. Synchronized automatically when assigned.

curve_type: Literal['centripetal', 'chordal', 'catmullrom']

Type of the curve (‘centripetal’, ‘chordal’, ‘catmullrom’). Synchronized automatically when assigned.

tension: float

Tension of the curve. Affects the tightness of the curve. Synchronized automatically when assigned.

closed: bool

Boolean indicating if the spline is closed (forms a loop). Synchronized automatically when assigned.

line_width: float

Width of the spline line. Synchronized automatically when assigned.

color: Tuple[int, int, int]

Color of the spline as RGB integers. Synchronized automatically when assigned.

segments: int | None

Number of segments to divide the spline into. Synchronized automatically when assigned.

class viser.SplineCubicBezierHandle[source]

Handle for cubic Bezier splines.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

positions: Tuple[Tuple[float, float, float], ...]

A tuple of 3D positions (x, y, z) defining the spline’s key points. Synchronized automatically when assigned.

control_points: Tuple[Tuple[float, float, float], ...]

A tuple of control points for Bezier curve shaping. Synchronized automatically when assigned.

line_width: float

Width of the spline line. Synchronized automatically when assigned.

color: Tuple[int, int, int]

Color of the spline as RGB integers. Synchronized automatically when assigned.

segments: int | None

Number of segments to divide the spline into. Synchronized automatically when assigned.

class viser.TransformControlsHandle[source]

Handle for interacting with transform control gizmos.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

scale: float

Scale of the transform controls. Synchronized automatically when assigned.

line_width: float

Width of the lines used in the gizmo. Synchronized automatically when assigned.

fixed: bool

Boolean indicating if the gizmo should be fixed in position. Synchronized automatically when assigned.

auto_transform: bool

Whether the transform should be applied automatically. Synchronized automatically when assigned.

active_axes: Tuple[bool, bool, bool]

Tuple of booleans indicating active axes. Synchronized automatically when assigned.

disable_axes: bool

Boolean to disable axes interaction. Synchronized automatically when assigned.

disable_sliders: bool

Boolean to disable slider interaction. Synchronized automatically when assigned.

disable_rotations: bool

Boolean to disable rotation interaction. Synchronized automatically when assigned.

translation_limits: Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]]

Limits for translation. Synchronized automatically when assigned.

rotation_limits: Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]]

Limits for rotation. Synchronized automatically when assigned.

depth_test: bool

Boolean indicating if depth testing should be used when rendering. Synchronized automatically when assigned.

opacity: float

Opacity of the gizmo. Synchronized automatically when assigned.

property update_timestamp: float
on_update(func: Callable[[TransformControlsHandle], NoneOrCoroutine]) Callable[[TransformControlsHandle], NoneOrCoroutine][source]

Attach a callback for when the gizmo is moved.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:

func (Callable[[TransformControlsHandle], NoneOrCoroutine])

Return type:

Callable[[TransformControlsHandle], NoneOrCoroutine]

remove_update_callback(callback: Literal[‘all’] | Callable = 'all') None[source]

Remove update callbacks from the transform controls.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

remove() None[source]

Remove the node from the scene.

Return type:

None

class viser.GaussianSplatHandle[source]

Handle for Gaussian splatting objects.

Work-in-progress. Gaussian rendering is still under development.

property name: str

Read-only name of the scene node.

on_click(func: Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]) Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

Attach a callback for when a scene node is clicked.

The callback can be either a standard function or an async function:

  • Standard functions (def) will be executed in a threadpool.

  • Async functions (async def) will be executed in the event loop.

Using async functions can be useful for reducing race conditions.

Parameters:
Return type:

Callable[[SceneNodePointerEvent[Self]], NoneOrCoroutine]

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

remove_click_callback(callback: Literal[‘all’] | Callable = 'all') None

Remove click callbacks from scene node.

Parameters:

callback (Literal[‘all’] | ~typing.Callable) – Either “all” to remove all callbacks, or a specific callback function to remove.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

buffer: npt.NDArray[np.uint32]

Our buffer will contain:

  • x as f32

  • y as f32

  • z as f32

  • (unused)

  • cov1 (f16), cov2 (f16)

  • cov3 (f16), cov4 (f16)

  • cov5 (f16), cov6 (f16)

  • rgba (int32)

Where cov1-6 are the upper-triangular terms of covariance matrices.

class viser.DirectionalLightHandle[source]

Handle for directional lights.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

color: Tuple[int, int, int]

Color of the directional light. Synchronized automatically when assigned.

intensity: float

Intensity of the directional light. Synchronized automatically when assigned.

class viser.AmbientLightHandle[source]

Handle for ambient lights.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

color: Tuple[int, int, int]

Color of the ambient light. Synchronized automatically when assigned.

intensity: float

Intensity of the ambient light. Synchronized automatically when assigned.

class viser.HemisphereLightHandle[source]

Handle for hemisphere lights.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

sky_color: Tuple[int, int, int]

Sky color of the hemisphere light. Synchronized automatically when assigned.

ground_color: Tuple[int, int, int]

Ground color of the hemisphere light. Synchronized automatically when assigned.

intensity: float

Intensity of the hemisphere light. Synchronized automatically when assigned.

class viser.PointLightHandle[source]

Handle for point lights.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

color: Tuple[int, int, int]

Color of the point light. Synchronized automatically when assigned.

intensity: float

Intensity of the point light. Synchronized automatically when assigned.

distance: float

Distance of the point light. Synchronized automatically when assigned.

decay: float

Decay of the point light. Synchronized automatically when assigned.

class viser.RectAreaLightHandle[source]

Handle for rectangular area lights.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

color: Tuple[int, int, int]

Color of the rectangular area light. Synchronized automatically when assigned.

intensity: float

Intensity of the rectangular area light. Synchronized automatically when assigned.

width: float

Width of the rectangular area light. Synchronized automatically when assigned.

height: float

Height of the rectangular area light. Synchronized automatically when assigned.

class viser.SpotLightHandle[source]

Handle for spot lights.

property name: str

Read-only name of the scene node.

property position: ndarray

Position of the scene node. This is equivalent to the t in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

remove() None

Remove the node from the scene.

Return type:

None

property visible: bool

Whether the scene node is visible or not. Synchronized to clients automatically when assigned.

property wxyz: ndarray

Orientation of the scene node. This is the quaternion representation of the R in p_parent = [R | t] p_local. Synchronized to clients automatically when assigned.

color: Tuple[int, int, int]

Color of the spot light. Synchronized automatically when assigned.

intensity: float

Intensity of the spot light. Synchronized automatically when assigned.

distance: float

Distance of the spot light. Synchronized automatically when assigned.

angle: float

Angle of the spot light. Synchronized automatically when assigned.

penumbra: float

Penumbra of the spot light. Synchronized automatically when assigned.

decay: float

Decay of the spot light. Synchronized automatically when assigned.