simularium / simularium-planning

Apache License 2.0
0 stars 0 forks source link

Design for controlling transparency of agents #114

Open blairlyons opened 2 years ago

blairlyons commented 2 years ago

User Story

As a computational or wet lab scientist user, I want to control which agents are transparent and to what degree, so that I can make sense of crowded 3D scenes where some agents are obscured by others.

Details

We know this would be useful for cell-ABM models, e.g. https://simularium.allencell.org/viewer?trajUrl=https://physicell-working-bucket.s3.us-west-2.amazonaws.com/OUTPUTS/death_test_7200.simularium and https://simularium.allencell.org/viewer?trajUrl=https://arcade-working-bucket.s3.us-west-2.amazonaws.com/0simularium/ARCADE_with_nuclei_showing_both.simularium (transparency is hacked by changing the mesh properties in this one). It seems like it would be useful in any case where agents are obscuring each other, especially in crowded scenes.

A computational scientist user could provide transparency information in their .simularium file before they load it in the viewer. A wet lab scientist user might want to change the transparency of agents in the viewer in real time while interacting with it, maybe by agent type or state in the left panel, or maybe for the selected agent. Computational users might preview their transparency settings this way too, before saving them in their .simularium file.

Transparency is difficult to implement performantly and we're prototyping it now (https://github.com/simularium/simularium-viewer/issues/256). At least at first, users won't be able to select objects through each other, just be able to see through them. We may want to offer binned transparency options (i.e. 0% 25% 50%, etc) or a continuous slider, and the results of prototyping might have implications for this decision.

Stakeholder(s)

@toloudis will implement transparency in the viewer, likely @meganrm or another FE dev will implement the controls, @blairlyons is main contact

Expected level of research + design [XS, SM, M, LG, XL]

M

Deliverable (acceptance criteria)