Skip to content

UI for legibility and control of distance, zoom, and orientation. #4666

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kpreid opened this issue Jan 3, 2024 · 0 comments
Open

UI for legibility and control of distance, zoom, and orientation. #4666

kpreid opened this issue Jan 3, 2024 · 0 comments
Labels
🟦 blueprint The data that defines our UI 🧑‍🎨 Design Requires UX/UI designer input enhancement New feature or request 🔺 re_renderer rendering, graphics, GPU 📺 re_viewer affects re_viewer itself

Comments

@kpreid
Copy link
Collaborator

kpreid commented Jan 3, 2024

Is your feature request related to a problem? Please describe.
It's often hard to manage the zoom level and depth of the camera pivot point, or to get into a desired configuration of depth, zoom, and orientation. This is understandable because we're viewing a space which is featureless except insofar as the data has features, but the data is not necessarily enough to give good human perception of the 3D space (especially when an application is in early development, or has a data generation bug producing wildly out of range or degenerate values).

Describe the solution you'd like
Any or all of the following (this is intended as a brainstorming sort of list, not something to be implemented as-is). I hope that many of these could work together to make comprehension and control easier.

  • Zoom/depth-related:
    • A temporary visual cue as to the depth of the pivot point relative to the data. For example, the data intersecting the plane of depth the pivot point is at could be shaded with a highlight, or data behind the pivot could be “foggy”. These would only appear when actively moving, to avoid cluttering the actual data visualization.
    • A scale bar, indicating the onscreen size of 1 unit at the pivot point depth, and perhaps also the camera-to-pivot distance at that scale.
    • A visual cue when the minimum and maximum zoom / camera-to-pivot distance has been reached (see Zooming in changes orbital camera origin #4402).
    • A way to rotate the camera by exactly 90 degrees, so that one can get a look at the depth axis, possibly move on it with drag or WASD, and then jump back to the previous view. This may also be useful for understanding the actual data.
    • A way to save and restore the current camera state, so one can explore away from a good position and then restore it.
    • A way to lock the pivot point or lock the zoom, so as to manipulate one without accidentally affecting the other by pressing the wrong button.
    • Configurable (blueprint) limits for the position of the pivot within the space, so that the application or user can add useful constraints from knowing the character of the data.
      • Or just optionally lock it to within the "accumulated bounding box".
      • Maybe also limits on the camera-pivot distance.
  • Orientation-related:
    • A UI element in the corner of the Space View which displays the current coordinate axes, which can be clicked to rotate an axis either "up" or "backward". For context and debugging, it should also display both XYZ and front/right/up axis labels.
      (This is like the existing “show origin axes” option but it would have a constant screen-space position and size.)
    • An infinite gridded plane perpendicular to the "up" axis. (This also assists zoom/depth by presenting a grid of specified units.) (The application could provide a finite grid but it would interfere with the double-click-to-fit action unless it could be excluded somehow.)
@kpreid kpreid added enhancement New feature or request 👀 needs triage This issue needs to be triaged by the Rerun team labels Jan 3, 2024
@emilk emilk removed the 👀 needs triage This issue needs to be triaged by the Rerun team label Jan 4, 2024
@Wumpf Wumpf added 🔺 re_renderer rendering, graphics, GPU 📺 re_viewer affects re_viewer itself 🟦 blueprint The data that defines our UI 🧑‍🎨 Design Requires UX/UI designer input labels Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🟦 blueprint The data that defines our UI 🧑‍🎨 Design Requires UX/UI designer input enhancement New feature or request 🔺 re_renderer rendering, graphics, GPU 📺 re_viewer affects re_viewer itself
Projects
None yet
Development

No branches or pull requests

3 participants