Skip to content

Allow configuring GUI width / GUI-only layout? #627

@JintaoLee-Roger

Description

@JintaoLee-Roger

Hi, thanks for the great project!

I’m using viser primarily for interactive 3D workflows, but in practice these workflows often involve some 2D visualization stages as well (e.g. fixed-view slices, projections, or image-based views).

I noticed that even with:

server.gui.configure_theme(
    control_width="large",
)

the GUI panel is still relatively narrow, which makes it hard to use it as a main visualization area.

I was wondering:

  • Is it possible (or planned) to expose a more flexible GUI width option?
  • Or to support a GUI-only layout (without the scene), where the GUI can take most or all of the viewport?

Motivation

The motivation here is not to avoid 3D features, but to support some common workflows:

  1. In some cases (e.g. images or slices), a fixed 2D camera is more appropriate than an interactive 3D view.
  2. Sometimes we want to project a 3D scene or volume into a 2D image, and then perform interactions on that 2D representation, where tools like Plotly work very well.
  3. Viser already provides an elegant way to control and update visualizations via GUI, which is difficult to achieve in static environments like Jupyter. Allowing a larger or GUI-only panel would make viser very powerful for interactive 2D visualization as well.

As a concrete example, consider visualizing 3D medical image volumes as 2D slices using Plotly.

In a Jupyter-based workflow, interactive slice navigation typically requires preloading the entire 3D volume into the notebook output (e.g. as a list of frames), since frontend controls cannot request new data from Python on demand. This can be memory-intensive and inefficient, especially when working over SSH or with large volumes.

With viser, the same task can be implemented by sending only a single 2D slice to the browser at a time, and updating it via GUI controls as the slice index changes. This server-side, on-demand update pattern is much more efficient and works very well for remote workflows.

In this scenario, simply allowing more flexible control over the GUI panel width would already make viser a very effective tool for interactive 2D slice visualization.

It seems that simply allowing more flexible control over the GUI panel width could already address most of these cases and enable more use cases for viser.

Just wanted to ask whether this is within the scope of viser or on the roadmap.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions