Skip to content
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

Display help content on the empty screen after startup #2513

Closed
Tracked by #2671 ...
abey79 opened this issue Jun 26, 2023 · 1 comment · Fixed by #2982
Closed
Tracked by #2671 ...

Display help content on the empty screen after startup #2513

abey79 opened this issue Jun 26, 2023 · 1 comment · Fixed by #2982
Assignees
Labels
enhancement New feature or request ui concerns graphical user interface

Comments

@abey79
Copy link
Contributor

abey79 commented Jun 26, 2023

The empty state of the viewer is currently a huge wasted opportunity.

image
This screen does convey that you can connect to it ("listening on port ...") and that nothing is broken ("Ready") but not much else. We could do a much better job of conveying what Rerun is and how to use it by showing what actions are available to take. This could e.g. be a grid of big buttons that might have helpful text and illustrations.

Possible actions

  • Open a recording
    • Shows that there are recordings that can be saved, and that the Rerun viewer is something that could view it
    • Should also indicate that you can drag and drop a recording file into the window
  • Open a data file
  • Go to docs
  • Start onboarding tour
  • load an example dataset
  • Connect from an SDK
    • The port we're currently listening on + instructions on how to send data with the SDK from your code
  • Connect to a websocket stream?
    • Don't even know if this is possible right now from the native viewer but if it is there should be instructions for that too
@abey79 abey79 added enhancement New feature or request ui concerns graphical user interface labels Jun 26, 2023
@emilk
Copy link
Member

emilk commented Jul 10, 2023

Let's wait for a design from Mårten

@abey79 abey79 self-assigned this Aug 7, 2023
abey79 added a commit that referenced this issue Aug 17, 2023
### What

This adds a MVP Welcome Screen that shows up instead of the current
"Loading" screen in certain circumstances.

In general terms:
- The Welcome Screen is drawn in the Viewport's place, ie. with the
panels visible.
- The Welcome Screen is never displayed when a recording is available.
- The current implementation of the Welcome Screen is very basic—mostly
links to webpages.
- The current "loading screen" still exists and is "sometimes"
displayed.

The tricky thing is when to show the Welcome Screen vs. the legacy
loading screen. This PR includes an heuristic (implemented in
`App::handle_default_blueprint()`). The main determinant is the nature
of the receiver (file, tcp, web socket, etc.) which we use as a proxy
for the workflow in which the viewer is being used. The TCP receiver is
a bit tricky, as it's used by both the Python SDK (we don't want the
Welcome Screen to distractingly flash at spawn, before data arrives) and
when running manually (`$ rerun`). To address this, this PR introduces a
new `--skip-welcome-screen` CLI option, used by the Python SDK. This
situation is still not entirely perfect though: #3018.

Implementation details:
- Technically, the Welcome Screen is triggered when the app ID is set to
`StoreHub::welcome_screen_app_id()`. A corresponding blank blueprint is
created at startup (by `StoreHub`) to make the UI happy.
`App::handle_default_blueprint()` basically sets that app ID to trigger
the Welcome Screen.
- Likewise, an empty recording is _always_ set as active whenever the
app ID is set but no recording is available. This empty recording isn't
in the list of available recordings
(`ViewerContext::alternate_recordings`). This make the UI happy.
- The status string and source originally displayed in the legacy
loading screen are _also_ displayed on the Welcome Screen in some
circumstances (i.e for "infinite" data sources, tcp, ws, etc.)


Expect these follow-up PRs:
- display the status string in the menu bar instead (as per Mårten
designs)
- address #2229 
- address #3018 
- fix UI of streams with empty recording
- add `external_link` icon wherever we have external links

Fixes #2513 

<img width="1456" alt="image"
src="https://github.com/rerun-io/rerun/assets/49431240/d35a3f02-571d-4fc0-ae7f-67ce8b9d416d">

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested [demo.rerun.io](https://demo.rerun.io/pr/2982) (if
applicable)

- [PR Build Summary](https://build.rerun.io/pr/2982)
- [Docs
preview](https://rerun.io/preview/pr%3Aantoine%2Fwelcome-screen-v0/docs)
- [Examples
preview](https://rerun.io/preview/pr%3Aantoine%2Fwelcome-screen-v0/examples)

---------

Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ui concerns graphical user interface
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants