Metadata-Version: 2.1
Name: viser
Version: 0.0.13
Summary: 3D visualization helper
Author: brentyi
Author-email: brentyi@berkeley.edu
Requires-Python: >=3.8,<3.11
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Provides-Extra: dev
Provides-Extra: examples
Requires-Dist: black (==23.3.0) ; extra == "dev"
Requires-Dist: gdown (>=4.6.6)
Requires-Dist: imageio (>=2.0.0)
Requires-Dist: msgpack (>=1.0.0)
Requires-Dist: mypy (==0.991) ; extra == "dev"
Requires-Dist: numpy (>=1.0.0)
Requires-Dist: pre-commit (==3.3.2)
Requires-Dist: pyliblzfse (>=0.4.1)
Requires-Dist: pyright (>=1.1.308) ; extra == "dev"
Requires-Dist: rich (>=13.3.3)
Requires-Dist: ruff (==0.0.267) ; extra == "dev"
Requires-Dist: scikit-image (>=0.18.0)
Requires-Dist: scipy (>=1.7.3)
Requires-Dist: smplx (>=0.1.28) ; extra == "examples"
Requires-Dist: torch (>=1.13.1) ; extra == "examples"
Requires-Dist: tqdm (>=4.0.0)
Requires-Dist: trimesh (>=3.21.7) ; extra == "examples"
Requires-Dist: tyro (>=0.2.0)
Requires-Dist: websockets (>=10.4)
Requires-Dist: yourdfpy (>=0.0.53) ; extra == "examples"
Description-Content-Type: text/markdown

<h1>
  viser
</h1>

**`pip install viser`** &nbsp;&nbsp;&bull;&nbsp;&nbsp; **[
[API Reference](https://nerfstudio-project.github.io/viser) ]**

![pyright](https://github.com/nerfstudio-project/viser/workflows/pyright/badge.svg)
![mypy](https://github.com/nerfstudio-project/viser/workflows/mypy/badge.svg)
![typescript](https://github.com/nerfstudio-project/viser/workflows/typescript-compile/badge.svg)
[![pypi](https://img.shields.io/pypi/pyversions/viser)](https://pypi.org/project/viser)

---

`viser` is a library for interactive 3D visualization + Python, inspired by
tools like [Pangolin](https://github.com/stevenlovegrove/Pangolin),
[rviz](https://wiki.ros.org/rviz/), and
[meshcat](https://github.com/rdeits/meshcat).

As a standalone visualization tool, `viser` features include:

- Web interface for easy use on remote machines.
- Python API for sending 3D primitives to the browser.
- Python-configurable inputs: buttons, checkboxes, text inputs, sliders,
  dropdowns, gizmos.
- Support for multiple panels and view-synchronized connections.

The `viser.infra` backend can also be used to build custom web applications
(example:
[the Nerfstudio viewer](https://github.com/nerfstudio-project/nerfstudio)). It
supports:

- Websocket / HTTP server management, on a shared port.
- Asynchronous server/client communication infrastructure.
- Client state persistence logic.
- Typed serialization; synchronization between Python dataclass and TypeScript
  interfaces.

## Running examples

```bash
# Clone the repository.
git clone https://github.com/nerfstudio-project/viser.git

# Install the package.
# You can also install via pip: `pip install viser`.
cd ./viser
pip install -e .

# Run an example.
pip install -e .[examples]
python ./examples/4_gui.py
```

After an example script is running, you can connect by navigating to the printed
URL (default: `http://localhost:8080`).

## Setup (client development)

This is only needed for client-side development. The automatically hosted viewer
should be sufficient otherwise.

```bash
cd ./viser/viser/client
yarn
yarn start
```

## Demos

### Interactive SMPL-X Example

https://user-images.githubusercontent.com/6992947/228734499-87d8a12a-df1a-4511-a4e0-0a46bd8532fd.mov

### Interactive NeRF rendering

(code not released)

https://user-images.githubusercontent.com/6992947/232163875-ff788455-f074-4bd3-9154-5330b5ed4733.mov

