aolabNeuro / brain-python-interface

Other
4 stars 2 forks source link

trials would be much easier to track with a hierarchical state machine #53

Open leoscholl opened 3 years ago

leoscholl commented 3 years ago

could build on top of FSM a layer of hierarchy to deal with trials. then we wouldn't need "targ_transition" states to track how many times things have been presented, and it would make it easier to have fixed or varying inter-trial intervals, and things like autostart would work properly on every trial instead of just on trials that have a wait state.

depending on settings, a failed trial can be repeated without another call to next(generator) or it can be reshuffled into the deck.

would also be easier to build in a universal "sync start" and "sync end" state to the beginning and end of experiments since they could sit outside of the trial layer.

however, this seems like a huge change and would probably mess up a lot of the BMILoop code, so it will probably never happen

leoscholl commented 3 years ago

this would enable fixed statistics for each for each target, too! could ensure that all targets are evenly tested, for example.

would also be wise to change "sequence" to be more general, to include any number of changing parameters that might already exist in the experiment class, rather than only being used for targets or things that don't already have settings.

would have similar functionality to how "assist level" is implemented by a "linear decreasing" feature, but could be used for arbitrary parameters...