aurora-opensource / xviz

A protocol for real-time transfer and visualization of autonomy data
http://xviz.io
Apache License 2.0
1k stars 226 forks source link

Design expansion of the declarative UI to support HUD #256

Open jlisee opened 5 years ago

jlisee commented 5 years ago

It's common in XVIZ clients to want to have specialized always visible UI elements that provide the user situational awareness about what's happening in the scene they are viewing.

We want to:

An example of a HUD are the UI elements on the upper right portion of screen here (source uber/streetscape.gl#200, shoutout to @Pessimistress for the great work here):

screen shot 2018-12-29 at 12 21 33 am

Note that this is distinct from the normal panel abstraction in declarative UI where you have sections of the UI that come and go based on purpose.

@twojtasz

twojtasz commented 5 years ago

Another thread came up which raises how declarative UI should work with the ID of primitive. One example would be to have the decl UI instance associated with streams, but on a per ID basis.

Another question is how the HUD would work with multiple poses. There is a disconnect in the way we track objects across streams (ie with the id field) and how we might do that with streams in the poses top-level set. This could be ignored/separated out for, but worth at least mentioning here

jlisee commented 5 years ago

Ok so I think what is missing here is that almost all the streams can actually contain data from multiple objects, but must declarative UI elements ignore that. For many widgets they can just draw multiple things, but for these HUD controls they can only show one number, so you would need a way to specify which ID to use.

This a great find so I created #259 to handle this.