rerun-io / rerun

Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.
https://rerun.io/
Apache License 2.0
6.45k stars 313 forks source link

DisconnectedSpace snippet is broken #6817

Open jleibs opened 3 months ago

jleibs commented 3 months ago

To repro:

python docs/snippets/all/archetypes/disconnected_space.py 

This only creates a single space, but is expected to create two separate spaces.

Affects all versions from 0.13 -> 0.17

Last worked on 0.12

Wumpf commented 4 days ago

This happens because the core of our "heuristic engine" aggressively prunes out anything that might be internally redundant: https://github.com/rerun-io/rerun/blob/613a35bce11f76f66d47eb84d4a8ffc3ae922305/crates/viewer/re_viewport_blueprint/src/viewport_blueprint.rs#L379

Just removing this piece of code fixes the bug. The good news is that each View can do this internally where needed, using information like "disconnect" in the process well. But that also might create quite a bit of redundant handling 🤔. Behavior might also be slightly different since right now this is the last step. more annoyingly it's also the slowest and we'd really like to do that only if necessary. I'm fairly sure we rely on this hierarchy based de-duplication mechanism for various scenarios, so just removing it is likely not an option.

Wumpf commented 4 days ago

See above (#7868), we're going to remove DisconnectedSpace