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

Tracking issue: dataframe view #4466

Open
16 of 37 tasks
abey79 opened this issue Dec 11, 2023 · 3 comments
Open
16 of 37 tasks

Tracking issue: dataframe view #4466

abey79 opened this issue Dec 11, 2023 · 3 comments
Assignees
Labels
feat-dataframe-view Everything related to the dataframe view 🎄 tracking issue issue that tracks a bunch of subissues ui concerns graphical user interface

Comments

@abey79
Copy link
Member

abey79 commented Dec 11, 2023

See all issues

Time query interaction features

Displaying and grouping data values in a table (archetypes and batches)

  • Dataframe view: add an Index column for instances and support un/collapsing #7066
  • As a user I want to be able to:
    • easily see which components are related to each other in an archetype hierarchy (group columns by archetype)
    • easily see if a given entity has a instance batch (display the batch instance indicator: either within an archetype or as a separate column)
    • expand and collapse the batch to see values per each entity

Viewing the data in the table

Cosmetics

  • initial columns size are usually bad
  • when in a time range : add color to the first column background
  • when header has archetypes and components: use a different separators for between components belonging to the same archetype.
  • change shades of grey for: alternating background of rows, the separators, fonts (including headers, entities, time logs, all other values)

Other features

Usability helper

  •  Split view per entity: with many entities, the dataframe might quickly become unwieldy. This feature would create multiple, tabbed views with the exact same configuration, but each with a single entity set as filter. // not sure about this one (Katya)

Bugs/usability issue

  • proper space view icon
  • properly handle ClearComponents
  • heuristics shouldn't suggest dataframe space views?
  • many data_ui::ui function allow wrapping -> specific UiVerbosity?

Random question/exploration

  • Should we have a temporal view where the rows are time sample defined by the users? aka each row is a latest at query, for ti=x0 + i * dx?

Design documents:

@abey79 abey79 added ui concerns graphical user interface 🎄 tracking issue issue that tracks a bunch of subissues labels Dec 11, 2023
abey79 added a commit that referenced this issue Dec 13, 2023
### What

Add a new kind of space view—called Dataframe Space View—which display
the raw data of the entities added to it. This first iteration display
data with the "latest at" semantics, with each rows corresponding to an
entity instance.

This features is _experimental_ and has plenty of usability issues
(whose growing list is tracked in
#4466). As a result, it is
disabled by default and can be enabled in the options.

For the purpose of this feature flag, this PR adds support for
de-registering a space view from the registry.


<img width="1918" alt="image"
src="https://github.com/rerun-io/rerun/assets/49431240/bf197724-eb64-41bf-996f-8276f6b17336">

<img width="557" alt="image"
src="https://github.com/rerun-io/rerun/assets/49431240/bd9296a8-b201-4e4d-9880-e1534399e4b3">



### 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 the web demo (if applicable):
  * Full build: [app.rerun.io](https://app.rerun.io/pr/4468/index.html)
* Partial build:
[app.rerun.io](https://app.rerun.io/pr/4468/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
- Useful for quick testing when changes do not affect examples in any
way
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

- [PR Build Summary](https://build.rerun.io/pr/4468)
- [Docs
preview](https://rerun.io/preview/91ab16c95fb7e061a8f327ad0364ac433de543d5/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/91ab16c95fb7e061a8f327ad0364ac433de543d5/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
@gokcergun
Copy link

Hi, thank you for working on it.
Will it allow .csv input as well? I was looking for a way to log tables and informed about this issue.
#5585
Seems a very interesting feature but would be unnecessarily complex for our pipeline if the database integration is necessary.

@Wumpf
Copy link
Member

Wumpf commented Mar 21, 2024

It's not unlikely that we add some form of CSV support there as we go, but CSV is a quite opinionated and not well specified format (different locales may use . or , for decimal separators causing all sort of issues, different loaders allow all sort of column separation characters etc.), so this is probably best served with a custom data loader - already today you could easily write one that reads in a csv to a markdown and logs into Rerun or into a text log). Naturally, none of these representations is feature-wise all that great; for that I think we'd really need the feature described in this ticket.
To learn more about custom data loaders check the docs here and/or the respective examples, here's the python one.

@abey79 abey79 changed the title Tracking issue: dataframe space view Tracking issue: dataframe view Jul 14, 2024
abey79 added a commit that referenced this issue Jul 15, 2024
### What

- Part of #4466
- Soft-blocked by #6878

This adds support for visible time range to the dataframe. For now
(likely to be iterated on soon), this mode is enabled when _any_ of the
view entities have visible time range enabled (see note below). In that
mode, rows are indexed by (entity, time, row_id) and can be sorted with
either of the first two (asc or desc) using two new view properties.

The dataframe feature is—and remains—behind an opt-in feature flag.


#### Note on the current latest at vs. range switch

Currently A single view entity with visible time range force the entire
view into this mode. In particular, it force-opt-in *all* view entities
to visible time range, setting it to `Rel(0)-Rel(0)` when not explicitly
set. (It's as if the view's default visible time range switched to
`Rel(0)-Rel(0)` although that's not how it's implemented.)

This implicit behaviour is not ideal, and we probably should design a
better way to go about it, see #4466.

<img width="2004" alt="image"
src="https://github.com/user-attachments/assets/025694b7-9029-4ab8-bdf4-6d9954a6792c">



### Checklist

* [x] update view help text
* [x] split in multiple files
* [x] clean Chunk stuff
* [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 the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6869?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6869?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
* [x] If have noted any breaking changes to the log API in
`CHANGELOG.md` and the migration guide

- [PR Build Summary](https://build.rerun.io/pr/6869)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.

---------

Co-authored-by: Clement Rey <cr.rey.clement@gmail.com>
@gavrelina
Copy link
Member

Updated some parts of the ticket based on design explorations documented here: #6957

@abey79 abey79 added the feat-dataframe-view Everything related to the dataframe view label Sep 9, 2024
Wumpf pushed a commit that referenced this issue Sep 19, 2024
### What

Add a hook so views can have additional buttons in the title bar.
Unblocks #4466.

Background: will be used for column show/hide UI of the dataframe UI. We
had ample discussion on doing so, how different it is from other views,
and on how we accept that (and eventually embrace that in other views).
See eg this comment:
#7067 (comment)


<img width="770" alt="image"
src="https://github.com/user-attachments/assets/05a533ae-62cb-40ba-bfad-f5fb4fc94188">


### 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 the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7438?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/7438?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
* [x] If have noted any breaking changes to the log API in
`CHANGELOG.md` and the migration guide

- [PR Build Summary](https://build.rerun.io/pr/7438)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat-dataframe-view Everything related to the dataframe view 🎄 tracking issue issue that tracks a bunch of subissues ui concerns graphical user interface
Projects
None yet
Development

No branches or pull requests

4 participants