From 9c732126c87a4903465f14d489074486f15aa6f9 Mon Sep 17 00:00:00 2001 From: brentyi Date: Wed, 12 Jul 2023 16:51:18 +0000 Subject: [PATCH] deploy: ada7beca11209cbf06c1e1f92207ab7547b761fc --- .doctrees/development.doctree | Bin 22272 -> 21090 bytes .doctrees/environment.pickle | Bin 1282859 -> 1282859 bytes _sources/development.md.txt | 20 +------------------- development/index.html | 18 +----------------- searchindex.js | 2 +- 5 files changed, 3 insertions(+), 37 deletions(-) diff --git a/.doctrees/development.doctree b/.doctrees/development.doctree index b087a29a925e730d7e68822c3dc92fbb599b2bd3..215a1976d55bfa16c394e0d6b46f60b97c037fd7 100644 GIT binary patch delta 2379 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

}LjH;NfPS^q6O~`Ho%Zn% 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 delta 15024 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 diff --git a/_sources/development.md.txt b/_sources/development.md.txt index 0f84912ef..e58d43fd8 100644 --- a/_sources/development.md.txt +++ b/_sources/development.md.txt @@ -19,36 +19,18 @@ pip install -e . pip install -e .[examples] ``` -_Alternatively_, `poetry` can also be used: - -```Bash -# Install poetry. -curl -sSL https://install.python-poetry.org | python3 - - -# Install package. -cd ~/viser -poetry install - -# Install example dependencies. -poetry install -E examples -``` - After installation, any of the example scripts (`~/viser/examples`) should be runnable. A few of them require downloading assets, which can be done via the scripts in `~/viser/examples/assets`. **Linting, formatting, type-checking.** -First install developer tools: +First, install developer tools: ```bash # Using pip. pip install -e .[dev] pre-commit install - -# Using poetry. `--all-extras` is equivalent to `-E examples -E dev`. -poetry install --all-extras -pre-commit install ``` It would be hard to write unit tests for `viser`. We rely on static typing for diff --git a/development/index.html b/development/index.html index b380d1919..7f8dc2a28 100644 --- a/development/index.html +++ b/development/index.html @@ -246,30 +246,14 @@

Python install install -e .[examples] -

Alternatively, poetry can also be used:

-
# Install poetry.
-curl -sSL https://install.python-poetry.org | python3 -
-
-# Install package.
-cd ~/viser
-poetry install
-
-# Install example dependencies.
-poetry install -E examples
-
-

After installation, any of the example scripts (~/viser/examples) should be runnable. A few of them require downloading assets, which can be done via the scripts in ~/viser/examples/assets.

Linting, formatting, type-checking.

-

First install developer tools:

+

First, install developer tools:

# Using pip.
 pip install -e .[dev]
 pre-commit install
-
-# Using poetry. `--all-extras` is equivalent to `-E examples -E dev`.
-poetry install --all-extras
-pre-commit install
 

It would be hard to write unit tests for viser. We rely on static typing for diff --git a/searchindex.js b/searchindex.js index fad0f04a2..ae627486b 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["client_handles", "conventions", "development", "examples/00_coordinate_frames", "examples/01_image", "examples/02_gui", "examples/03_gui_callbacks", "examples/04_camera_poses", "examples/05_camera_commands", "examples/06_mesh", "examples/07_record3d_visualizer", "examples/08_smplx_visualizer", "examples/09_urdf_visualizer", "examples/10_realsense", "examples/11_colmap_visualizer", "examples/12_click_meshes", "gui_handles", "index", "infrastructure", "scene_handles", "server", "transforms"], "filenames": ["client_handles.md", "conventions.md", "development.md", "examples/00_coordinate_frames.rst", "examples/01_image.rst", "examples/02_gui.rst", "examples/03_gui_callbacks.rst", "examples/04_camera_poses.rst", "examples/05_camera_commands.rst", "examples/06_mesh.rst", "examples/07_record3d_visualizer.rst", "examples/08_smplx_visualizer.rst", "examples/09_urdf_visualizer.rst", "examples/10_realsense.rst", "examples/11_colmap_visualizer.rst", "examples/12_click_meshes.rst", "gui_handles.md", "index.md", "infrastructure.md", "scene_handles.md", "server.md", "transforms.md"], "titles": ["Client Handles", "Frame Conventions", "Development", "Coordinate frames", "Images", "GUI basics", "GUI callbacks", "Camera poses", "Camera commands", "Meshes", "Record3D visualizer", "SMPL-X visualizer", "URDF visualizer", "RealSense visualizer", "COLMAP visualizer", "Click callback demonstration.", "GUI Handles", "viser", "Communication", "Scene Handles", "Viser Server", "Transforms"], "terms": {"A": [0, 2, 11, 13, 16, 19], "i": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21], "creat": [0, 5, 8, 11, 16, 19, 20], "each": [0, 1, 8, 11, 16, 19, 21], "connect": [0, 2, 5, 7, 8, 13, 16, 17, 18, 19, 20], "server": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "can": [0, 2, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21], "us": [0, 1, 2, 4, 5, 11, 13, 16, 17, 18, 19, 20, 21], "commun": [0, 2, 17, 20], "just": [0, 6, 11, 13], "one": [0, 2, 10, 15], "well": [0, 19, 21], "read": [0, 5, 7, 8, 11, 13, 16, 18, 19], "write": [0, 2, 5, 8, 16], "camera": [0, 13, 14, 18, 19, 20], "state": [0, 16, 17, 18, 19, 20], "class": [0, 11, 16, 18, 19, 20, 21], "viser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21], "clienthandl": [0, 7, 8, 16, 19, 20], "handler": [0, 8, 18], "infra": [0, 17, 18], "messagehandl": [0, 18], "sourc": [0, 2, 16, 18, 19, 20, 21], "interact": [0, 8, 11, 16, 17, 18, 19, 20], "specif": [0, 16, 18, 19], "send": [0, 4, 5, 11, 14, 17, 18], "messag": [0, 18, 20], "individu": [0, 18], "inform": [0, 18], "paramet": [0, 1, 8, 11, 16, 18, 19, 20, 21], "add_camera_frustum": [0, 10, 14, 20], "name": [0, 3, 9, 10, 11, 12, 14, 15, 18, 20, 21], "str": [0, 7, 11, 12, 16, 18, 20], "fov": [0, 7, 10, 14, 20], "float": [0, 11, 12, 16, 19, 20, 21], "aspect": [0, 7, 10, 14, 20], "scale": [0, 10, 11, 14, 20], "0": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20], "3": [0, 1, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 20, 21], "color": [0, 5, 6, 10, 11, 13, 14, 15, 20], "rgbtupleorarrai": [0, 20], "20": [0, 8, 10, 20], "imag": [0, 10, 14, 19, 20], "option": [0, 6, 10, 13, 16, 18, 20], "numpi": [0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21], "ndarrai": [0, 13, 19, 20, 21], "none": [0, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20], "format": [0, 2, 4, 13, 20], "typing_extens": [0, 6, 11, 20], "liter": [0, 11, 16, 20], "png": [0, 4, 20], "jpeg": [0, 4, 20], "jpeg_qual": [0, 20], "int": [0, 8, 10, 11, 13, 14, 15, 18, 20], "wxyz": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 19, 20, 21], "tupl": [0, 11, 13, 16, 20, 21], "onp": [0, 4, 5, 6, 8, 9, 10, 11, 12, 14, 15, 20], "1": [0, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 20, 21], "posit": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20], "visibl": [0, 5, 7, 10, 11, 12, 16, 19, 20], "bool": [0, 11, 16, 18, 19, 20], "true": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 20], "add": [0, 1, 2, 3, 4, 5, 6, 10, 20], "frustum": [0, 10, 14, 19, 20], "scene": [0, 3, 5, 6, 12, 20], "visual": [0, 3, 4, 9, 15, 16, 17, 20], "like": [0, 1, 2, 17, 20], "all": [0, 1, 2, 3, 7, 10, 14, 16, 18, 19, 20], "python": [0, 1, 17, 18, 20], "api": [0, 1, 17, 20], "follow": [0, 2, 20, 21], "opencv": [0, 1, 20], "z": [0, 1, 6, 20, 21], "forward": [0, 1, 11, 20], "x": [0, 1, 6, 15, 20, 21], "right": [0, 1, 20], "y": [0, 1, 6, 15, 20, 21], "down": [0, 20], "convent": [0, 20, 21], "vertic": [0, 9, 11, 15, 20], "radian": [0, 20, 21], "width": [0, 14, 20], "over": [0, 20, 21], "height": [0, 14, 20], "return": [0, 11, 12, 13, 16, 18, 19, 20, 21], "type": [0, 2, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21], "camerafrustumhandl": [0, 14, 19, 20], "add_fram": [0, 3, 6, 8, 10, 11, 12, 14, 19, 20], "show_ax": [0, 6, 10, 11, 12, 20], "axes_length": [0, 6, 10, 14, 20], "5": [0, 3, 6, 8, 9, 11, 15, 20], "axes_radiu": [0, 10, 14, 20], "025": [0, 20], "framehandl": [0, 10, 14, 19, 20], "add_gui_button": [0, 5, 6, 10, 11, 12, 14, 20], "label": [0, 8, 19, 20], "disabl": [0, 5, 7, 10, 15, 16, 20], "fals": [0, 5, 10, 11, 12, 14, 20], "hint": [0, 15, 20, 21], "button": [0, 5, 6, 10, 11, 12, 16, 17, 20], "gui": [0, 7, 11, 12, 15, 18, 20], "The": [0, 1, 2, 15, 17, 18, 20], "valu": [0, 5, 6, 10, 11, 12, 14, 15, 16, 18, 20, 21], "thi": [0, 1, 2, 3, 7, 11, 14, 16, 18, 19, 20, 21], "input": [0, 5, 16, 17, 20], "set": [0, 1, 2, 3, 5, 8, 10, 11, 14, 16, 18, 19, 20, 21], "everi": [0, 20], "time": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 20], "click": [0, 6, 8, 10, 16, 19, 20], "detect": [0, 7, 16, 18, 19, 20], "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 16, 18, 20], "manual": [0, 2, 20], "back": [0, 20], "guibuttonhandl": [0, 6, 16, 20], "add_gui_button_group": [0, 10, 20], "sequenc": [0, 20], "tliteralstr": [0, 20], "group": [0, 16, 20, 21], "add_gui_checkbox": [0, 5, 6, 10, 11, 20], "initial_valu": [0, 5, 6, 7, 10, 11, 12, 14, 15, 20], "checkbox": [0, 5, 17, 20], "guihandl": [0, 11, 12, 16, 20], "add_gui_dropdown": [0, 6, 20], "dropdown": [0, 6, 16, 17, 20], "add_gui_numb": [0, 5, 14, 15, 20], "intorfloat": [0, 20], "min": [0, 5, 6, 10, 11, 12, 14, 20], "max": [0, 5, 6, 10, 11, 12, 14, 20], "step": [0, 2, 5, 6, 10, 11, 12, 14, 20], "number": [0, 5, 20], "user": [0, 16, 20], "specifi": [0, 20], "bound": [0, 20], "precis": [0, 20, 21], "add_gui_rgb": [0, 5, 11, 20], "an": [0, 2, 5, 17, 18, 20, 21], "rgb": [0, 10, 13, 14, 20], "picker": [0, 20], "add_gui_rgba": [0, 20], "rgba": [0, 20], "add_gui_slid": [0, 5, 6, 10, 11, 12, 14, 20], "slider": [0, 5, 6, 10, 12, 17, 20], "initi": [0, 6, 20], "should": [0, 1, 2, 8, 12, 16, 18, 20, 21], "match": [0, 20], "add_gui_text": [0, 5, 7, 16, 20], "text": [0, 5, 8, 17, 20], "add_gui_vector2": [0, 5, 20], "length": [0, 20, 21], "2": [0, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 20, 21], "vector": [0, 5, 20, 21], "add_gui_vector3": [0, 5, 11, 20], "lock": [0, 5, 20], "add_imag": [0, 4, 20], "render_width": [0, 20], "render_height": [0, 20], "2d": [0, 19, 20, 21], "render": [0, 4, 19, 20], "3d": [0, 1, 4, 17, 19, 20, 21], "imagehandl": [0, 19, 20], "add_label": [0, 8, 20], "labelhandl": [0, 19, 20], "add_mesh": [0, 9, 20], "arg": [0, 14, 20], "kwarg": [0, 20], "deprec": [0, 20], "alia": [0, 20], "add_mesh_simpl": [0, 11, 20], "meshhandl": [0, 19, 20], "face": [0, 9, 11, 20], "90": [0, 11, 20], "200": [0, 11, 20], "255": [0, 5, 11, 20], "wirefram": [0, 11, 20], "side": [0, 2, 20], "front": [0, 20], "doubl": [0, 20], "mesh": [0, 11, 12, 15, 19, 20], "add_mesh_trimesh": [0, 12, 15, 20], "trimesh": [0, 9, 12, 15, 20], "add_point_cloud": [0, 5, 6, 10, 13, 14, 20], "point": [0, 1, 2, 5, 6, 10, 13, 14, 19, 20, 21], "point_siz": [0, 10, 13, 14, 20], "cloud": [0, 5, 6, 10, 13, 14, 19, 20], "pointcloudhandl": [0, 19, 20], "add_transform_control": [0, 11, 20], "line_width": [0, 11, 20], "fix": [0, 20], "auto_transform": [0, 20], "active_ax": [0, 20], "disable_ax": [0, 11, 20], "disable_slid": [0, 11, 20], "disable_rot": [0, 11, 20], "translation_limit": [0, 20], "1000": [0, 6, 18, 20], "rotation_limit": [0, 20], "depth_test": [0, 11, 20], "opac": [0, 20], "transform": [0, 1, 8, 9, 10, 11, 12, 14, 19, 20], "gizmo": [0, 11, 17, 19, 20], "transformcontrolshandl": [0, 11, 19, 20], "atom": [0, 8, 10, 20], "context": [0, 13, 20], "where": [0, 1, 16, 20], "outgo": [0, 20], "ar": [0, 1, 2, 3, 5, 6, 8, 11, 15, 16, 18, 20, 21], "appli": [0, 20, 21], "No": [0, 20], "incom": [0, 18, 20], "updat": [0, 6, 7, 10, 11, 16, 20], "process": [0, 13, 20], "help": [0, 20], "thing": [0, 20], "anim": [0, 20], "when": [0, 2, 6, 8, 10, 11, 13, 16, 18, 19, 20], "want": [0, 2, 18, 20], "orient": [0, 1, 8, 11, 19, 20], "happen": [0, 16, 20], "synchron": [0, 2, 16, 17, 18, 19, 20], "gener": [0, 5, 11, 16, 18, 20, 21], "client_id": [0, 7, 18], "configure_them": [0, 14, 20], "titlebar_cont": [0, 20], "theme": [0, 20], "titlebarconfig": [0, 20], "fixed_sidebar": [0, 20], "configur": [0, 13, 17, 20], "end": [0, 1, 20], "": [0, 2, 6, 11, 20, 21], "appear": [0, 20], "gui_fold": [0, 5, 6, 10, 11, 12, 15, 20], "place": [0, 2, 10, 20], "element": [0, 5, 6, 11, 14, 16, 18, 20, 21], "particular": [0, 5, 18, 20], "folder": [0, 20], "also": [0, 2, 6, 8, 13, 17, 20], "nest": [0, 20], "reset_scen": [0, 14, 20], "reset": [0, 6, 11, 12, 14, 20], "set_background_imag": [0, 4, 20], "background": [0, 4, 20], "nerf": [0, 4, 20], "camerahandl": [0, 7], "properti": [0, 16, 19], "canva": 0, "divid": 0, "Not": [0, 19], "assign": [0, 1, 16, 19], "correspond": [0, 1, 2, 8, 11], "field": [0, 1], "view": [0, 11, 13, 17], "automat": [0, 5, 8, 16, 19], "look_at": [0, 8], "look": 0, "float64": 0, "on_upd": [0, 6, 7, 10, 11, 12, 14, 16, 19], "callback": [0, 18, 19, 20], "callabl": [0, 16, 18, 19, 20], "attach": [0, 6, 16, 18, 19, 20], "run": [0, 2, 7, 11, 18, 20], "new": [0, 7, 15, 18, 20], "receiv": [0, 18], "t": [0, 1, 10, 11, 13, 14, 16, 18, 19], "p_world": 0, "r": [0, 1, 11, 13, 19], "p_camera": 0, "up_direct": [0, 14], "maintain": 0, "which": [0, 1, 2, 11, 20, 21], "mean": 0, "often": 0, "affect": 0, "up": [0, 1, 2, 14], "direct": [0, 14], "update_timestamp": [0, 7, 16, 19], "In": [1, 2, 3, 8, 21], "note": [1, 2, 13, 21], "describ": 1, "object": [1, 18, 19, 20, 21], "instanti": [1, 16, 20], "node": [1, 3, 5, 19], "structur": [1, 11], "determin": 1, "If": 1, "call": [1, 6, 16, 20], "base_link": 1, "shoulder": 1, "wrist": 1, "signifi": 1, "three": 1, "child": [1, 12], "given": 1, "both": [1, 8, 18], "its": 1, "children": 1, "move": [1, 8, 19], "Its": 1, "parent": [1, 4, 9, 10, 11, 12, 14], "unaffect": 1, "defin": [1, 2, 3, 18], "pair": [1, 13], "unit": [1, 2], "quaternion": [1, 19, 21], "term": [1, 21], "alwai": 1, "4d": 1, "translat": [1, 8, 14, 18, 21], "These": [1, 3, 8, 18, 19], "from": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21], "local": [1, 16, 19], "p_": 1, "mathrm": 1, "begin": 1, "bmatrix": 1, "mid": 1, "form": 1, "so": [1, 11, 21], "matrix": [1, 21], "space": [1, 21], "upward": 1, "expos": 1, "colmap": 1, "confusingli": 1, "differ": [1, 21], "nerfstudio": [1, 17], "adopt": 1, "opengl": 1, "blender": 1, "convers": 1, "between": [1, 2, 15, 16, 17, 19, 21], "two": [1, 2, 13], "simpl": [1, 15], "180": 1, "degre": 1, "rotat": [1, 8, 14, 21], "around": [1, 8, 20], "axi": [1, 6, 11, 21], "outlin": 2, "current": [2, 7, 10, 13, 18], "practic": 2, "tool": [2, 17], "workflow": 2, "assum": 2, "repositori": [2, 17], "clone": [2, 17], "There": 2, "lot": [2, 11], "improv": 2, "made": [2, 11], "here": [2, 6], "pr": 2, "welcom": 2, "recommend": 2, "edit": [2, 5], "ideal": 2, "virtual": 2, "environ": 2, "eg": 2, "via": [2, 16, 17, 19, 21], "conda": 2, "packag": [2, 11, 17], "cd": [2, 17], "pip": [2, 17], "e": [2, 17], "exampl": [2, 3, 4, 5, 7, 12, 16, 18, 19, 21], "depend": 2, "altern": 2, "poetri": 2, "curl": 2, "ssl": 2, "http": [2, 11, 12, 17, 18], "org": 2, "python3": 2, "after": [2, 17, 20], "ani": [2, 6, 12, 18], "script": [2, 11, 17], "runnabl": 2, "few": 2, "them": [2, 7, 15], "requir": [2, 12, 13, 18], "download": [2, 11], "asset": [2, 4, 9, 10, 12, 14], "done": [2, 13], "lint": 2, "check": 2, "first": [2, 11, 21], "dev": 2, "pre": [2, 5], "commit": 2, "extra": [2, 10, 14], "equival": [2, 19], "It": [2, 11, 17], "would": 2, "hard": [2, 11], "test": 2, "reli": 2, "static": [2, 16, 21], "robust": 2, "To": [2, 9, 10, 14, 18], "your": 2, "code": 2, "you": [2, 17, 18], "frontend": 2, "backend": [2, 17], "share": [2, 17, 18], "definit": [2, 18, 21], "On": 2, "dataclass": [2, 11, 17, 18, 21], "_messag": 2, "py": [2, 17], "typescript": [2, 17, 18], "interfac": [2, 17, 18, 20, 21], "src": 2, "websocketmessag": 2, "tsx": 2, "ones": 2, "modifi": 2, "instead": 2, "chang": [2, 5, 10, 11], "sync_message_def": 2, "For": [2, 8, 14, 16, 18], "start": [2, 13, 18], "launch": [2, 18, 20], "relev": 2, "good": 2, "05_camera_command": 2, "url": [2, 17], "print": [2, 7, 9, 10, 14, 17, 18], "localhost": [2, 17], "8080": [2, 17, 20], "open": 2, "built": 2, "version": 2, "react": 2, "websocket": [2, 17, 18], "w": [2, 14, 21], "applic": [2, 17, 18], "ignor": [2, 11, 13], "reflect": [2, 5], "make": [2, 11], "file": 2, "more": [2, 11, 21], "nodej": 2, "yarn": 2, "simpli": 2, "directori": [2, 14], "web": [2, 17, 18], "browser": [2, 17], "address": 2, "typic": [2, 21], "need": [2, 11], "tab": 2, "build": [2, 17, 18], "finish": 2, "wrap": 2, "b": [2, 11, 20], "viewer": [2, 3, 4, 17], "what": [2, 18], "allow": [2, 16], "without": 2, "git": [2, 17], "control": [2, 6, 10, 11, 19], "unid": 2, "suggest": 2, "how": [2, 7], "prettier": 2, "npx": 2, "basic": 3, "hierarch": 3, "tree": 3, "branch": 3, "rel": 3, "import": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "random": [3, 4, 5, 6, 8, 11, 14, 15], "viserserv": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20], "while": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "some": [3, 5, 10], "leaf": 3, "sleep": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "remov": [3, 13, 16, 19], "backgrond": 4, "displai": [4, 15], "behind": 4, "textur": [4, 13], "pathlib": [4, 9, 10, 11, 12, 14, 18], "path": [4, 9, 10, 11, 12, 14, 18], "imageio": [4, 14], "v3": [4, 14], "iio": [4, 14], "imread": [4, 14], "__file__": [4, 9, 10, 14], "cal_logo": 4, "main": [4, 5, 6, 10, 11, 12, 13, 14, 15], "img": [4, 14], "4": [4, 5, 8, 11, 15, 21], "nois": 4, "randint": [4, 6], "256": [4, 6], "size": [4, 5, 6, 8, 11, 14], "400": 4, "dtype": [4, 5, 11, 13], "uint8": [4, 5, 13], "1e": [4, 12, 14], "def": [5, 6, 7, 8, 10, 11, 12, 13, 14, 15], "common": 5, "onli": [5, 18], "gui_count": 5, "counter": [5, 15], "gui_slid": 5, "100": [5, 14], "gui_vector2": 5, "gui_vector3": 5, "25": 5, "toggl": [5, 10, 18, 19], "gui_checkbox_hid": 5, "hide": [5, 10, 16], "gui_text": 5, "hello": 5, "world": [5, 20], "gui_button": 5, "gui_checkbox_dis": 5, "gui_rgb": [5, 11], "point_posit": 5, "uniform": [5, 8], "low": 5, "high": [5, 20], "5000": 5, "color_coeff": 5, "shape": [5, 9, 10, 11, 13, 14, 15, 21], "client": [5, 7, 8, 14, 16, 17, 18, 19, 20], "point_cloud": [5, 6, 10, 13], "arrai": [5, 8, 9, 10, 11, 12, 13, 14, 21], "float32": [5, 11, 13], "tile": 5, "reshap": [5, 13], "astyp": [5, 13], "01": [5, 8, 10, 11], "__name__": [5, 6, 10, 11, 12, 13, 14, 15], "__main__": [5, 6, 10, 11, 12, 13, 14, 15], "asynchron": [6, 17, 18], "usag": 6, "soon": 6, "get": [6, 7, 9, 10, 11, 13, 14, 16, 18, 21], "assert_nev": 6, "gui_show": 6, "show": [6, 7, 16], "frame": [6, 8, 9, 10, 11, 12, 13, 14, 19, 20, 21], "gui_axi": 6, "gui_include_z": 6, "_": [6, 7, 8, 10, 11, 12, 13, 14, 15], "els": [6, 11, 12, 15], "gui_loc": 6, "locat": 6, "05": [6, 10, 11, 14], "gui_num_point": 6, "200_000": 6, "10_000": 6, "gui_reset_scen": 6, "draw_fram": 6, "po": 6, "elif": [6, 15], "draw_point": 6, "num_point": 6, "normal": [6, 8, 11, 21], "whenev": [6, 7, 11], "item": [6, 7, 12], "lambda": 6, "on_click": [6, 8, 10, 11, 12, 14, 15, 16, 19], "final": 6, "let": [6, 16], "loop": [6, 10, 11], "infinit": 6, "world_ax": [7, 20], "on_client_connect": [7, 8, 18, 20], "f": [7, 8, 9, 10, 11, 14, 15], "id": [7, 14, 20], "gui_info": 7, "get_client": [7, 14, 20], "kei": [7, 18], "twxyz": 7, "tposit": 7, "tfov": 7, "taspect": 7, "tlast": 7, "addit": 8, "support": [8, 12, 17, 19], "sync": [8, 11], "tf": [8, 9, 10, 11, 12, 14], "num_fram": [8, 10], "rng": 8, "default_rng": 8, "make_fram": 8, "sampl": [8, 11], "linalg": [8, 11], "norm": [8, 11], "coordin": [8, 11, 13, 15, 19, 21], "frame_": [8, 14], "t_world_curr": 8, "se3": [8, 14, 21], "from_rotation_and_transl": [8, 14, 21], "so3": [8, 9, 10, 11, 12, 14, 21], "t_world_target": 8, "from_transl": [8, 21], "t_current_target": 8, "invers": [8, 14, 21], "j": [8, 11, 15], "rang": [8, 10, 11, 13, 15], "50": [8, 10], "t_world_set": 8, "exp": [8, 9, 10, 11, 21], "log": [8, 11, 21], "49": 8, "bit": 8, "mous": 8, "orbit": 8, "origin": 8, "demo": [9, 10, 14], "data": [9, 10, 14], "see": [9, 10, 14], "download_dragon_mesh": 9, "sh": [9, 10, 14], "load_mesh": 9, "dragon": 9, "obj": 9, "assert": [9, 12, 13, 15], "isinst": [9, 12], "load": [9, 10, 12, 14], "pi": [9, 10, 11, 12], "10": [9, 10, 11, 12, 13, 15], "pars": 10, "stream": [10, 13], "captur": 10, "download_record3d_d": 10, "list": [10, 11, 12, 18], "tyro": [10, 11, 12, 14], "tqdm": [10, 13, 14], "auto": [10, 13, 14], "data_path": 10, "record3d_d": 10, "downsample_factor": [10, 14], "max_fram": 10, "loader": 10, "record3dload": 10, "playback": 10, "ui": 10, "gui_timestep": 10, "timestep": 10, "gui_next_fram": 10, "next": 10, "gui_prev_fram": 10, "prev": 10, "gui_plai": 10, "plai": 10, "gui_framer": 10, "fp": [10, 13], "60": 10, "gui_framerate_opt": 10, "30": [10, 13], "re": [10, 11, 18], "framer": 10, "prev_timestep": 10, "nonloc": [10, 14], "current_timestep": 10, "frame_nod": 10, "get_fram": 10, "get_point_cloud": 10, "base": [10, 15, 18, 19, 21], "append": [10, 11, 12], "arctan2": [10, 14], "k": 10, "15": [10, 14], "from_matrix": [10, 11, 12, 21], "t_world_camera": [10, 14], "ax": [10, 20], "005": [10, 14], "enumer": 10, "cli": [10, 11, 12, 14], "instal": [11, 17], "smplx": 11, "model": [11, 14], "github": [11, 12, 17], "com": [11, 12, 17], "vchouta": 11, "joint_nam": [11, 12], "lb": 11, "torch": 11, "model_path": 11, "model_typ": 11, "smplh": 11, "mano": 11, "gender": 11, "male": 11, "femal": 11, "neutral": 11, "num_beta": 11, "num_expression_coeff": 11, "ext": 11, "npz": 11, "pkl": 11, "reorient": 11, "zero": 11, "ll": 11, "keep": [11, 18], "joint": [11, 12], "deform": 11, "could": [11, 13, 14], "effici": 11, "gui_el": 11, "make_gui_el": 11, "num_body_joint": 11, "do": 11, "noth": 11, "continu": [11, 14], "output": [11, 14, 21], "beta": 11, "from_numpi": 11, "gui_beta": 11, "express": 11, "return_vert": 11, "body_pos": 11, "gui_joint": [11, 12], "global_ori": 11, "return_full_pos": 11, "joint_posit": 11, "squeez": 11, "detach": 11, "cpu": 11, "joint_transform": 11, "joint_transforms_and_parents_from_smpl": 11, "gui_wirefram": 11, "per": 11, "joint_": 11, "guielement": 11, "contain": [11, 21], "handl": [11, 15, 18, 20], "flag": 11, "flip": 11, "out": 11, "gui_show_control": 11, "enabl": 11, "gui_reset_shap": 11, "gui_random_shap": 11, "loc": 11, "angl": [11, 21], "gui_reset_joint": 11, "gui_random_joint": 11, "sync_transform_control": 11, "uniformli": 11, "directli": 11, "convert": [11, 18], "quat": 11, "xyzw": [11, 21], "transform_control": 11, "curry_callback": 11, "axisangl": 11, "zip": 11, "hack": 11, "intern": [11, 21], "v_shape": 11, "v_templat": 11, "blend_shap": 11, "shapedir": 11, "vertices2joint": 11, "j_regressor": 11, "rot_mat": 11, "batch_rodrigu": 11, "full_pos": 11, "j_pose": 11, "batch_rigid_transform": 11, "descript": 11, "__doc__": 11, "yourdfpi": 12, "work": 12, "orebrounivers": 12, "yumi": 12, "blob": 12, "master": 12, "yumi_descript": 12, "ankurhanda": 12, "robot": [12, 21], "functool": 12, "partial": 12, "urdf_path": 12, "filename_handl": 12, "filename_handler_mag": 12, "dir": 12, "frame_name_with_par": 12, "frame_nam": 12, "graph": 12, "base_fram": 12, "join": 12, "geometri": 12, "t_parent_child": 12, "get_transform": 12, "g": 12, "update_fram": 12, "update_cfg": 12, "joint_map": 12, "limit": 12, "lower": 12, "upper": 12, "d": 13, "pyrealsense2": 13, "contextlib": 13, "np": 13, "npt": 13, "contextmanag": 13, "realsense_pipelin": 13, "manag": [13, 17], "yield": 13, "pipelin": 13, "depth": 13, "config": 13, "pipeline_wrapp": 13, "resolv": 13, "enable_stream": 13, "z16": 13, "rgb8": 13, "close": 13, "point_cloud_arrays_from_fram": 13, "depth_fram": 13, "color_fram": 13, "map": [13, 20], "n": [13, 21], "block": 13, "tune": 13, "pointcloud": 13, "decim": 13, "decimation_filt": 13, "set_opt": 13, "filter_magnitud": 13, "downsampl": [13, 14], "calcul": 13, "intrins": 13, "map_to": 13, "texture_uv": 13, "asanyarrai": 13, "get_texture_coordin": 13, "color_imag": 13, "get_data": 13, "color_h": 13, "color_w": 13, "aren": 13, "our": [13, 16, 21], "clamp": 13, "avail": 13, "pixel": 13, "clip": 13, "get_vertic": 13, "int32": 13, "viser_serv": 13, "10000000": 13, "wait": 13, "coher": 13, "wait_for_fram": 13, "get_depth_fram": 13, "get_color_fram": 13, "comput": [13, 21], "spars": 14, "reconstruct": 14, "download_colmap_garden": 14, "read_cameras_binari": 14, "read_images_binari": 14, "read_points3d_binari": 14, "colmap_path": 14, "colmap_garden": 14, "images_path": 14, "images_8": 14, "factor": 14, "canvas_background_color": 14, "230": 14, "info": 14, "bin": 14, "points3d": 14, "gui_reset_up": 14, "gui_point": 14, "len": 14, "50_000": 14, "gui_fram": 14, "gui_point_s": 14, "visualize_colmap": 14, "optim": 14, "ton": 14, "p_id": 14, "xyz": [14, 21], "points_select": 14, "choic": 14, "replac": [14, 15], "pcd": 14, "interpret": 14, "img_id": 14, "im": 14, "shuffl": 14, "sort": 14, "attach_callback": 14, "cam": 14, "camera_id": 14, "skip": 14, "don": [14, 18], "exist": 14, "image_filenam": 14, "qvec": 14, "tvec": 14, "pinhol": 14, "param": 14, "fx": 14, "fy": 14, "cx": 14, "cy": 14, "expect": 14, "got": 14, "h": 14, "need_upd": 14, "select": 15, "index": 15, "last": [15, 16, 21], "matplotlib": 15, "creation": 15, "grid_shap": 15, "x_valu": 15, "y_valu": 15, "add_swappable_mesh": 15, "swap": 15, "grai": 15, "box": 15, "sphere": 15, "chosen": 15, "grid": 15, "colormap": 15, "tab20": 15, "create_mesh": 15, "icospher": 15, "subdivis": 15, "radiu": 15, "rand": 15, "vertex_color": 15, "sphere_": 15, "old": 15, "becaus": 15, "same": [15, 18, 21], "ad": [16, 18, 19], "u": 16, "disallow": 16, "func": [16, 19], "tguihandl": 16, "function": [16, 20], "thread": [16, 20], "perman": 16, "wa": 16, "temporarili": 16, "press": 16, "guibuttongrouphandl": 16, "cannot": 16, "guidropdownhandl": 16, "style": 16, "project": [16, 17, 21], "care": 16, "about": 16, "consist": 16, "stringtyp": 16, "associ": 16, "infer": 16, "possibl": 16, "most": 16, "flexibl": 16, "declar": 16, "_guihandl": 16, "ellipsi": 16, "librari": 17, "inspir": 17, "pangolin": 17, "rviz": 17, "meshcat": 17, "As": 17, "standalon": 17, "featur": 17, "includ": [17, 20], "easi": 17, "remot": 17, "machin": 17, "primit": 17, "multipl": 17, "panel": 17, "custom": 17, "port": [17, 18, 20, 21], "infrastructur": [17, 18], "persist": [17, 18], "logic": 17, "serial": [17, 18], "4_gui": 17, "navig": 17, "default": [17, 18, 20, 21], "provid": [18, 20], "implement": [18, 21], "abstract": [18, 21], "regist": 18, "event": [18, 19], "broadcast": 18, "under": 18, "hood": 18, "won": 18, "unless": 18, "scratch": 18, "clientconnect": 18, "singl": 18, "register_handl": 18, "message_cl": 18, "tmessag": 18, "clientid": 18, "abc": [18, 21], "classmethod": [18, 21], "deseri": 18, "byte": 18, "excluded_self_cli": 18, "other": [18, 21], "get_subclass": 18, "recurs": 18, "subclass": 18, "redundancy_kei": 18, "uniqu": 18, "redund": 18, "latest": 18, "mix": 18, "host": [18, 20], "message_class": 18, "http_server_root": 18, "verbos": 18, "By": 18, "retriev": 18, "bind": 18, "have": 18, "argument": 18, "futur": 18, "root": 18, "push": 18, "onto": 18, "queue": 18, "sent": [18, 20], "thei": 18, "buffer": 18, "previous": 18, "cull": 18, "cb": [18, 20], "newli": [18, 20], "on_client_disconnect": [18, 20], "disconnect": [18, 20], "generate_typescript_interfac": 18, "scenenodehandl": 19, "p_parent": 19, "p_local": 19, "represent": [19, 21], "tscenenodehandl": 19, "todo": 19, "slow": 19, "whether": 19, "doe": 19, "core": 20, "design": 20, "level": 20, "primari": 20, "command": 20, "add_gui_": 20, "copi": 20, "dict": 20, "manipul": 20, "worldax": 20, "hidden": 20, "lie": 21, "rigid": 21, "jaxli": 21, "se": 21, "parameter": 21, "matrixliegroup": 21, "adjoint": 21, "tangent": 21, "grouptyp": 21, "omega": 21, "adj_t": 21, "twist": 21, "wrench": 21, "jacobian": 21, "across": 21, "refer": 21, "tangent_dim": 21, "target": 21, "action": 21, "as_matrix": 21, "homogen": 21, "expm": 21, "wedg": 21, "take": 21, "exponenti": 21, "member": 21, "representaiton": 21, "ident": 21, "vee": 21, "logm": 21, "matrix_dim": 21, "dimens": 21, "squar": 21, "multipli": 21, "compos": 21, "anoth": 21, "self": 21, "underli": 21, "parameters_dim": 21, "space_dim": 21, "se2": 21, "sebas": 21, "so2": 21, "special": 21, "euclidean": 21, "proper": 21, "co": 21, "sin": 21, "vx": 21, "vy": 21, "from_rot": 21, "containedsotyp": 21, "segrouptyp": 21, "construct": 21, "from_xy_theta": 21, "scalar": 21, "theta": 21, "standard": 21, "pose": 21, "integr": 21, "unit_complex_xi": 21, "qw": 21, "qx": 21, "qy": 21, "qz": 21, "vz": 21, "omega_x": 21, "omega_i": 21, "omega_z": 21, "wxyz_xyz": 21, "dimension": 21, "sobas": 21, "orthogon": 21, "as_radian": 21, "from_radian": 21, "unit_complex": 21, "as_quaternion_xyzw": 21, "grab": 21, "as_rpy_radian": 21, "roll": 21, "pitch": 21, "yaw": 21, "zyx": 21, "mobil": 21, "euler": 21, "rollpitchyaw": 21, "compute_pitch_radian": 21, "compute_roll_radian": 21, "compute_yaw_radian": 21, "from_quaternion_xyzw": 21, "constructor": 21, "from_rpy_radian": 21, "second": 21, "from_x_radian": 21, "from_y_radian": 21, "from_z_radian": 21}, "objects": {"viser": [[19, 0, 1, "", "CameraFrustumHandle"], [0, 0, 1, "", "CameraHandle"], [0, 0, 1, "", "ClientHandle"], [19, 0, 1, "", "FrameHandle"], [16, 0, 1, "", "GuiButtonGroupHandle"], [16, 0, 1, "", "GuiButtonHandle"], [16, 0, 1, "", "GuiDropdownHandle"], [16, 0, 1, "", "GuiHandle"], [19, 0, 1, "", "ImageHandle"], [19, 0, 1, "", "LabelHandle"], [19, 0, 1, "", "MeshHandle"], [19, 0, 1, "", "PointCloudHandle"], [19, 0, 1, "", "SceneNodeHandle"], [19, 0, 1, "", "TransformControlsHandle"], [20, 0, 1, "", "ViserServer"], [18, 4, 0, "-", "infra"], [21, 4, 0, "-", "transforms"]], "viser.CameraFrustumHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.CameraHandle": [[0, 2, 1, "", "aspect"], [0, 2, 1, "", "client"], [0, 2, 1, "", "fov"], [0, 2, 1, "", "look_at"], [0, 1, 1, "", "on_update"], [0, 2, 1, "", "position"], [0, 2, 1, "", "up_direction"], [0, 2, 1, "", "update_timestamp"], [0, 2, 1, "", "wxyz"]], "viser.ClientHandle": [[0, 1, 1, "", "add_camera_frustum"], [0, 1, 1, "", "add_frame"], [0, 1, 1, "", "add_gui_button"], [0, 1, 1, "", "add_gui_button_group"], [0, 1, 1, "", "add_gui_checkbox"], [0, 1, 1, "", "add_gui_dropdown"], [0, 1, 1, "", "add_gui_number"], [0, 1, 1, "", "add_gui_rgb"], [0, 1, 1, "", "add_gui_rgba"], [0, 1, 1, "", "add_gui_slider"], [0, 1, 1, "", "add_gui_text"], [0, 1, 1, "", "add_gui_vector2"], [0, 1, 1, "", "add_gui_vector3"], [0, 1, 1, "", "add_image"], [0, 1, 1, "", "add_label"], [0, 1, 1, "", "add_mesh"], [0, 1, 1, "", "add_mesh_simple"], [0, 1, 1, "", "add_mesh_trimesh"], [0, 1, 1, "", "add_point_cloud"], [0, 1, 1, "", "add_transform_controls"], [0, 1, 1, "", "atomic"], [0, 3, 1, "", "camera"], [0, 3, 1, "", "client_id"], [0, 1, 1, "", "configure_theme"], [0, 1, 1, "", "gui_folder"], [0, 1, 1, "", "reset_scene"], [0, 1, 1, "", "set_background_image"]], "viser.FrameHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.GuiButtonGroupHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_click"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.GuiButtonHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_click"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.GuiDropdownHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_update"], [16, 2, 1, "", "options"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.GuiHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_update"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.ImageHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.LabelHandle": [[19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "wxyz"]], "viser.MeshHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.PointCloudHandle": [[19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.SceneNodeHandle": [[19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "wxyz"]], "viser.TransformControlsHandle": [[19, 1, 1, "", "on_click"], [19, 1, 1, "", "on_update"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "update_timestamp"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.ViserServer": [[20, 1, 1, "", "add_camera_frustum"], [20, 1, 1, "", "add_frame"], [20, 1, 1, "", "add_gui_button"], [20, 1, 1, "", "add_gui_button_group"], [20, 1, 1, "", "add_gui_checkbox"], [20, 1, 1, "", "add_gui_dropdown"], [20, 1, 1, "", "add_gui_number"], [20, 1, 1, "", "add_gui_rgb"], [20, 1, 1, "", "add_gui_rgba"], [20, 1, 1, "", "add_gui_slider"], [20, 1, 1, "", "add_gui_text"], [20, 1, 1, "", "add_gui_vector2"], [20, 1, 1, "", "add_gui_vector3"], [20, 1, 1, "", "add_image"], [20, 1, 1, "", "add_label"], [20, 1, 1, "", "add_mesh"], [20, 1, 1, "", "add_mesh_simple"], [20, 1, 1, "", "add_mesh_trimesh"], [20, 1, 1, "", "add_point_cloud"], [20, 1, 1, "", "add_transform_controls"], [20, 1, 1, "", "atomic"], [20, 1, 1, "", "configure_theme"], [20, 1, 1, "", "get_clients"], [20, 1, 1, "", "gui_folder"], [20, 1, 1, "", "on_client_connect"], [20, 1, 1, "", "on_client_disconnect"], [20, 1, 1, "", "reset_scene"], [20, 1, 1, "", "set_background_image"], [20, 3, 1, "", "world_axes"]], "viser.infra": [[18, 0, 1, "", "ClientConnection"], [18, 5, 1, "", "ClientId"], [18, 0, 1, "", "Message"], [18, 0, 1, "", "MessageHandler"], [18, 0, 1, "", "Server"], [18, 6, 1, "", "generate_typescript_interfaces"]], "viser.infra.ClientConnection": [[18, 3, 1, "", "client_id"], [18, 1, 1, "", "register_handler"], [18, 1, 1, "", "send"]], "viser.infra.Message": [[18, 1, 1, "", "deserialize"], [18, 3, 1, "", "excluded_self_client"], [18, 1, 1, "", "get_subclasses"], [18, 1, 1, "", "redundancy_key"], [18, 1, 1, "", "serialize"]], "viser.infra.MessageHandler": [[18, 1, 1, "", "register_handler"]], "viser.infra.Server": [[18, 1, 1, "", "broadcast"], [18, 1, 1, "", "on_client_connect"], [18, 1, 1, "", "on_client_disconnect"], [18, 1, 1, "", "register_handler"], [18, 1, 1, "", "start"]], "viser.transforms": [[21, 0, 1, "", "MatrixLieGroup"], [21, 0, 1, "", "SE2"], [21, 0, 1, "", "SE3"], [21, 0, 1, "", "SEBase"], [21, 0, 1, "", "SO2"], [21, 0, 1, "", "SO3"], [21, 0, 1, "", "SOBase"]], "viser.transforms.MatrixLieGroup": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"]], "viser.transforms.SE2": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_rotation"], [21, 1, 1, "", "from_rotation_and_translation"], [21, 1, 1, "", "from_translation"], [21, 1, 1, "", "from_xy_theta"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 1, 1, "", "rotation"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 1, 1, "", "translation"], [21, 3, 1, "", "unit_complex_xy"]], "viser.transforms.SE3": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_rotation"], [21, 1, 1, "", "from_rotation_and_translation"], [21, 1, 1, "", "from_translation"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 1, 1, "", "rotation"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 1, 1, "", "translation"], [21, 3, 1, "", "wxyz_xyz"]], "viser.transforms.SEBase": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_rotation"], [21, 1, 1, "", "from_rotation_and_translation"], [21, 1, 1, "", "from_translation"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 1, 1, "", "rotation"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 1, 1, "", "translation"]], "viser.transforms.SO2": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "as_radians"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_radians"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 3, 1, "", "unit_complex"]], "viser.transforms.SO3": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "as_quaternion_xyzw"], [21, 1, 1, "", "as_rpy_radians"], [21, 1, 1, "", "compute_pitch_radians"], [21, 1, 1, "", "compute_roll_radians"], [21, 1, 1, "", "compute_yaw_radians"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_quaternion_xyzw"], [21, 1, 1, "", "from_rpy_radians"], [21, 1, 1, "", "from_x_radians"], [21, 1, 1, "", "from_y_radians"], [21, 1, 1, "", "from_z_radians"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 3, 1, "", "wxyz"]], "viser.transforms.SOBase": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:attribute", "4": "py:module", "5": "py:data", "6": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "module", "Python module"], "5": ["py", "data", "Python data"], "6": ["py", "function", "Python function"]}, "titleterms": {"client": [0, 2], "handl": [0, 16, 19], "frame": [1, 3], "convent": 1, "scene": [1, 19], "tree": 1, "name": 1, "pose": [1, 7], "world": 1, "coordin": [1, 3], "camera": [1, 7, 8], "develop": 2, "python": 2, "instal": 2, "messag": 2, "updat": 2, "imag": 4, "gui": [5, 6, 16], "basic": 5, "callback": [6, 15], "command": 8, "mesh": 9, "record3d": 10, "visual": [10, 11, 12, 13, 14], "smpl": 11, "x": 11, "urdf": 12, "realsens": 13, "colmap": 14, "click": 15, "demonstr": 15, "viser": [17, 20], "run": 17, "exampl": 17, "commun": 18, "server": 20, "transform": 21}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Client Handles": [[0, "client-handles"]], "Frame Conventions": [[1, "frame-conventions"]], "Scene tree naming": [[1, "scene-tree-naming"]], "Poses": [[1, "poses"]], "World coordinates": [[1, "world-coordinates"]], "Cameras": [[1, "cameras"]], "Development": [[2, "development"]], "Python install": [[2, "python-install"]], "Message updates": [[2, "message-updates"]], "Client development": [[2, "client-development"]], "Coordinate frames": [[3, "coordinate-frames"]], "Images": [[4, "images"]], "GUI basics": [[5, "gui-basics"]], "GUI callbacks": [[6, "gui-callbacks"]], "Camera poses": [[7, "camera-poses"]], "Camera commands": [[8, "camera-commands"]], "Meshes": [[9, "meshes"]], "Record3D visualizer": [[10, "record3d-visualizer"]], "SMPL-X visualizer": [[11, "smpl-x-visualizer"]], "URDF visualizer": [[12, "urdf-visualizer"]], "RealSense visualizer": [[13, "realsense-visualizer"]], "COLMAP visualizer": [[14, "colmap-visualizer"]], "Click callback demonstration.": [[15, "click-callback-demonstration"]], "GUI Handles": [[16, "gui-handles"]], "viser": [[17, "viser"]], "Running examples": [[17, "running-examples"]], "Communication": [[18, "communication"]], "Scene Handles": [[19, "scene-handles"]], "Viser Server": [[20, "viser-server"]], "Transforms": [[21, "transforms"]]}, "indexentries": {"camerahandle (class in viser)": [[0, "viser.CameraHandle"]], "clienthandle (class in viser)": [[0, "viser.ClientHandle"]], "add_camera_frustum() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_camera_frustum"]], "add_frame() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_frame"]], "add_gui_button() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_button"]], "add_gui_button_group() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_button_group"]], "add_gui_checkbox() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_checkbox"]], "add_gui_dropdown() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_dropdown"]], "add_gui_number() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_number"]], "add_gui_rgb() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_rgb"]], "add_gui_rgba() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_rgba"]], "add_gui_slider() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_slider"]], "add_gui_text() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_text"]], "add_gui_vector2() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_vector2"]], "add_gui_vector3() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_vector3"]], "add_image() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_image"]], "add_label() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_label"]], "add_mesh() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_mesh"]], "add_mesh_simple() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_mesh_simple"]], "add_mesh_trimesh() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_mesh_trimesh"]], "add_point_cloud() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_point_cloud"]], "add_transform_controls() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_transform_controls"]], "aspect (viser.camerahandle property)": [[0, "viser.CameraHandle.aspect"]], "atomic() (viser.clienthandle method)": [[0, "viser.ClientHandle.atomic"]], "camera (viser.clienthandle attribute)": [[0, "viser.ClientHandle.camera"]], "client (viser.camerahandle property)": [[0, "viser.CameraHandle.client"]], "client_id (viser.clienthandle attribute)": [[0, "viser.ClientHandle.client_id"]], "configure_theme() (viser.clienthandle method)": [[0, "viser.ClientHandle.configure_theme"]], "fov (viser.camerahandle property)": [[0, "viser.CameraHandle.fov"]], "gui_folder() (viser.clienthandle method)": [[0, "viser.ClientHandle.gui_folder"]], "look_at (viser.camerahandle property)": [[0, "viser.CameraHandle.look_at"]], "on_update() (viser.camerahandle method)": [[0, "viser.CameraHandle.on_update"]], "position (viser.camerahandle property)": [[0, "viser.CameraHandle.position"]], "reset_scene() (viser.clienthandle method)": [[0, "viser.ClientHandle.reset_scene"]], "set_background_image() (viser.clienthandle method)": [[0, "viser.ClientHandle.set_background_image"]], "up_direction (viser.camerahandle property)": [[0, "viser.CameraHandle.up_direction"]], "update_timestamp (viser.camerahandle property)": [[0, "viser.CameraHandle.update_timestamp"]], "wxyz (viser.camerahandle property)": [[0, "viser.CameraHandle.wxyz"]], "guibuttongrouphandle (class in viser)": [[16, "viser.GuiButtonGroupHandle"]], "guibuttonhandle (class in viser)": [[16, "viser.GuiButtonHandle"]], "guidropdownhandle (class in viser)": [[16, "viser.GuiDropdownHandle"]], "guihandle (class in viser)": [[16, "viser.GuiHandle"]], "disabled (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.disabled"]], "disabled (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.disabled"]], "disabled (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.disabled"]], "disabled (viser.guihandle property)": [[16, "viser.GuiHandle.disabled"]], "on_click() (viser.guibuttongrouphandle method)": [[16, "viser.GuiButtonGroupHandle.on_click"]], "on_click() (viser.guibuttonhandle method)": [[16, "viser.GuiButtonHandle.on_click"]], "on_update() (viser.guidropdownhandle method)": [[16, "viser.GuiDropdownHandle.on_update"]], "on_update() (viser.guihandle method)": [[16, "viser.GuiHandle.on_update"]], "options (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.options"]], "remove() (viser.guibuttongrouphandle method)": [[16, "viser.GuiButtonGroupHandle.remove"]], "remove() (viser.guibuttonhandle method)": [[16, "viser.GuiButtonHandle.remove"]], "remove() (viser.guidropdownhandle method)": [[16, "viser.GuiDropdownHandle.remove"]], "remove() (viser.guihandle method)": [[16, "viser.GuiHandle.remove"]], "update_timestamp (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.update_timestamp"]], "update_timestamp (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.update_timestamp"]], "update_timestamp (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.update_timestamp"]], "update_timestamp (viser.guihandle property)": [[16, "viser.GuiHandle.update_timestamp"]], "value (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.value"]], "value (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.value"]], "value (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.value"]], "value (viser.guihandle property)": [[16, "viser.GuiHandle.value"]], "visible (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.visible"]], "visible (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.visible"]], "visible (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.visible"]], "visible (viser.guihandle property)": [[16, "viser.GuiHandle.visible"]], "clientconnection (class in viser.infra)": [[18, "viser.infra.ClientConnection"]], "clientid (in module viser.infra)": [[18, "viser.infra.ClientId"]], "message (class in viser.infra)": [[18, "viser.infra.Message"]], "messagehandler (class in viser.infra)": [[18, "viser.infra.MessageHandler"]], "server (class in viser.infra)": [[18, "viser.infra.Server"]], "broadcast() (viser.infra.server method)": [[18, "viser.infra.Server.broadcast"]], "client_id (viser.infra.clientconnection attribute)": [[18, "viser.infra.ClientConnection.client_id"]], "deserialize() (viser.infra.message class method)": [[18, "viser.infra.Message.deserialize"]], "excluded_self_client (viser.infra.message attribute)": [[18, "viser.infra.Message.excluded_self_client"]], "generate_typescript_interfaces() (in module viser.infra)": [[18, "viser.infra.generate_typescript_interfaces"]], "get_subclasses() (viser.infra.message class method)": [[18, "viser.infra.Message.get_subclasses"]], "module": [[18, "module-viser.infra"], [21, "module-viser.transforms"]], "on_client_connect() (viser.infra.server method)": [[18, "viser.infra.Server.on_client_connect"]], "on_client_disconnect() (viser.infra.server method)": [[18, "viser.infra.Server.on_client_disconnect"]], "redundancy_key() (viser.infra.message method)": [[18, "viser.infra.Message.redundancy_key"]], "register_handler() (viser.infra.clientconnection method)": [[18, "viser.infra.ClientConnection.register_handler"]], "register_handler() (viser.infra.messagehandler method)": [[18, "viser.infra.MessageHandler.register_handler"]], "register_handler() (viser.infra.server method)": [[18, "viser.infra.Server.register_handler"]], "send() (viser.infra.clientconnection method)": [[18, "viser.infra.ClientConnection.send"]], "serialize() (viser.infra.message method)": [[18, "viser.infra.Message.serialize"]], "start() (viser.infra.server method)": [[18, "viser.infra.Server.start"]], "viser.infra": [[18, "module-viser.infra"]], "camerafrustumhandle (class in viser)": [[19, "viser.CameraFrustumHandle"]], "framehandle (class in viser)": [[19, "viser.FrameHandle"]], "imagehandle (class in viser)": [[19, "viser.ImageHandle"]], "labelhandle (class in viser)": [[19, "viser.LabelHandle"]], "meshhandle (class in viser)": [[19, "viser.MeshHandle"]], "pointcloudhandle (class in viser)": [[19, "viser.PointCloudHandle"]], "scenenodehandle (class in viser)": [[19, "viser.SceneNodeHandle"]], "transformcontrolshandle (class in viser)": [[19, "viser.TransformControlsHandle"]], "on_click() (viser.camerafrustumhandle method)": [[19, "viser.CameraFrustumHandle.on_click"]], "on_click() (viser.framehandle method)": [[19, "viser.FrameHandle.on_click"]], "on_click() (viser.imagehandle method)": [[19, "viser.ImageHandle.on_click"]], "on_click() (viser.meshhandle method)": [[19, "viser.MeshHandle.on_click"]], "on_click() (viser.transformcontrolshandle method)": [[19, "viser.TransformControlsHandle.on_click"]], "on_update() (viser.transformcontrolshandle method)": [[19, "viser.TransformControlsHandle.on_update"]], "position (viser.camerafrustumhandle property)": [[19, "viser.CameraFrustumHandle.position"]], "position (viser.framehandle property)": [[19, "viser.FrameHandle.position"]], "position (viser.imagehandle property)": [[19, "viser.ImageHandle.position"]], "position (viser.labelhandle property)": [[19, "viser.LabelHandle.position"]], "position (viser.meshhandle property)": [[19, "viser.MeshHandle.position"]], "position (viser.pointcloudhandle property)": [[19, "viser.PointCloudHandle.position"]], "position (viser.scenenodehandle property)": [[19, "viser.SceneNodeHandle.position"]], "position (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.position"]], "remove() (viser.camerafrustumhandle method)": [[19, "viser.CameraFrustumHandle.remove"]], "remove() (viser.framehandle method)": [[19, "viser.FrameHandle.remove"]], "remove() (viser.imagehandle method)": [[19, "viser.ImageHandle.remove"]], "remove() (viser.labelhandle method)": [[19, "viser.LabelHandle.remove"]], "remove() (viser.meshhandle method)": [[19, "viser.MeshHandle.remove"]], "remove() (viser.pointcloudhandle method)": [[19, "viser.PointCloudHandle.remove"]], "remove() (viser.scenenodehandle method)": [[19, "viser.SceneNodeHandle.remove"]], "remove() (viser.transformcontrolshandle method)": [[19, "viser.TransformControlsHandle.remove"]], "update_timestamp (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.update_timestamp"]], "visible (viser.camerafrustumhandle property)": [[19, "viser.CameraFrustumHandle.visible"]], "visible (viser.framehandle property)": [[19, "viser.FrameHandle.visible"]], "visible (viser.imagehandle property)": [[19, "viser.ImageHandle.visible"]], "visible (viser.meshhandle property)": [[19, "viser.MeshHandle.visible"]], "visible (viser.pointcloudhandle property)": [[19, "viser.PointCloudHandle.visible"]], "visible (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.visible"]], "wxyz (viser.camerafrustumhandle property)": [[19, "viser.CameraFrustumHandle.wxyz"]], "wxyz (viser.framehandle property)": [[19, "viser.FrameHandle.wxyz"]], "wxyz (viser.imagehandle property)": [[19, "viser.ImageHandle.wxyz"]], "wxyz (viser.labelhandle property)": [[19, "viser.LabelHandle.wxyz"]], "wxyz (viser.meshhandle property)": [[19, "viser.MeshHandle.wxyz"]], "wxyz (viser.pointcloudhandle property)": [[19, "viser.PointCloudHandle.wxyz"]], "wxyz (viser.scenenodehandle property)": [[19, "viser.SceneNodeHandle.wxyz"]], "wxyz (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.wxyz"]], "viserserver (class in viser)": [[20, "viser.ViserServer"]], "add_camera_frustum() (viser.viserserver method)": [[20, "viser.ViserServer.add_camera_frustum"]], "add_frame() (viser.viserserver method)": [[20, "viser.ViserServer.add_frame"]], "add_gui_button() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_button"]], "add_gui_button_group() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_button_group"]], "add_gui_checkbox() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_checkbox"]], "add_gui_dropdown() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_dropdown"]], "add_gui_number() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_number"]], "add_gui_rgb() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_rgb"]], "add_gui_rgba() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_rgba"]], "add_gui_slider() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_slider"]], "add_gui_text() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_text"]], "add_gui_vector2() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_vector2"]], "add_gui_vector3() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_vector3"]], "add_image() (viser.viserserver method)": [[20, "viser.ViserServer.add_image"]], "add_label() (viser.viserserver method)": [[20, "viser.ViserServer.add_label"]], "add_mesh() (viser.viserserver method)": [[20, "viser.ViserServer.add_mesh"]], "add_mesh_simple() (viser.viserserver method)": [[20, "viser.ViserServer.add_mesh_simple"]], "add_mesh_trimesh() (viser.viserserver method)": [[20, "viser.ViserServer.add_mesh_trimesh"]], "add_point_cloud() (viser.viserserver method)": [[20, "viser.ViserServer.add_point_cloud"]], "add_transform_controls() (viser.viserserver method)": [[20, "viser.ViserServer.add_transform_controls"]], "atomic() (viser.viserserver method)": [[20, "viser.ViserServer.atomic"]], "configure_theme() (viser.viserserver method)": [[20, "viser.ViserServer.configure_theme"]], "get_clients() (viser.viserserver method)": [[20, "viser.ViserServer.get_clients"]], "gui_folder() (viser.viserserver method)": [[20, "viser.ViserServer.gui_folder"]], "on_client_connect() (viser.viserserver method)": [[20, "viser.ViserServer.on_client_connect"]], "on_client_disconnect() (viser.viserserver method)": [[20, "viser.ViserServer.on_client_disconnect"]], "reset_scene() (viser.viserserver method)": [[20, "viser.ViserServer.reset_scene"]], "set_background_image() (viser.viserserver method)": [[20, "viser.ViserServer.set_background_image"]], "world_axes (viser.viserserver attribute)": [[20, "viser.ViserServer.world_axes"]], "matrixliegroup (class in viser.transforms)": [[21, "viser.transforms.MatrixLieGroup"]], "se2 (class in viser.transforms)": [[21, "viser.transforms.SE2"]], "se3 (class in viser.transforms)": [[21, "viser.transforms.SE3"]], "sebase (class in viser.transforms)": [[21, "viser.transforms.SEBase"]], "so2 (class in viser.transforms)": [[21, "viser.transforms.SO2"]], "so3 (class in viser.transforms)": [[21, "viser.transforms.SO3"]], "sobase (class in viser.transforms)": [[21, "viser.transforms.SOBase"]], "adjoint() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.adjoint"]], "adjoint() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.adjoint"]], "adjoint() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.adjoint"]], "adjoint() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.adjoint"]], "adjoint() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.adjoint"]], "adjoint() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.adjoint"]], "adjoint() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.adjoint"]], "apply() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.apply"]], "apply() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.apply"]], "apply() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.apply"]], "apply() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.apply"]], "apply() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.apply"]], "apply() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.apply"]], "apply() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.apply"]], "as_matrix() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.as_matrix"]], "as_matrix() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.as_matrix"]], "as_matrix() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.as_matrix"]], "as_matrix() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.as_matrix"]], "as_matrix() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.as_matrix"]], "as_matrix() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.as_matrix"]], "as_matrix() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.as_matrix"]], "as_quaternion_xyzw() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.as_quaternion_xyzw"]], "as_radians() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.as_radians"]], "as_rpy_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.as_rpy_radians"]], "compute_pitch_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.compute_pitch_radians"]], "compute_roll_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.compute_roll_radians"]], "compute_yaw_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.compute_yaw_radians"]], "exp() (viser.transforms.matrixliegroup class method)": [[21, "viser.transforms.MatrixLieGroup.exp"]], "exp() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.exp"]], "exp() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.exp"]], "exp() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.exp"]], "exp() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.exp"]], "exp() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.exp"]], "exp() (viser.transforms.sobase class method)": [[21, "viser.transforms.SOBase.exp"]], "from_matrix() (viser.transforms.matrixliegroup class method)": [[21, "viser.transforms.MatrixLieGroup.from_matrix"]], "from_matrix() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.from_matrix"]], "from_matrix() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.from_matrix"]], "from_matrix() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_matrix"]], "from_matrix() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.from_matrix"]], "from_matrix() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_matrix"]], "from_matrix() (viser.transforms.sobase class method)": [[21, "viser.transforms.SOBase.from_matrix"]], "from_quaternion_xyzw() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_quaternion_xyzw"]], "from_radians() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.from_radians"]], "from_rotation() (viser.transforms.se2 class method)": [[21, "viser.transforms.SE2.from_rotation"]], "from_rotation() (viser.transforms.se3 class method)": [[21, "viser.transforms.SE3.from_rotation"]], "from_rotation() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_rotation"]], "from_rotation_and_translation() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.from_rotation_and_translation"]], "from_rotation_and_translation() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.from_rotation_and_translation"]], "from_rotation_and_translation() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_rotation_and_translation"]], "from_rpy_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_rpy_radians"]], "from_translation() (viser.transforms.se2 class method)": [[21, "viser.transforms.SE2.from_translation"]], "from_translation() (viser.transforms.se3 class method)": [[21, "viser.transforms.SE3.from_translation"]], "from_translation() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_translation"]], "from_x_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_x_radians"]], "from_xy_theta() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.from_xy_theta"]], "from_y_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_y_radians"]], "from_z_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_z_radians"]], "identity() (viser.transforms.matrixliegroup class method)": [[21, "viser.transforms.MatrixLieGroup.identity"]], "identity() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.identity"]], "identity() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.identity"]], "identity() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.identity"]], "identity() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.identity"]], "identity() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.identity"]], "identity() (viser.transforms.sobase class method)": [[21, "viser.transforms.SOBase.identity"]], "inverse() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.inverse"]], "inverse() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.inverse"]], "inverse() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.inverse"]], "inverse() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.inverse"]], "inverse() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.inverse"]], "inverse() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.inverse"]], "inverse() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.inverse"]], "log() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.log"]], "log() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.log"]], "log() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.log"]], "log() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.log"]], "log() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.log"]], "log() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.log"]], "log() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.log"]], "matrix_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.matrix_dim"]], "matrix_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.matrix_dim"]], "matrix_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.matrix_dim"]], "matrix_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.matrix_dim"]], "matrix_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.matrix_dim"]], "matrix_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.matrix_dim"]], "matrix_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.matrix_dim"]], "multiply() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.multiply"]], "multiply() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.multiply"]], "multiply() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.multiply"]], "multiply() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.multiply"]], "multiply() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.multiply"]], "multiply() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.multiply"]], "multiply() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.multiply"]], "normalize() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.normalize"]], "normalize() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.normalize"]], "normalize() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.normalize"]], "normalize() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.normalize"]], "normalize() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.normalize"]], "normalize() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.normalize"]], "normalize() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.normalize"]], "parameters() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.parameters"]], "parameters() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.parameters"]], "parameters() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.parameters"]], "parameters() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.parameters"]], "parameters() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.parameters"]], "parameters() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.parameters"]], "parameters() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.parameters"]], "parameters_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.parameters_dim"]], "parameters_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.parameters_dim"]], "parameters_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.parameters_dim"]], "parameters_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.parameters_dim"]], "parameters_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.parameters_dim"]], "parameters_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.parameters_dim"]], "parameters_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.parameters_dim"]], "rotation() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.rotation"]], "rotation() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.rotation"]], "rotation() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.rotation"]], "space_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.space_dim"]], "space_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.space_dim"]], "space_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.space_dim"]], "space_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.space_dim"]], "space_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.space_dim"]], "space_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.space_dim"]], "space_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.space_dim"]], "tangent_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.tangent_dim"]], "tangent_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.tangent_dim"]], "tangent_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.tangent_dim"]], "tangent_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.tangent_dim"]], "tangent_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.tangent_dim"]], "tangent_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.tangent_dim"]], "tangent_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.tangent_dim"]], "translation() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.translation"]], "translation() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.translation"]], "translation() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.translation"]], "unit_complex (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.unit_complex"]], "unit_complex_xy (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.unit_complex_xy"]], "viser.transforms": [[21, "module-viser.transforms"]], "wxyz (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.wxyz"]], "wxyz_xyz (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.wxyz_xyz"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["client_handles", "conventions", "development", "examples/00_coordinate_frames", "examples/01_image", "examples/02_gui", "examples/03_gui_callbacks", "examples/04_camera_poses", "examples/05_camera_commands", "examples/06_mesh", "examples/07_record3d_visualizer", "examples/08_smplx_visualizer", "examples/09_urdf_visualizer", "examples/10_realsense", "examples/11_colmap_visualizer", "examples/12_click_meshes", "gui_handles", "index", "infrastructure", "scene_handles", "server", "transforms"], "filenames": ["client_handles.md", "conventions.md", "development.md", "examples/00_coordinate_frames.rst", "examples/01_image.rst", "examples/02_gui.rst", "examples/03_gui_callbacks.rst", "examples/04_camera_poses.rst", "examples/05_camera_commands.rst", "examples/06_mesh.rst", "examples/07_record3d_visualizer.rst", "examples/08_smplx_visualizer.rst", "examples/09_urdf_visualizer.rst", "examples/10_realsense.rst", "examples/11_colmap_visualizer.rst", "examples/12_click_meshes.rst", "gui_handles.md", "index.md", "infrastructure.md", "scene_handles.md", "server.md", "transforms.md"], "titles": ["Client Handles", "Frame Conventions", "Development", "Coordinate frames", "Images", "GUI basics", "GUI callbacks", "Camera poses", "Camera commands", "Meshes", "Record3D visualizer", "SMPL-X visualizer", "URDF visualizer", "RealSense visualizer", "COLMAP visualizer", "Click callback demonstration.", "GUI Handles", "viser", "Communication", "Scene Handles", "Viser Server", "Transforms"], "terms": {"A": [0, 2, 11, 13, 16, 19], "i": [0, 1, 2, 3, 6, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21], "creat": [0, 5, 8, 11, 16, 19, 20], "each": [0, 1, 8, 11, 16, 19, 21], "connect": [0, 2, 5, 7, 8, 13, 16, 17, 18, 19, 20], "server": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "can": [0, 2, 4, 5, 6, 7, 16, 17, 18, 19, 20, 21], "us": [0, 1, 2, 4, 5, 11, 13, 16, 17, 18, 19, 20, 21], "commun": [0, 2, 17, 20], "just": [0, 6, 11, 13], "one": [0, 2, 10, 15], "well": [0, 19, 21], "read": [0, 5, 7, 8, 11, 13, 16, 18, 19], "write": [0, 2, 5, 8, 16], "camera": [0, 13, 14, 18, 19, 20], "state": [0, 16, 17, 18, 19, 20], "class": [0, 11, 16, 18, 19, 20, 21], "viser": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21], "clienthandl": [0, 7, 8, 16, 19, 20], "handler": [0, 8, 18], "infra": [0, 17, 18], "messagehandl": [0, 18], "sourc": [0, 2, 16, 18, 19, 20, 21], "interact": [0, 8, 11, 16, 17, 18, 19, 20], "specif": [0, 16, 18, 19], "send": [0, 4, 5, 11, 14, 17, 18], "messag": [0, 18, 20], "individu": [0, 18], "inform": [0, 18], "paramet": [0, 1, 8, 11, 16, 18, 19, 20, 21], "add_camera_frustum": [0, 10, 14, 20], "name": [0, 3, 9, 10, 11, 12, 14, 15, 18, 20, 21], "str": [0, 7, 11, 12, 16, 18, 20], "fov": [0, 7, 10, 14, 20], "float": [0, 11, 12, 16, 19, 20, 21], "aspect": [0, 7, 10, 14, 20], "scale": [0, 10, 11, 14, 20], "0": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20], "3": [0, 1, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 20, 21], "color": [0, 5, 6, 10, 11, 13, 14, 15, 20], "rgbtupleorarrai": [0, 20], "20": [0, 8, 10, 20], "imag": [0, 10, 14, 19, 20], "option": [0, 6, 10, 13, 16, 18, 20], "numpi": [0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21], "ndarrai": [0, 13, 19, 20, 21], "none": [0, 5, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20], "format": [0, 2, 4, 13, 20], "typing_extens": [0, 6, 11, 20], "liter": [0, 11, 16, 20], "png": [0, 4, 20], "jpeg": [0, 4, 20], "jpeg_qual": [0, 20], "int": [0, 8, 10, 11, 13, 14, 15, 18, 20], "wxyz": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 19, 20, 21], "tupl": [0, 11, 13, 16, 20, 21], "onp": [0, 4, 5, 6, 8, 9, 10, 11, 12, 14, 15, 20], "1": [0, 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 20, 21], "posit": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20], "visibl": [0, 5, 7, 10, 11, 12, 16, 19, 20], "bool": [0, 11, 16, 18, 19, 20], "true": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 20], "add": [0, 1, 2, 3, 4, 5, 6, 10, 20], "frustum": [0, 10, 14, 19, 20], "scene": [0, 3, 5, 6, 12, 20], "visual": [0, 3, 4, 9, 15, 16, 17, 20], "like": [0, 1, 2, 17, 20], "all": [0, 1, 2, 3, 7, 10, 14, 16, 18, 19, 20], "python": [0, 1, 17, 18, 20], "api": [0, 1, 17, 20], "follow": [0, 2, 20, 21], "opencv": [0, 1, 20], "z": [0, 1, 6, 20, 21], "forward": [0, 1, 11, 20], "x": [0, 1, 6, 15, 20, 21], "right": [0, 1, 20], "y": [0, 1, 6, 15, 20, 21], "down": [0, 20], "convent": [0, 20, 21], "vertic": [0, 9, 11, 15, 20], "radian": [0, 20, 21], "width": [0, 14, 20], "over": [0, 20, 21], "height": [0, 14, 20], "return": [0, 11, 12, 13, 16, 18, 19, 20, 21], "type": [0, 2, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21], "camerafrustumhandl": [0, 14, 19, 20], "add_fram": [0, 3, 6, 8, 10, 11, 12, 14, 19, 20], "show_ax": [0, 6, 10, 11, 12, 20], "axes_length": [0, 6, 10, 14, 20], "5": [0, 3, 6, 8, 9, 11, 15, 20], "axes_radiu": [0, 10, 14, 20], "025": [0, 20], "framehandl": [0, 10, 14, 19, 20], "add_gui_button": [0, 5, 6, 10, 11, 12, 14, 20], "label": [0, 8, 19, 20], "disabl": [0, 5, 7, 10, 15, 16, 20], "fals": [0, 5, 10, 11, 12, 14, 20], "hint": [0, 15, 20, 21], "button": [0, 5, 6, 10, 11, 12, 16, 17, 20], "gui": [0, 7, 11, 12, 15, 18, 20], "The": [0, 1, 2, 15, 17, 18, 20], "valu": [0, 5, 6, 10, 11, 12, 14, 15, 16, 18, 20, 21], "thi": [0, 1, 2, 3, 7, 11, 14, 16, 18, 19, 20, 21], "input": [0, 5, 16, 17, 20], "set": [0, 1, 2, 3, 5, 8, 10, 11, 14, 16, 18, 19, 20, 21], "everi": [0, 20], "time": [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 20], "click": [0, 6, 8, 10, 16, 19, 20], "detect": [0, 7, 16, 18, 19, 20], "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 16, 18, 20], "manual": [0, 2, 20], "back": [0, 20], "guibuttonhandl": [0, 6, 16, 20], "add_gui_button_group": [0, 10, 20], "sequenc": [0, 20], "tliteralstr": [0, 20], "group": [0, 16, 20, 21], "add_gui_checkbox": [0, 5, 6, 10, 11, 20], "initial_valu": [0, 5, 6, 7, 10, 11, 12, 14, 15, 20], "checkbox": [0, 5, 17, 20], "guihandl": [0, 11, 12, 16, 20], "add_gui_dropdown": [0, 6, 20], "dropdown": [0, 6, 16, 17, 20], "add_gui_numb": [0, 5, 14, 15, 20], "intorfloat": [0, 20], "min": [0, 5, 6, 10, 11, 12, 14, 20], "max": [0, 5, 6, 10, 11, 12, 14, 20], "step": [0, 2, 5, 6, 10, 11, 12, 14, 20], "number": [0, 5, 20], "user": [0, 16, 20], "specifi": [0, 20], "bound": [0, 20], "precis": [0, 20, 21], "add_gui_rgb": [0, 5, 11, 20], "an": [0, 2, 5, 17, 18, 20, 21], "rgb": [0, 10, 13, 14, 20], "picker": [0, 20], "add_gui_rgba": [0, 20], "rgba": [0, 20], "add_gui_slid": [0, 5, 6, 10, 11, 12, 14, 20], "slider": [0, 5, 6, 10, 12, 17, 20], "initi": [0, 6, 20], "should": [0, 1, 2, 8, 12, 16, 18, 20, 21], "match": [0, 20], "add_gui_text": [0, 5, 7, 16, 20], "text": [0, 5, 8, 17, 20], "add_gui_vector2": [0, 5, 20], "length": [0, 20, 21], "2": [0, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 20, 21], "vector": [0, 5, 20, 21], "add_gui_vector3": [0, 5, 11, 20], "lock": [0, 5, 20], "add_imag": [0, 4, 20], "render_width": [0, 20], "render_height": [0, 20], "2d": [0, 19, 20, 21], "render": [0, 4, 19, 20], "3d": [0, 1, 4, 17, 19, 20, 21], "imagehandl": [0, 19, 20], "add_label": [0, 8, 20], "labelhandl": [0, 19, 20], "add_mesh": [0, 9, 20], "arg": [0, 14, 20], "kwarg": [0, 20], "deprec": [0, 20], "alia": [0, 20], "add_mesh_simpl": [0, 11, 20], "meshhandl": [0, 19, 20], "face": [0, 9, 11, 20], "90": [0, 11, 20], "200": [0, 11, 20], "255": [0, 5, 11, 20], "wirefram": [0, 11, 20], "side": [0, 2, 20], "front": [0, 20], "doubl": [0, 20], "mesh": [0, 11, 12, 15, 19, 20], "add_mesh_trimesh": [0, 12, 15, 20], "trimesh": [0, 9, 12, 15, 20], "add_point_cloud": [0, 5, 6, 10, 13, 14, 20], "point": [0, 1, 2, 5, 6, 10, 13, 14, 19, 20, 21], "point_siz": [0, 10, 13, 14, 20], "cloud": [0, 5, 6, 10, 13, 14, 19, 20], "pointcloudhandl": [0, 19, 20], "add_transform_control": [0, 11, 20], "line_width": [0, 11, 20], "fix": [0, 20], "auto_transform": [0, 20], "active_ax": [0, 20], "disable_ax": [0, 11, 20], "disable_slid": [0, 11, 20], "disable_rot": [0, 11, 20], "translation_limit": [0, 20], "1000": [0, 6, 18, 20], "rotation_limit": [0, 20], "depth_test": [0, 11, 20], "opac": [0, 20], "transform": [0, 1, 8, 9, 10, 11, 12, 14, 19, 20], "gizmo": [0, 11, 17, 19, 20], "transformcontrolshandl": [0, 11, 19, 20], "atom": [0, 8, 10, 20], "context": [0, 13, 20], "where": [0, 1, 16, 20], "outgo": [0, 20], "ar": [0, 1, 2, 3, 5, 6, 8, 11, 15, 16, 18, 20, 21], "appli": [0, 20, 21], "No": [0, 20], "incom": [0, 18, 20], "updat": [0, 6, 7, 10, 11, 16, 20], "process": [0, 13, 20], "help": [0, 20], "thing": [0, 20], "anim": [0, 20], "when": [0, 2, 6, 8, 10, 11, 13, 16, 18, 19, 20], "want": [0, 2, 18, 20], "orient": [0, 1, 8, 11, 19, 20], "happen": [0, 16, 20], "synchron": [0, 2, 16, 17, 18, 19, 20], "gener": [0, 5, 11, 16, 18, 20, 21], "client_id": [0, 7, 18], "configure_them": [0, 14, 20], "titlebar_cont": [0, 20], "theme": [0, 20], "titlebarconfig": [0, 20], "fixed_sidebar": [0, 20], "configur": [0, 13, 17, 20], "end": [0, 1, 20], "": [0, 2, 6, 11, 20, 21], "appear": [0, 20], "gui_fold": [0, 5, 6, 10, 11, 12, 15, 20], "place": [0, 2, 10, 20], "element": [0, 5, 6, 11, 14, 16, 18, 20, 21], "particular": [0, 5, 18, 20], "folder": [0, 20], "also": [0, 6, 8, 13, 17, 20], "nest": [0, 20], "reset_scen": [0, 14, 20], "reset": [0, 6, 11, 12, 14, 20], "set_background_imag": [0, 4, 20], "background": [0, 4, 20], "nerf": [0, 4, 20], "camerahandl": [0, 7], "properti": [0, 16, 19], "canva": 0, "divid": 0, "Not": [0, 19], "assign": [0, 1, 16, 19], "correspond": [0, 1, 2, 8, 11], "field": [0, 1], "view": [0, 11, 13, 17], "automat": [0, 5, 8, 16, 19], "look_at": [0, 8], "look": 0, "float64": 0, "on_upd": [0, 6, 7, 10, 11, 12, 14, 16, 19], "callback": [0, 18, 19, 20], "callabl": [0, 16, 18, 19, 20], "attach": [0, 6, 16, 18, 19, 20], "run": [0, 2, 7, 11, 18, 20], "new": [0, 7, 15, 18, 20], "receiv": [0, 18], "t": [0, 1, 10, 11, 13, 14, 16, 18, 19], "p_world": 0, "r": [0, 1, 11, 13, 19], "p_camera": 0, "up_direct": [0, 14], "maintain": 0, "which": [0, 1, 2, 11, 20, 21], "mean": 0, "often": 0, "affect": 0, "up": [0, 1, 2, 14], "direct": [0, 14], "update_timestamp": [0, 7, 16, 19], "In": [1, 2, 3, 8, 21], "note": [1, 2, 13, 21], "describ": 1, "object": [1, 18, 19, 20, 21], "instanti": [1, 16, 20], "node": [1, 3, 5, 19], "structur": [1, 11], "determin": 1, "If": 1, "call": [1, 6, 16, 20], "base_link": 1, "shoulder": 1, "wrist": 1, "signifi": 1, "three": 1, "child": [1, 12], "given": 1, "both": [1, 8, 18], "its": 1, "children": 1, "move": [1, 8, 19], "Its": 1, "parent": [1, 4, 9, 10, 11, 12, 14], "unaffect": 1, "defin": [1, 2, 3, 18], "pair": [1, 13], "unit": [1, 2], "quaternion": [1, 19, 21], "term": [1, 21], "alwai": 1, "4d": 1, "translat": [1, 8, 14, 18, 21], "These": [1, 3, 8, 18, 19], "from": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21], "local": [1, 16, 19], "p_": 1, "mathrm": 1, "begin": 1, "bmatrix": 1, "mid": 1, "form": 1, "so": [1, 11, 21], "matrix": [1, 21], "space": [1, 21], "upward": 1, "expos": 1, "colmap": 1, "confusingli": 1, "differ": [1, 21], "nerfstudio": [1, 17], "adopt": 1, "opengl": 1, "blender": 1, "convers": 1, "between": [1, 2, 15, 16, 17, 19, 21], "two": [1, 2, 13], "simpl": [1, 15], "180": 1, "degre": 1, "rotat": [1, 8, 14, 21], "around": [1, 8, 20], "axi": [1, 6, 11, 21], "outlin": 2, "current": [2, 7, 10, 13, 18], "practic": 2, "tool": [2, 17], "workflow": 2, "assum": 2, "repositori": [2, 17], "clone": [2, 17], "There": 2, "lot": [2, 11], "improv": 2, "made": [2, 11], "here": [2, 6], "pr": 2, "welcom": 2, "recommend": 2, "edit": [2, 5], "ideal": 2, "virtual": 2, "environ": 2, "eg": 2, "via": [2, 16, 17, 19, 21], "conda": 2, "packag": [2, 11, 17], "cd": [2, 17], "pip": [2, 17], "e": [2, 17], "exampl": [2, 3, 4, 5, 7, 12, 16, 18, 19, 21], "depend": 2, "after": [2, 17, 20], "ani": [2, 6, 12, 18], "script": [2, 11, 17], "runnabl": 2, "few": 2, "them": [2, 7, 15], "requir": [2, 12, 13, 18], "download": [2, 11], "asset": [2, 4, 9, 10, 12, 14], "done": [2, 13], "lint": 2, "check": 2, "first": [2, 11, 21], "dev": 2, "pre": [2, 5], "commit": 2, "It": [2, 11, 17], "would": 2, "hard": [2, 11], "test": 2, "reli": 2, "static": [2, 16, 21], "robust": 2, "To": [2, 9, 10, 14, 18], "your": 2, "code": 2, "you": [2, 17, 18], "frontend": 2, "backend": [2, 17], "share": [2, 17, 18], "definit": [2, 18, 21], "On": 2, "dataclass": [2, 11, 17, 18, 21], "_messag": 2, "py": [2, 17], "typescript": [2, 17, 18], "interfac": [2, 17, 18, 20, 21], "src": 2, "websocketmessag": 2, "tsx": 2, "ones": 2, "modifi": 2, "instead": 2, "chang": [2, 5, 10, 11], "sync_message_def": 2, "For": [2, 8, 14, 16, 18], "start": [2, 13, 18], "launch": [2, 18, 20], "relev": 2, "good": 2, "05_camera_command": 2, "url": [2, 17], "print": [2, 7, 9, 10, 14, 17, 18], "http": [2, 11, 12, 17, 18], "localhost": [2, 17], "8080": [2, 17, 20], "open": 2, "built": 2, "version": 2, "react": 2, "websocket": [2, 17, 18], "w": [2, 14, 21], "applic": [2, 17, 18], "ignor": [2, 11, 13], "reflect": [2, 5], "make": [2, 11], "file": 2, "more": [2, 11, 21], "nodej": 2, "yarn": 2, "simpli": 2, "directori": [2, 14], "web": [2, 17, 18], "browser": [2, 17], "address": 2, "typic": [2, 21], "need": [2, 11], "tab": 2, "build": [2, 17, 18], "finish": 2, "wrap": 2, "b": [2, 11, 20], "viewer": [2, 3, 4, 17], "what": [2, 18], "allow": [2, 16], "without": 2, "git": [2, 17], "control": [2, 6, 10, 11, 19], "unid": 2, "suggest": 2, "how": [2, 7], "prettier": 2, "npx": 2, "basic": 3, "hierarch": 3, "tree": 3, "branch": 3, "rel": 3, "import": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], "random": [3, 4, 5, 6, 8, 11, 14, 15], "viserserv": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20], "while": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "some": [3, 5, 10], "leaf": 3, "sleep": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "remov": [3, 13, 16, 19], "backgrond": 4, "displai": [4, 15], "behind": 4, "textur": [4, 13], "pathlib": [4, 9, 10, 11, 12, 14, 18], "path": [4, 9, 10, 11, 12, 14, 18], "imageio": [4, 14], "v3": [4, 14], "iio": [4, 14], "imread": [4, 14], "__file__": [4, 9, 10, 14], "cal_logo": 4, "main": [4, 5, 6, 10, 11, 12, 13, 14, 15], "img": [4, 14], "4": [4, 5, 8, 11, 15, 21], "nois": 4, "randint": [4, 6], "256": [4, 6], "size": [4, 5, 6, 8, 11, 14], "400": 4, "dtype": [4, 5, 11, 13], "uint8": [4, 5, 13], "1e": [4, 12, 14], "def": [5, 6, 7, 8, 10, 11, 12, 13, 14, 15], "common": 5, "onli": [5, 18], "gui_count": 5, "counter": [5, 15], "gui_slid": 5, "100": [5, 14], "gui_vector2": 5, "gui_vector3": 5, "25": 5, "toggl": [5, 10, 18, 19], "gui_checkbox_hid": 5, "hide": [5, 10, 16], "gui_text": 5, "hello": 5, "world": [5, 20], "gui_button": 5, "gui_checkbox_dis": 5, "gui_rgb": [5, 11], "point_posit": 5, "uniform": [5, 8], "low": 5, "high": [5, 20], "5000": 5, "color_coeff": 5, "shape": [5, 9, 10, 11, 13, 14, 15, 21], "client": [5, 7, 8, 14, 16, 17, 18, 19, 20], "point_cloud": [5, 6, 10, 13], "arrai": [5, 8, 9, 10, 11, 12, 13, 14, 21], "float32": [5, 11, 13], "tile": 5, "reshap": [5, 13], "astyp": [5, 13], "01": [5, 8, 10, 11], "__name__": [5, 6, 10, 11, 12, 13, 14, 15], "__main__": [5, 6, 10, 11, 12, 13, 14, 15], "asynchron": [6, 17, 18], "usag": 6, "soon": 6, "get": [6, 7, 9, 10, 11, 13, 14, 16, 18, 21], "assert_nev": 6, "gui_show": 6, "show": [6, 7, 16], "frame": [6, 8, 9, 10, 11, 12, 13, 14, 19, 20, 21], "gui_axi": 6, "gui_include_z": 6, "_": [6, 7, 8, 10, 11, 12, 13, 14, 15], "els": [6, 11, 12, 15], "gui_loc": 6, "locat": 6, "05": [6, 10, 11, 14], "gui_num_point": 6, "200_000": 6, "10_000": 6, "gui_reset_scen": 6, "draw_fram": 6, "po": 6, "elif": [6, 15], "draw_point": 6, "num_point": 6, "normal": [6, 8, 11, 21], "whenev": [6, 7, 11], "item": [6, 7, 12], "lambda": 6, "on_click": [6, 8, 10, 11, 12, 14, 15, 16, 19], "final": 6, "let": [6, 16], "loop": [6, 10, 11], "infinit": 6, "world_ax": [7, 20], "on_client_connect": [7, 8, 18, 20], "f": [7, 8, 9, 10, 11, 14, 15], "id": [7, 14, 20], "gui_info": 7, "get_client": [7, 14, 20], "kei": [7, 18], "twxyz": 7, "tposit": 7, "tfov": 7, "taspect": 7, "tlast": 7, "addit": 8, "support": [8, 12, 17, 19], "sync": [8, 11], "tf": [8, 9, 10, 11, 12, 14], "num_fram": [8, 10], "rng": 8, "default_rng": 8, "make_fram": 8, "sampl": [8, 11], "linalg": [8, 11], "norm": [8, 11], "coordin": [8, 11, 13, 15, 19, 21], "frame_": [8, 14], "t_world_curr": 8, "se3": [8, 14, 21], "from_rotation_and_transl": [8, 14, 21], "so3": [8, 9, 10, 11, 12, 14, 21], "t_world_target": 8, "from_transl": [8, 21], "t_current_target": 8, "invers": [8, 14, 21], "j": [8, 11, 15], "rang": [8, 10, 11, 13, 15], "50": [8, 10], "t_world_set": 8, "exp": [8, 9, 10, 11, 21], "log": [8, 11, 21], "49": 8, "bit": 8, "mous": 8, "orbit": 8, "origin": 8, "demo": [9, 10, 14], "data": [9, 10, 14], "see": [9, 10, 14], "download_dragon_mesh": 9, "sh": [9, 10, 14], "load_mesh": 9, "dragon": 9, "obj": 9, "assert": [9, 12, 13, 15], "isinst": [9, 12], "load": [9, 10, 12, 14], "pi": [9, 10, 11, 12], "10": [9, 10, 11, 12, 13, 15], "pars": 10, "stream": [10, 13], "captur": 10, "download_record3d_d": 10, "list": [10, 11, 12, 18], "tyro": [10, 11, 12, 14], "tqdm": [10, 13, 14], "auto": [10, 13, 14], "extra": [10, 14], "data_path": 10, "record3d_d": 10, "downsample_factor": [10, 14], "max_fram": 10, "loader": 10, "record3dload": 10, "playback": 10, "ui": 10, "gui_timestep": 10, "timestep": 10, "gui_next_fram": 10, "next": 10, "gui_prev_fram": 10, "prev": 10, "gui_plai": 10, "plai": 10, "gui_framer": 10, "fp": [10, 13], "60": 10, "gui_framerate_opt": 10, "30": [10, 13], "re": [10, 11, 18], "framer": 10, "prev_timestep": 10, "nonloc": [10, 14], "current_timestep": 10, "frame_nod": 10, "get_fram": 10, "get_point_cloud": 10, "base": [10, 15, 18, 19, 21], "append": [10, 11, 12], "arctan2": [10, 14], "k": 10, "15": [10, 14], "from_matrix": [10, 11, 12, 21], "t_world_camera": [10, 14], "ax": [10, 20], "005": [10, 14], "enumer": 10, "cli": [10, 11, 12, 14], "instal": [11, 17], "smplx": 11, "model": [11, 14], "github": [11, 12, 17], "com": [11, 12, 17], "vchouta": 11, "joint_nam": [11, 12], "lb": 11, "torch": 11, "model_path": 11, "model_typ": 11, "smplh": 11, "mano": 11, "gender": 11, "male": 11, "femal": 11, "neutral": 11, "num_beta": 11, "num_expression_coeff": 11, "ext": 11, "npz": 11, "pkl": 11, "reorient": 11, "zero": 11, "ll": 11, "keep": [11, 18], "joint": [11, 12], "deform": 11, "could": [11, 13, 14], "effici": 11, "gui_el": 11, "make_gui_el": 11, "num_body_joint": 11, "do": 11, "noth": 11, "continu": [11, 14], "output": [11, 14, 21], "beta": 11, "from_numpi": 11, "gui_beta": 11, "express": 11, "return_vert": 11, "body_pos": 11, "gui_joint": [11, 12], "global_ori": 11, "return_full_pos": 11, "joint_posit": 11, "squeez": 11, "detach": 11, "cpu": 11, "joint_transform": 11, "joint_transforms_and_parents_from_smpl": 11, "gui_wirefram": 11, "per": 11, "joint_": 11, "guielement": 11, "contain": [11, 21], "handl": [11, 15, 18, 20], "flag": 11, "flip": 11, "out": 11, "gui_show_control": 11, "enabl": 11, "gui_reset_shap": 11, "gui_random_shap": 11, "loc": 11, "angl": [11, 21], "gui_reset_joint": 11, "gui_random_joint": 11, "sync_transform_control": 11, "uniformli": 11, "directli": 11, "convert": [11, 18], "quat": 11, "xyzw": [11, 21], "transform_control": 11, "curry_callback": 11, "axisangl": 11, "zip": 11, "hack": 11, "intern": [11, 21], "v_shape": 11, "v_templat": 11, "blend_shap": 11, "shapedir": 11, "vertices2joint": 11, "j_regressor": 11, "rot_mat": 11, "batch_rodrigu": 11, "full_pos": 11, "j_pose": 11, "batch_rigid_transform": 11, "descript": 11, "__doc__": 11, "yourdfpi": 12, "work": 12, "orebrounivers": 12, "yumi": 12, "blob": 12, "master": 12, "yumi_descript": 12, "ankurhanda": 12, "robot": [12, 21], "functool": 12, "partial": 12, "urdf_path": 12, "filename_handl": 12, "filename_handler_mag": 12, "dir": 12, "frame_name_with_par": 12, "frame_nam": 12, "graph": 12, "base_fram": 12, "join": 12, "geometri": 12, "t_parent_child": 12, "get_transform": 12, "g": 12, "update_fram": 12, "update_cfg": 12, "joint_map": 12, "limit": 12, "lower": 12, "upper": 12, "d": 13, "pyrealsense2": 13, "contextlib": 13, "np": 13, "npt": 13, "contextmanag": 13, "realsense_pipelin": 13, "manag": [13, 17], "yield": 13, "pipelin": 13, "depth": 13, "config": 13, "pipeline_wrapp": 13, "resolv": 13, "enable_stream": 13, "z16": 13, "rgb8": 13, "close": 13, "point_cloud_arrays_from_fram": 13, "depth_fram": 13, "color_fram": 13, "map": [13, 20], "n": [13, 21], "block": 13, "tune": 13, "pointcloud": 13, "decim": 13, "decimation_filt": 13, "set_opt": 13, "filter_magnitud": 13, "downsampl": [13, 14], "calcul": 13, "intrins": 13, "map_to": 13, "texture_uv": 13, "asanyarrai": 13, "get_texture_coordin": 13, "color_imag": 13, "get_data": 13, "color_h": 13, "color_w": 13, "aren": 13, "our": [13, 16, 21], "clamp": 13, "avail": 13, "pixel": 13, "clip": 13, "get_vertic": 13, "int32": 13, "viser_serv": 13, "10000000": 13, "wait": 13, "coher": 13, "wait_for_fram": 13, "get_depth_fram": 13, "get_color_fram": 13, "comput": [13, 21], "spars": 14, "reconstruct": 14, "download_colmap_garden": 14, "read_cameras_binari": 14, "read_images_binari": 14, "read_points3d_binari": 14, "colmap_path": 14, "colmap_garden": 14, "images_path": 14, "images_8": 14, "factor": 14, "canvas_background_color": 14, "230": 14, "info": 14, "bin": 14, "points3d": 14, "gui_reset_up": 14, "gui_point": 14, "len": 14, "50_000": 14, "gui_fram": 14, "gui_point_s": 14, "visualize_colmap": 14, "optim": 14, "ton": 14, "p_id": 14, "xyz": [14, 21], "points_select": 14, "choic": 14, "replac": [14, 15], "pcd": 14, "interpret": 14, "img_id": 14, "im": 14, "shuffl": 14, "sort": 14, "attach_callback": 14, "cam": 14, "camera_id": 14, "skip": 14, "don": [14, 18], "exist": 14, "image_filenam": 14, "qvec": 14, "tvec": 14, "pinhol": 14, "param": 14, "fx": 14, "fy": 14, "cx": 14, "cy": 14, "expect": 14, "got": 14, "h": 14, "need_upd": 14, "select": 15, "index": 15, "last": [15, 16, 21], "matplotlib": 15, "creation": 15, "grid_shap": 15, "x_valu": 15, "y_valu": 15, "add_swappable_mesh": 15, "swap": 15, "grai": 15, "box": 15, "sphere": 15, "chosen": 15, "grid": 15, "colormap": 15, "tab20": 15, "create_mesh": 15, "icospher": 15, "subdivis": 15, "radiu": 15, "rand": 15, "vertex_color": 15, "sphere_": 15, "old": 15, "becaus": 15, "same": [15, 18, 21], "ad": [16, 18, 19], "u": 16, "disallow": 16, "func": [16, 19], "tguihandl": 16, "function": [16, 20], "thread": [16, 20], "perman": 16, "wa": 16, "temporarili": 16, "press": 16, "guibuttongrouphandl": 16, "cannot": 16, "guidropdownhandl": 16, "style": 16, "project": [16, 17, 21], "care": 16, "about": 16, "consist": 16, "stringtyp": 16, "associ": 16, "infer": 16, "possibl": 16, "most": 16, "flexibl": 16, "declar": 16, "_guihandl": 16, "ellipsi": 16, "librari": 17, "inspir": 17, "pangolin": 17, "rviz": 17, "meshcat": 17, "As": 17, "standalon": 17, "featur": 17, "includ": [17, 20], "easi": 17, "remot": 17, "machin": 17, "primit": 17, "multipl": 17, "panel": 17, "custom": 17, "port": [17, 18, 20, 21], "infrastructur": [17, 18], "persist": [17, 18], "logic": 17, "serial": [17, 18], "4_gui": 17, "navig": 17, "default": [17, 18, 20, 21], "provid": [18, 20], "implement": [18, 21], "abstract": [18, 21], "regist": 18, "event": [18, 19], "broadcast": 18, "under": 18, "hood": 18, "won": 18, "unless": 18, "scratch": 18, "clientconnect": 18, "singl": 18, "register_handl": 18, "message_cl": 18, "tmessag": 18, "clientid": 18, "abc": [18, 21], "classmethod": [18, 21], "deseri": 18, "byte": 18, "excluded_self_cli": 18, "other": [18, 21], "get_subclass": 18, "recurs": 18, "subclass": 18, "redundancy_kei": 18, "uniqu": 18, "redund": 18, "latest": 18, "mix": 18, "host": [18, 20], "message_class": 18, "http_server_root": 18, "verbos": 18, "By": 18, "retriev": 18, "bind": 18, "have": 18, "argument": 18, "futur": 18, "root": 18, "push": 18, "onto": 18, "queue": 18, "sent": [18, 20], "thei": 18, "buffer": 18, "previous": 18, "cull": 18, "cb": [18, 20], "newli": [18, 20], "on_client_disconnect": [18, 20], "disconnect": [18, 20], "generate_typescript_interfac": 18, "scenenodehandl": 19, "equival": 19, "p_parent": 19, "p_local": 19, "represent": [19, 21], "tscenenodehandl": 19, "todo": 19, "slow": 19, "whether": 19, "doe": 19, "core": 20, "design": 20, "level": 20, "primari": 20, "command": 20, "add_gui_": 20, "copi": 20, "dict": 20, "manipul": 20, "worldax": 20, "hidden": 20, "lie": 21, "rigid": 21, "jaxli": 21, "se": 21, "parameter": 21, "matrixliegroup": 21, "adjoint": 21, "tangent": 21, "grouptyp": 21, "omega": 21, "adj_t": 21, "twist": 21, "wrench": 21, "jacobian": 21, "across": 21, "refer": 21, "tangent_dim": 21, "target": 21, "action": 21, "as_matrix": 21, "homogen": 21, "expm": 21, "wedg": 21, "take": 21, "exponenti": 21, "member": 21, "representaiton": 21, "ident": 21, "vee": 21, "logm": 21, "matrix_dim": 21, "dimens": 21, "squar": 21, "multipli": 21, "compos": 21, "anoth": 21, "self": 21, "underli": 21, "parameters_dim": 21, "space_dim": 21, "se2": 21, "sebas": 21, "so2": 21, "special": 21, "euclidean": 21, "proper": 21, "co": 21, "sin": 21, "vx": 21, "vy": 21, "from_rot": 21, "containedsotyp": 21, "segrouptyp": 21, "construct": 21, "from_xy_theta": 21, "scalar": 21, "theta": 21, "standard": 21, "pose": 21, "integr": 21, "unit_complex_xi": 21, "qw": 21, "qx": 21, "qy": 21, "qz": 21, "vz": 21, "omega_x": 21, "omega_i": 21, "omega_z": 21, "wxyz_xyz": 21, "dimension": 21, "sobas": 21, "orthogon": 21, "as_radian": 21, "from_radian": 21, "unit_complex": 21, "as_quaternion_xyzw": 21, "grab": 21, "as_rpy_radian": 21, "roll": 21, "pitch": 21, "yaw": 21, "zyx": 21, "mobil": 21, "euler": 21, "rollpitchyaw": 21, "compute_pitch_radian": 21, "compute_roll_radian": 21, "compute_yaw_radian": 21, "from_quaternion_xyzw": 21, "constructor": 21, "from_rpy_radian": 21, "second": 21, "from_x_radian": 21, "from_y_radian": 21, "from_z_radian": 21}, "objects": {"viser": [[19, 0, 1, "", "CameraFrustumHandle"], [0, 0, 1, "", "CameraHandle"], [0, 0, 1, "", "ClientHandle"], [19, 0, 1, "", "FrameHandle"], [16, 0, 1, "", "GuiButtonGroupHandle"], [16, 0, 1, "", "GuiButtonHandle"], [16, 0, 1, "", "GuiDropdownHandle"], [16, 0, 1, "", "GuiHandle"], [19, 0, 1, "", "ImageHandle"], [19, 0, 1, "", "LabelHandle"], [19, 0, 1, "", "MeshHandle"], [19, 0, 1, "", "PointCloudHandle"], [19, 0, 1, "", "SceneNodeHandle"], [19, 0, 1, "", "TransformControlsHandle"], [20, 0, 1, "", "ViserServer"], [18, 4, 0, "-", "infra"], [21, 4, 0, "-", "transforms"]], "viser.CameraFrustumHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.CameraHandle": [[0, 2, 1, "", "aspect"], [0, 2, 1, "", "client"], [0, 2, 1, "", "fov"], [0, 2, 1, "", "look_at"], [0, 1, 1, "", "on_update"], [0, 2, 1, "", "position"], [0, 2, 1, "", "up_direction"], [0, 2, 1, "", "update_timestamp"], [0, 2, 1, "", "wxyz"]], "viser.ClientHandle": [[0, 1, 1, "", "add_camera_frustum"], [0, 1, 1, "", "add_frame"], [0, 1, 1, "", "add_gui_button"], [0, 1, 1, "", "add_gui_button_group"], [0, 1, 1, "", "add_gui_checkbox"], [0, 1, 1, "", "add_gui_dropdown"], [0, 1, 1, "", "add_gui_number"], [0, 1, 1, "", "add_gui_rgb"], [0, 1, 1, "", "add_gui_rgba"], [0, 1, 1, "", "add_gui_slider"], [0, 1, 1, "", "add_gui_text"], [0, 1, 1, "", "add_gui_vector2"], [0, 1, 1, "", "add_gui_vector3"], [0, 1, 1, "", "add_image"], [0, 1, 1, "", "add_label"], [0, 1, 1, "", "add_mesh"], [0, 1, 1, "", "add_mesh_simple"], [0, 1, 1, "", "add_mesh_trimesh"], [0, 1, 1, "", "add_point_cloud"], [0, 1, 1, "", "add_transform_controls"], [0, 1, 1, "", "atomic"], [0, 3, 1, "", "camera"], [0, 3, 1, "", "client_id"], [0, 1, 1, "", "configure_theme"], [0, 1, 1, "", "gui_folder"], [0, 1, 1, "", "reset_scene"], [0, 1, 1, "", "set_background_image"]], "viser.FrameHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.GuiButtonGroupHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_click"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.GuiButtonHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_click"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.GuiDropdownHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_update"], [16, 2, 1, "", "options"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.GuiHandle": [[16, 2, 1, "", "disabled"], [16, 1, 1, "", "on_update"], [16, 1, 1, "", "remove"], [16, 2, 1, "", "update_timestamp"], [16, 2, 1, "", "value"], [16, 2, 1, "", "visible"]], "viser.ImageHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.LabelHandle": [[19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "wxyz"]], "viser.MeshHandle": [[19, 1, 1, "", "on_click"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.PointCloudHandle": [[19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.SceneNodeHandle": [[19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "wxyz"]], "viser.TransformControlsHandle": [[19, 1, 1, "", "on_click"], [19, 1, 1, "", "on_update"], [19, 2, 1, "", "position"], [19, 1, 1, "", "remove"], [19, 2, 1, "", "update_timestamp"], [19, 2, 1, "", "visible"], [19, 2, 1, "", "wxyz"]], "viser.ViserServer": [[20, 1, 1, "", "add_camera_frustum"], [20, 1, 1, "", "add_frame"], [20, 1, 1, "", "add_gui_button"], [20, 1, 1, "", "add_gui_button_group"], [20, 1, 1, "", "add_gui_checkbox"], [20, 1, 1, "", "add_gui_dropdown"], [20, 1, 1, "", "add_gui_number"], [20, 1, 1, "", "add_gui_rgb"], [20, 1, 1, "", "add_gui_rgba"], [20, 1, 1, "", "add_gui_slider"], [20, 1, 1, "", "add_gui_text"], [20, 1, 1, "", "add_gui_vector2"], [20, 1, 1, "", "add_gui_vector3"], [20, 1, 1, "", "add_image"], [20, 1, 1, "", "add_label"], [20, 1, 1, "", "add_mesh"], [20, 1, 1, "", "add_mesh_simple"], [20, 1, 1, "", "add_mesh_trimesh"], [20, 1, 1, "", "add_point_cloud"], [20, 1, 1, "", "add_transform_controls"], [20, 1, 1, "", "atomic"], [20, 1, 1, "", "configure_theme"], [20, 1, 1, "", "get_clients"], [20, 1, 1, "", "gui_folder"], [20, 1, 1, "", "on_client_connect"], [20, 1, 1, "", "on_client_disconnect"], [20, 1, 1, "", "reset_scene"], [20, 1, 1, "", "set_background_image"], [20, 3, 1, "", "world_axes"]], "viser.infra": [[18, 0, 1, "", "ClientConnection"], [18, 5, 1, "", "ClientId"], [18, 0, 1, "", "Message"], [18, 0, 1, "", "MessageHandler"], [18, 0, 1, "", "Server"], [18, 6, 1, "", "generate_typescript_interfaces"]], "viser.infra.ClientConnection": [[18, 3, 1, "", "client_id"], [18, 1, 1, "", "register_handler"], [18, 1, 1, "", "send"]], "viser.infra.Message": [[18, 1, 1, "", "deserialize"], [18, 3, 1, "", "excluded_self_client"], [18, 1, 1, "", "get_subclasses"], [18, 1, 1, "", "redundancy_key"], [18, 1, 1, "", "serialize"]], "viser.infra.MessageHandler": [[18, 1, 1, "", "register_handler"]], "viser.infra.Server": [[18, 1, 1, "", "broadcast"], [18, 1, 1, "", "on_client_connect"], [18, 1, 1, "", "on_client_disconnect"], [18, 1, 1, "", "register_handler"], [18, 1, 1, "", "start"]], "viser.transforms": [[21, 0, 1, "", "MatrixLieGroup"], [21, 0, 1, "", "SE2"], [21, 0, 1, "", "SE3"], [21, 0, 1, "", "SEBase"], [21, 0, 1, "", "SO2"], [21, 0, 1, "", "SO3"], [21, 0, 1, "", "SOBase"]], "viser.transforms.MatrixLieGroup": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"]], "viser.transforms.SE2": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_rotation"], [21, 1, 1, "", "from_rotation_and_translation"], [21, 1, 1, "", "from_translation"], [21, 1, 1, "", "from_xy_theta"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 1, 1, "", "rotation"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 1, 1, "", "translation"], [21, 3, 1, "", "unit_complex_xy"]], "viser.transforms.SE3": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_rotation"], [21, 1, 1, "", "from_rotation_and_translation"], [21, 1, 1, "", "from_translation"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 1, 1, "", "rotation"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 1, 1, "", "translation"], [21, 3, 1, "", "wxyz_xyz"]], "viser.transforms.SEBase": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_rotation"], [21, 1, 1, "", "from_rotation_and_translation"], [21, 1, 1, "", "from_translation"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 1, 1, "", "rotation"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 1, 1, "", "translation"]], "viser.transforms.SO2": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "as_radians"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_radians"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 3, 1, "", "unit_complex"]], "viser.transforms.SO3": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "as_quaternion_xyzw"], [21, 1, 1, "", "as_rpy_radians"], [21, 1, 1, "", "compute_pitch_radians"], [21, 1, 1, "", "compute_roll_radians"], [21, 1, 1, "", "compute_yaw_radians"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "from_quaternion_xyzw"], [21, 1, 1, "", "from_rpy_radians"], [21, 1, 1, "", "from_x_radians"], [21, 1, 1, "", "from_y_radians"], [21, 1, 1, "", "from_z_radians"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"], [21, 3, 1, "", "wxyz"]], "viser.transforms.SOBase": [[21, 1, 1, "", "adjoint"], [21, 1, 1, "", "apply"], [21, 1, 1, "", "as_matrix"], [21, 1, 1, "", "exp"], [21, 1, 1, "", "from_matrix"], [21, 1, 1, "", "identity"], [21, 1, 1, "", "inverse"], [21, 1, 1, "", "log"], [21, 3, 1, "", "matrix_dim"], [21, 1, 1, "", "multiply"], [21, 1, 1, "", "normalize"], [21, 1, 1, "", "parameters"], [21, 3, 1, "", "parameters_dim"], [21, 3, 1, "", "space_dim"], [21, 3, 1, "", "tangent_dim"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:attribute", "4": "py:module", "5": "py:data", "6": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "module", "Python module"], "5": ["py", "data", "Python data"], "6": ["py", "function", "Python function"]}, "titleterms": {"client": [0, 2], "handl": [0, 16, 19], "frame": [1, 3], "convent": 1, "scene": [1, 19], "tree": 1, "name": 1, "pose": [1, 7], "world": 1, "coordin": [1, 3], "camera": [1, 7, 8], "develop": 2, "python": 2, "instal": 2, "messag": 2, "updat": 2, "imag": 4, "gui": [5, 6, 16], "basic": 5, "callback": [6, 15], "command": 8, "mesh": 9, "record3d": 10, "visual": [10, 11, 12, 13, 14], "smpl": 11, "x": 11, "urdf": 12, "realsens": 13, "colmap": 14, "click": 15, "demonstr": 15, "viser": [17, 20], "run": 17, "exampl": 17, "commun": 18, "server": 20, "transform": 21}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Client Handles": [[0, "client-handles"]], "Frame Conventions": [[1, "frame-conventions"]], "Scene tree naming": [[1, "scene-tree-naming"]], "Poses": [[1, "poses"]], "World coordinates": [[1, "world-coordinates"]], "Cameras": [[1, "cameras"]], "Development": [[2, "development"]], "Python install": [[2, "python-install"]], "Message updates": [[2, "message-updates"]], "Client development": [[2, "client-development"]], "Coordinate frames": [[3, "coordinate-frames"]], "Images": [[4, "images"]], "GUI basics": [[5, "gui-basics"]], "GUI callbacks": [[6, "gui-callbacks"]], "Camera poses": [[7, "camera-poses"]], "Camera commands": [[8, "camera-commands"]], "Meshes": [[9, "meshes"]], "Record3D visualizer": [[10, "record3d-visualizer"]], "SMPL-X visualizer": [[11, "smpl-x-visualizer"]], "URDF visualizer": [[12, "urdf-visualizer"]], "RealSense visualizer": [[13, "realsense-visualizer"]], "COLMAP visualizer": [[14, "colmap-visualizer"]], "Click callback demonstration.": [[15, "click-callback-demonstration"]], "GUI Handles": [[16, "gui-handles"]], "viser": [[17, "viser"]], "Running examples": [[17, "running-examples"]], "Communication": [[18, "communication"]], "Scene Handles": [[19, "scene-handles"]], "Viser Server": [[20, "viser-server"]], "Transforms": [[21, "transforms"]]}, "indexentries": {"camerahandle (class in viser)": [[0, "viser.CameraHandle"]], "clienthandle (class in viser)": [[0, "viser.ClientHandle"]], "add_camera_frustum() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_camera_frustum"]], "add_frame() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_frame"]], "add_gui_button() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_button"]], "add_gui_button_group() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_button_group"]], "add_gui_checkbox() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_checkbox"]], "add_gui_dropdown() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_dropdown"]], "add_gui_number() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_number"]], "add_gui_rgb() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_rgb"]], "add_gui_rgba() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_rgba"]], "add_gui_slider() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_slider"]], "add_gui_text() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_text"]], "add_gui_vector2() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_vector2"]], "add_gui_vector3() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_gui_vector3"]], "add_image() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_image"]], "add_label() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_label"]], "add_mesh() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_mesh"]], "add_mesh_simple() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_mesh_simple"]], "add_mesh_trimesh() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_mesh_trimesh"]], "add_point_cloud() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_point_cloud"]], "add_transform_controls() (viser.clienthandle method)": [[0, "viser.ClientHandle.add_transform_controls"]], "aspect (viser.camerahandle property)": [[0, "viser.CameraHandle.aspect"]], "atomic() (viser.clienthandle method)": [[0, "viser.ClientHandle.atomic"]], "camera (viser.clienthandle attribute)": [[0, "viser.ClientHandle.camera"]], "client (viser.camerahandle property)": [[0, "viser.CameraHandle.client"]], "client_id (viser.clienthandle attribute)": [[0, "viser.ClientHandle.client_id"]], "configure_theme() (viser.clienthandle method)": [[0, "viser.ClientHandle.configure_theme"]], "fov (viser.camerahandle property)": [[0, "viser.CameraHandle.fov"]], "gui_folder() (viser.clienthandle method)": [[0, "viser.ClientHandle.gui_folder"]], "look_at (viser.camerahandle property)": [[0, "viser.CameraHandle.look_at"]], "on_update() (viser.camerahandle method)": [[0, "viser.CameraHandle.on_update"]], "position (viser.camerahandle property)": [[0, "viser.CameraHandle.position"]], "reset_scene() (viser.clienthandle method)": [[0, "viser.ClientHandle.reset_scene"]], "set_background_image() (viser.clienthandle method)": [[0, "viser.ClientHandle.set_background_image"]], "up_direction (viser.camerahandle property)": [[0, "viser.CameraHandle.up_direction"]], "update_timestamp (viser.camerahandle property)": [[0, "viser.CameraHandle.update_timestamp"]], "wxyz (viser.camerahandle property)": [[0, "viser.CameraHandle.wxyz"]], "guibuttongrouphandle (class in viser)": [[16, "viser.GuiButtonGroupHandle"]], "guibuttonhandle (class in viser)": [[16, "viser.GuiButtonHandle"]], "guidropdownhandle (class in viser)": [[16, "viser.GuiDropdownHandle"]], "guihandle (class in viser)": [[16, "viser.GuiHandle"]], "disabled (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.disabled"]], "disabled (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.disabled"]], "disabled (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.disabled"]], "disabled (viser.guihandle property)": [[16, "viser.GuiHandle.disabled"]], "on_click() (viser.guibuttongrouphandle method)": [[16, "viser.GuiButtonGroupHandle.on_click"]], "on_click() (viser.guibuttonhandle method)": [[16, "viser.GuiButtonHandle.on_click"]], "on_update() (viser.guidropdownhandle method)": [[16, "viser.GuiDropdownHandle.on_update"]], "on_update() (viser.guihandle method)": [[16, "viser.GuiHandle.on_update"]], "options (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.options"]], "remove() (viser.guibuttongrouphandle method)": [[16, "viser.GuiButtonGroupHandle.remove"]], "remove() (viser.guibuttonhandle method)": [[16, "viser.GuiButtonHandle.remove"]], "remove() (viser.guidropdownhandle method)": [[16, "viser.GuiDropdownHandle.remove"]], "remove() (viser.guihandle method)": [[16, "viser.GuiHandle.remove"]], "update_timestamp (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.update_timestamp"]], "update_timestamp (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.update_timestamp"]], "update_timestamp (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.update_timestamp"]], "update_timestamp (viser.guihandle property)": [[16, "viser.GuiHandle.update_timestamp"]], "value (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.value"]], "value (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.value"]], "value (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.value"]], "value (viser.guihandle property)": [[16, "viser.GuiHandle.value"]], "visible (viser.guibuttongrouphandle property)": [[16, "viser.GuiButtonGroupHandle.visible"]], "visible (viser.guibuttonhandle property)": [[16, "viser.GuiButtonHandle.visible"]], "visible (viser.guidropdownhandle property)": [[16, "viser.GuiDropdownHandle.visible"]], "visible (viser.guihandle property)": [[16, "viser.GuiHandle.visible"]], "clientconnection (class in viser.infra)": [[18, "viser.infra.ClientConnection"]], "clientid (in module viser.infra)": [[18, "viser.infra.ClientId"]], "message (class in viser.infra)": [[18, "viser.infra.Message"]], "messagehandler (class in viser.infra)": [[18, "viser.infra.MessageHandler"]], "server (class in viser.infra)": [[18, "viser.infra.Server"]], "broadcast() (viser.infra.server method)": [[18, "viser.infra.Server.broadcast"]], "client_id (viser.infra.clientconnection attribute)": [[18, "viser.infra.ClientConnection.client_id"]], "deserialize() (viser.infra.message class method)": [[18, "viser.infra.Message.deserialize"]], "excluded_self_client (viser.infra.message attribute)": [[18, "viser.infra.Message.excluded_self_client"]], "generate_typescript_interfaces() (in module viser.infra)": [[18, "viser.infra.generate_typescript_interfaces"]], "get_subclasses() (viser.infra.message class method)": [[18, "viser.infra.Message.get_subclasses"]], "module": [[18, "module-viser.infra"], [21, "module-viser.transforms"]], "on_client_connect() (viser.infra.server method)": [[18, "viser.infra.Server.on_client_connect"]], "on_client_disconnect() (viser.infra.server method)": [[18, "viser.infra.Server.on_client_disconnect"]], "redundancy_key() (viser.infra.message method)": [[18, "viser.infra.Message.redundancy_key"]], "register_handler() (viser.infra.clientconnection method)": [[18, "viser.infra.ClientConnection.register_handler"]], "register_handler() (viser.infra.messagehandler method)": [[18, "viser.infra.MessageHandler.register_handler"]], "register_handler() (viser.infra.server method)": [[18, "viser.infra.Server.register_handler"]], "send() (viser.infra.clientconnection method)": [[18, "viser.infra.ClientConnection.send"]], "serialize() (viser.infra.message method)": [[18, "viser.infra.Message.serialize"]], "start() (viser.infra.server method)": [[18, "viser.infra.Server.start"]], "viser.infra": [[18, "module-viser.infra"]], "camerafrustumhandle (class in viser)": [[19, "viser.CameraFrustumHandle"]], "framehandle (class in viser)": [[19, "viser.FrameHandle"]], "imagehandle (class in viser)": [[19, "viser.ImageHandle"]], "labelhandle (class in viser)": [[19, "viser.LabelHandle"]], "meshhandle (class in viser)": [[19, "viser.MeshHandle"]], "pointcloudhandle (class in viser)": [[19, "viser.PointCloudHandle"]], "scenenodehandle (class in viser)": [[19, "viser.SceneNodeHandle"]], "transformcontrolshandle (class in viser)": [[19, "viser.TransformControlsHandle"]], "on_click() (viser.camerafrustumhandle method)": [[19, "viser.CameraFrustumHandle.on_click"]], "on_click() (viser.framehandle method)": [[19, "viser.FrameHandle.on_click"]], "on_click() (viser.imagehandle method)": [[19, "viser.ImageHandle.on_click"]], "on_click() (viser.meshhandle method)": [[19, "viser.MeshHandle.on_click"]], "on_click() (viser.transformcontrolshandle method)": [[19, "viser.TransformControlsHandle.on_click"]], "on_update() (viser.transformcontrolshandle method)": [[19, "viser.TransformControlsHandle.on_update"]], "position (viser.camerafrustumhandle property)": [[19, "viser.CameraFrustumHandle.position"]], "position (viser.framehandle property)": [[19, "viser.FrameHandle.position"]], "position (viser.imagehandle property)": [[19, "viser.ImageHandle.position"]], "position (viser.labelhandle property)": [[19, "viser.LabelHandle.position"]], "position (viser.meshhandle property)": [[19, "viser.MeshHandle.position"]], "position (viser.pointcloudhandle property)": [[19, "viser.PointCloudHandle.position"]], "position (viser.scenenodehandle property)": [[19, "viser.SceneNodeHandle.position"]], "position (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.position"]], "remove() (viser.camerafrustumhandle method)": [[19, "viser.CameraFrustumHandle.remove"]], "remove() (viser.framehandle method)": [[19, "viser.FrameHandle.remove"]], "remove() (viser.imagehandle method)": [[19, "viser.ImageHandle.remove"]], "remove() (viser.labelhandle method)": [[19, "viser.LabelHandle.remove"]], "remove() (viser.meshhandle method)": [[19, "viser.MeshHandle.remove"]], "remove() (viser.pointcloudhandle method)": [[19, "viser.PointCloudHandle.remove"]], "remove() (viser.scenenodehandle method)": [[19, "viser.SceneNodeHandle.remove"]], "remove() (viser.transformcontrolshandle method)": [[19, "viser.TransformControlsHandle.remove"]], "update_timestamp (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.update_timestamp"]], "visible (viser.camerafrustumhandle property)": [[19, "viser.CameraFrustumHandle.visible"]], "visible (viser.framehandle property)": [[19, "viser.FrameHandle.visible"]], "visible (viser.imagehandle property)": [[19, "viser.ImageHandle.visible"]], "visible (viser.meshhandle property)": [[19, "viser.MeshHandle.visible"]], "visible (viser.pointcloudhandle property)": [[19, "viser.PointCloudHandle.visible"]], "visible (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.visible"]], "wxyz (viser.camerafrustumhandle property)": [[19, "viser.CameraFrustumHandle.wxyz"]], "wxyz (viser.framehandle property)": [[19, "viser.FrameHandle.wxyz"]], "wxyz (viser.imagehandle property)": [[19, "viser.ImageHandle.wxyz"]], "wxyz (viser.labelhandle property)": [[19, "viser.LabelHandle.wxyz"]], "wxyz (viser.meshhandle property)": [[19, "viser.MeshHandle.wxyz"]], "wxyz (viser.pointcloudhandle property)": [[19, "viser.PointCloudHandle.wxyz"]], "wxyz (viser.scenenodehandle property)": [[19, "viser.SceneNodeHandle.wxyz"]], "wxyz (viser.transformcontrolshandle property)": [[19, "viser.TransformControlsHandle.wxyz"]], "viserserver (class in viser)": [[20, "viser.ViserServer"]], "add_camera_frustum() (viser.viserserver method)": [[20, "viser.ViserServer.add_camera_frustum"]], "add_frame() (viser.viserserver method)": [[20, "viser.ViserServer.add_frame"]], "add_gui_button() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_button"]], "add_gui_button_group() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_button_group"]], "add_gui_checkbox() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_checkbox"]], "add_gui_dropdown() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_dropdown"]], "add_gui_number() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_number"]], "add_gui_rgb() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_rgb"]], "add_gui_rgba() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_rgba"]], "add_gui_slider() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_slider"]], "add_gui_text() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_text"]], "add_gui_vector2() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_vector2"]], "add_gui_vector3() (viser.viserserver method)": [[20, "viser.ViserServer.add_gui_vector3"]], "add_image() (viser.viserserver method)": [[20, "viser.ViserServer.add_image"]], "add_label() (viser.viserserver method)": [[20, "viser.ViserServer.add_label"]], "add_mesh() (viser.viserserver method)": [[20, "viser.ViserServer.add_mesh"]], "add_mesh_simple() (viser.viserserver method)": [[20, "viser.ViserServer.add_mesh_simple"]], "add_mesh_trimesh() (viser.viserserver method)": [[20, "viser.ViserServer.add_mesh_trimesh"]], "add_point_cloud() (viser.viserserver method)": [[20, "viser.ViserServer.add_point_cloud"]], "add_transform_controls() (viser.viserserver method)": [[20, "viser.ViserServer.add_transform_controls"]], "atomic() (viser.viserserver method)": [[20, "viser.ViserServer.atomic"]], "configure_theme() (viser.viserserver method)": [[20, "viser.ViserServer.configure_theme"]], "get_clients() (viser.viserserver method)": [[20, "viser.ViserServer.get_clients"]], "gui_folder() (viser.viserserver method)": [[20, "viser.ViserServer.gui_folder"]], "on_client_connect() (viser.viserserver method)": [[20, "viser.ViserServer.on_client_connect"]], "on_client_disconnect() (viser.viserserver method)": [[20, "viser.ViserServer.on_client_disconnect"]], "reset_scene() (viser.viserserver method)": [[20, "viser.ViserServer.reset_scene"]], "set_background_image() (viser.viserserver method)": [[20, "viser.ViserServer.set_background_image"]], "world_axes (viser.viserserver attribute)": [[20, "viser.ViserServer.world_axes"]], "matrixliegroup (class in viser.transforms)": [[21, "viser.transforms.MatrixLieGroup"]], "se2 (class in viser.transforms)": [[21, "viser.transforms.SE2"]], "se3 (class in viser.transforms)": [[21, "viser.transforms.SE3"]], "sebase (class in viser.transforms)": [[21, "viser.transforms.SEBase"]], "so2 (class in viser.transforms)": [[21, "viser.transforms.SO2"]], "so3 (class in viser.transforms)": [[21, "viser.transforms.SO3"]], "sobase (class in viser.transforms)": [[21, "viser.transforms.SOBase"]], "adjoint() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.adjoint"]], "adjoint() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.adjoint"]], "adjoint() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.adjoint"]], "adjoint() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.adjoint"]], "adjoint() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.adjoint"]], "adjoint() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.adjoint"]], "adjoint() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.adjoint"]], "apply() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.apply"]], "apply() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.apply"]], "apply() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.apply"]], "apply() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.apply"]], "apply() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.apply"]], "apply() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.apply"]], "apply() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.apply"]], "as_matrix() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.as_matrix"]], "as_matrix() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.as_matrix"]], "as_matrix() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.as_matrix"]], "as_matrix() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.as_matrix"]], "as_matrix() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.as_matrix"]], "as_matrix() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.as_matrix"]], "as_matrix() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.as_matrix"]], "as_quaternion_xyzw() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.as_quaternion_xyzw"]], "as_radians() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.as_radians"]], "as_rpy_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.as_rpy_radians"]], "compute_pitch_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.compute_pitch_radians"]], "compute_roll_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.compute_roll_radians"]], "compute_yaw_radians() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.compute_yaw_radians"]], "exp() (viser.transforms.matrixliegroup class method)": [[21, "viser.transforms.MatrixLieGroup.exp"]], "exp() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.exp"]], "exp() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.exp"]], "exp() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.exp"]], "exp() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.exp"]], "exp() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.exp"]], "exp() (viser.transforms.sobase class method)": [[21, "viser.transforms.SOBase.exp"]], "from_matrix() (viser.transforms.matrixliegroup class method)": [[21, "viser.transforms.MatrixLieGroup.from_matrix"]], "from_matrix() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.from_matrix"]], "from_matrix() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.from_matrix"]], "from_matrix() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_matrix"]], "from_matrix() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.from_matrix"]], "from_matrix() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_matrix"]], "from_matrix() (viser.transforms.sobase class method)": [[21, "viser.transforms.SOBase.from_matrix"]], "from_quaternion_xyzw() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_quaternion_xyzw"]], "from_radians() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.from_radians"]], "from_rotation() (viser.transforms.se2 class method)": [[21, "viser.transforms.SE2.from_rotation"]], "from_rotation() (viser.transforms.se3 class method)": [[21, "viser.transforms.SE3.from_rotation"]], "from_rotation() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_rotation"]], "from_rotation_and_translation() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.from_rotation_and_translation"]], "from_rotation_and_translation() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.from_rotation_and_translation"]], "from_rotation_and_translation() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_rotation_and_translation"]], "from_rpy_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_rpy_radians"]], "from_translation() (viser.transforms.se2 class method)": [[21, "viser.transforms.SE2.from_translation"]], "from_translation() (viser.transforms.se3 class method)": [[21, "viser.transforms.SE3.from_translation"]], "from_translation() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.from_translation"]], "from_x_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_x_radians"]], "from_xy_theta() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.from_xy_theta"]], "from_y_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_y_radians"]], "from_z_radians() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.from_z_radians"]], "identity() (viser.transforms.matrixliegroup class method)": [[21, "viser.transforms.MatrixLieGroup.identity"]], "identity() (viser.transforms.se2 static method)": [[21, "viser.transforms.SE2.identity"]], "identity() (viser.transforms.se3 static method)": [[21, "viser.transforms.SE3.identity"]], "identity() (viser.transforms.sebase class method)": [[21, "viser.transforms.SEBase.identity"]], "identity() (viser.transforms.so2 static method)": [[21, "viser.transforms.SO2.identity"]], "identity() (viser.transforms.so3 static method)": [[21, "viser.transforms.SO3.identity"]], "identity() (viser.transforms.sobase class method)": [[21, "viser.transforms.SOBase.identity"]], "inverse() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.inverse"]], "inverse() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.inverse"]], "inverse() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.inverse"]], "inverse() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.inverse"]], "inverse() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.inverse"]], "inverse() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.inverse"]], "inverse() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.inverse"]], "log() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.log"]], "log() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.log"]], "log() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.log"]], "log() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.log"]], "log() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.log"]], "log() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.log"]], "log() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.log"]], "matrix_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.matrix_dim"]], "matrix_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.matrix_dim"]], "matrix_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.matrix_dim"]], "matrix_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.matrix_dim"]], "matrix_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.matrix_dim"]], "matrix_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.matrix_dim"]], "matrix_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.matrix_dim"]], "multiply() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.multiply"]], "multiply() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.multiply"]], "multiply() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.multiply"]], "multiply() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.multiply"]], "multiply() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.multiply"]], "multiply() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.multiply"]], "multiply() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.multiply"]], "normalize() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.normalize"]], "normalize() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.normalize"]], "normalize() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.normalize"]], "normalize() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.normalize"]], "normalize() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.normalize"]], "normalize() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.normalize"]], "normalize() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.normalize"]], "parameters() (viser.transforms.matrixliegroup method)": [[21, "viser.transforms.MatrixLieGroup.parameters"]], "parameters() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.parameters"]], "parameters() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.parameters"]], "parameters() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.parameters"]], "parameters() (viser.transforms.so2 method)": [[21, "viser.transforms.SO2.parameters"]], "parameters() (viser.transforms.so3 method)": [[21, "viser.transforms.SO3.parameters"]], "parameters() (viser.transforms.sobase method)": [[21, "viser.transforms.SOBase.parameters"]], "parameters_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.parameters_dim"]], "parameters_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.parameters_dim"]], "parameters_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.parameters_dim"]], "parameters_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.parameters_dim"]], "parameters_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.parameters_dim"]], "parameters_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.parameters_dim"]], "parameters_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.parameters_dim"]], "rotation() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.rotation"]], "rotation() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.rotation"]], "rotation() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.rotation"]], "space_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.space_dim"]], "space_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.space_dim"]], "space_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.space_dim"]], "space_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.space_dim"]], "space_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.space_dim"]], "space_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.space_dim"]], "space_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.space_dim"]], "tangent_dim (viser.transforms.matrixliegroup attribute)": [[21, "viser.transforms.MatrixLieGroup.tangent_dim"]], "tangent_dim (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.tangent_dim"]], "tangent_dim (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.tangent_dim"]], "tangent_dim (viser.transforms.sebase attribute)": [[21, "viser.transforms.SEBase.tangent_dim"]], "tangent_dim (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.tangent_dim"]], "tangent_dim (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.tangent_dim"]], "tangent_dim (viser.transforms.sobase attribute)": [[21, "viser.transforms.SOBase.tangent_dim"]], "translation() (viser.transforms.se2 method)": [[21, "viser.transforms.SE2.translation"]], "translation() (viser.transforms.se3 method)": [[21, "viser.transforms.SE3.translation"]], "translation() (viser.transforms.sebase method)": [[21, "viser.transforms.SEBase.translation"]], "unit_complex (viser.transforms.so2 attribute)": [[21, "viser.transforms.SO2.unit_complex"]], "unit_complex_xy (viser.transforms.se2 attribute)": [[21, "viser.transforms.SE2.unit_complex_xy"]], "viser.transforms": [[21, "module-viser.transforms"]], "wxyz (viser.transforms.so3 attribute)": [[21, "viser.transforms.SO3.wxyz"]], "wxyz_xyz (viser.transforms.se3 attribute)": [[21, "viser.transforms.SE3.wxyz_xyz"]]}}) \ No newline at end of file