Skip to content

genstudio.scene3d

Scene

A 3D scene visualization component using WebGPU.

This class creates an interactive 3D scene that can contain multiple types of components:

  • Point clouds
  • Ellipsoids
  • Ellipsoid bounds (wireframe)
  • Cuboids

The visualization supports:

  • Orbit camera control (left mouse drag)
  • Pan camera control (shift + left mouse drag or middle mouse drag)
  • Zoom control (mouse wheel)
  • Component hover highlighting
  • Component click selection
  • Optional FPS display (set controls=['fps'])

PointCloud

Create a point cloud element.

Parameters

  • positions (ArrayLike): Nx3 array of point positions or flattened array

  • colors (Optional[ArrayLike]): Nx3 array of RGB colors or flattened array (optional)

  • color (Optional[ArrayLike]): Default RGB color [r,g,b] for all points if colors not provided

  • sizes (Optional[ArrayLike]): N array of point sizes or flattened array (optional)

  • size (Optional[NumberLike]): Default size for all points if sizes not provided

  • alphas (Optional[ArrayLike]): Array of alpha values per point (optional)

  • alpha (Optional[NumberLike]): Default alpha value for all points if alphas not provided

  • **kwargs (Any): Additional arguments like decorations, onHover, onClick

Ellipsoid

Create an ellipsoid element.

Parameters

  • centers (ArrayLike): Nx3 array of ellipsoid centers or flattened array

  • radii (Optional[ArrayLike]): Nx3 array of radii (x,y,z) or flattened array (optional)

  • radius (Optional[Union[NumberLike, ArrayLike]]): Default radius (sphere) or [x,y,z] radii (ellipsoid) if radii not provided

  • colors (Optional[ArrayLike]): Nx3 array of RGB colors or flattened array (optional)

  • color (Optional[ArrayLike]): Default RGB color [r,g,b] for all ellipsoids if colors not provided

  • alphas (Optional[ArrayLike]): Array of alpha values per ellipsoid (optional)

  • alpha (Optional[NumberLike]): Default alpha value for all ellipsoids if alphas not provided

  • **kwargs (Any): Additional arguments like decorations, onHover, onClick

EllipsoidAxes

Create an ellipsoid bounds (wireframe) element.

Parameters

  • centers (ArrayLike): Nx3 array of ellipsoid centers or flattened array

  • radii (Optional[ArrayLike]): Nx3 array of radii (x,y,z) or flattened array (optional)

  • radius (Optional[Union[NumberLike, ArrayLike]]): Default radius (sphere) or [x,y,z] radii (ellipsoid) if radii not provided

  • colors (Optional[ArrayLike]): Nx3 array of RGB colors or flattened array (optional)

  • color (Optional[ArrayLike]): Default RGB color [r,g,b] for all ellipsoids if colors not provided

  • alphas (Optional[ArrayLike]): Array of alpha values per ellipsoid (optional)

  • alpha (Optional[NumberLike]): Default alpha value for all ellipsoids if alphas not provided

  • **kwargs (Any): Additional arguments like decorations, onHover, onClick

Cuboid

Create a cuboid element.

Parameters

  • centers (ArrayLike): Nx3 array of cuboid centers or flattened array

  • sizes (Optional[ArrayLike]): Nx3 array of sizes (width,height,depth) or flattened array (optional)

  • size (Optional[Union[ArrayLike, NumberLike]]): Default size [w,h,d] for all cuboids if sizes not provided

  • colors (Optional[ArrayLike]): Nx3 array of RGB colors or flattened array (optional)

  • color (Optional[ArrayLike]): Default RGB color [r,g,b] for all cuboids if colors not provided

  • alphas (Optional[ArrayLike]): Array of alpha values per cuboid (optional)

  • alpha (Optional[NumberLike]): Default alpha value for all cuboids if alphas not provided

  • **kwargs (Any): Additional arguments like decorations, onHover, onClick

LineBeams

Create a line beams element.

Parameters

  • positions (ArrayLike): Array of quadruples [x,y,z,i, x,y,z,i, ...] where points sharing the same i value are connected in sequence

  • color (Optional[ArrayLike]): Default RGB color [r,g,b] for all beams if colors not provided

  • size (Optional[NumberLike]): Default size for all beams if sizes not provided

  • colors (Optional[ArrayLike]): Array of RGB colors per line (optional)

  • sizes (Optional[ArrayLike]): Array of sizes per line (optional)

  • alpha (Optional[NumberLike]): Default alpha value for all beams if alphas not provided

  • alphas (Optional[ArrayLike]): Array of alpha values per line (optional)

  • **kwargs (Any): Additional arguments like onHover, onClick

Returns

  • A LineBeams scene component that renders connected beam segments. (SceneComponent)

  • Points are connected in sequence within groups sharing the same i value. (SceneComponent)

deco

Create a decoration for scene components.

Parameters

  • indexes (Union[int, np.integer, ArrayLike]): Single index or list of indices to decorate

  • color (Optional[ArrayLike]): Optional RGB color override [r,g,b]

  • alpha (Optional[NumberLike]): Optional opacity value (0-1)

  • scale (Optional[NumberLike]): Optional scale factor

Returns

  • Dictionary containing decoration settings (Decoration)