NVlabs / FPSci

Aim Training Experiments
Other
67 stars 23 forks source link

Interaction between User configured reticle and experiment configure reticle #361

Closed jspjutNV closed 1 year ago

jspjutNV commented 2 years ago

350 added the option for the experiment to define a reticle configuration at the experiment or session level to override the user configuration. The experiment can still allow users to modify their reticle, which will lead to a bad user experience. The work around is to not do both of those at the same time, but if it becomes important, we could implement a warning or error message.

bboudaoud-nv commented 1 year ago

This is a valid issue. When allowReticleChange is true but the experiment specifies certain reticle config parameters (i.e., reticleIndex) changes in the user menu are ignored. Interestingly specifying other reticle parameters doesn't stop the user from changing the reticle index and having this change take effect. We should look more deeply into this, but it is certainly a buggy interaction.

Notably, the size/color fields for the reticle also don't seem to take effect immediately (or even on save) when altered in the user menu. We should fix this so changes to the reticle occur for all fields.

As for the interaction of allowReticleChange and experiment/session/trial level configuration of reticle config, there are 3 possible options we could consider for how this interaction should occur:

  1. Easiest. When the user specifies reticle settings and turns on allowReticleChange the reticles changes take effect (currently they are ignored) or a warning is printed to the log and no change occurs.
  2. Easy, but a bit more difficult. When an experiment/session/trial specifies anything about the reticle allowReticleChange is effectively set to false. This means that if the reticleIndex is specified in a config the user won't be able to set any other properties of the reticle.
  3. Most difficult. When an experiment/session/trial specifies any field within the reticle config that field is removed from the user menu when allowReticleChange is true. Only if all reticle parameters are specified in the non-user config or allowReticleChange is false will no UI elements be drawn for the reticle configuration