NVlabs / FPSci

Aim Training Experiments
Other
70 stars 23 forks source link

Invalidate trial initiation based on player mouse displacement #325

Closed joohwankimNV closed 3 years ago

joohwankimNV commented 3 years ago

Description of the requested feature: Decide whether to start a trial or not based on aiming direction during the Pretrial period. If the aiming direction stays within the designated angular area, move onto the next state to start the trial. If the aiming direction moves out of the designated angular area, halt the progression of trial states and print a warning text with a warning sound (specified by the experimenter).

There can be multiple ways to implement invalidation process. The first use case of this feature will be to invalidate if aiming direction moves away from the reference target, although reference target is no longer visible during Pretrial state. So I propose an implementation idea of defining an invisible validationTarget and use that to validate or invalidate trial progression.

Expected new parameters and algorithm based on that proposal of implementation:

Configuration parameters: validationTarget: Target to be used by the validation algorithm. Most likely to be the same as reference target's definition but invisible. We can force it to be static and invisible, but we can also be flexible to leave them as free parameters and let the experimenter control it. We do want to provide a color option or boolean parameter to make the target invisible though. invalidationFeedback: Message to be printed out when the given trial is invalidated. invalidationSound: Sound to be played when the given trial is invalidated. invalidationSoundVol: The volume of the invalidation sound to play.

Description of validation algorithm: Continue to check if the aiming direction ray intersects validation target. Invalidate trial initiation if the aiming ray does not intersect validation target in any frame during PretrialDuration.