From 605a98a6981d76a1d6062f50abd58b34212aebad Mon Sep 17 00:00:00 2001
From: Antoine Beyeler <49431240+abey79@users.noreply.github.com>
Date: Wed, 13 Dec 2023 17:00:32 +0100
Subject: [PATCH] Add experimental Dataframe Space View (#4468)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
### 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
https://github.com/rerun-io/rerun/issues/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.
### 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)
- [Examples
preview](https://rerun.io/preview/91ab16c95fb7e061a8f327ad0364ac433de543d5/examples)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
---
ARCHITECTURE.md | 11 +-
Cargo.lock | 21 ++
Cargo.toml | 1 +
crates/re_space_view_dataframe/Cargo.toml | 33 +++
crates/re_space_view_dataframe/README.md | 10 +
crates/re_space_view_dataframe/src/lib.rs | 8 +
.../src/space_view_class.rs | 253 ++++++++++++++++++
.../src/view_part_system.rs | 38 +++
crates/re_viewer/Cargo.toml | 1 +
crates/re_viewer/src/app.rs | 29 +-
crates/re_viewer/src/ui/rerun_menu.rs | 19 +-
crates/re_viewer_context/src/app_options.rs | 5 +
.../re_viewer_context/src/command_sender.rs | 3 +
.../src/space_view/dyn_space_view_class.rs | 10 +-
.../src/space_view/space_view_class.rs | 5 +
.../space_view/space_view_class_registry.rs | 57 ++--
16 files changed, 477 insertions(+), 27 deletions(-)
create mode 100644 crates/re_space_view_dataframe/Cargo.toml
create mode 100644 crates/re_space_view_dataframe/README.md
create mode 100644 crates/re_space_view_dataframe/src/lib.rs
create mode 100644 crates/re_space_view_dataframe/src/space_view_class.rs
create mode 100644 crates/re_space_view_dataframe/src/view_part_system.rs
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
index 20838b816bdb..a707f9cff831 100644
--- a/ARCHITECTURE.md
+++ b/ARCHITECTURE.md
@@ -88,11 +88,11 @@ Of course, this will only take us so far. In the future we plan on caching queri
Here is an overview of the crates included in the project: