Control Console that integrate Jovian (Virtual Reality Platform) and Spiketag (Real-time Ephys)
Mouse and Rats or even human play in playground
- It bidirectionally communicate with
Jovian(through socket) - It bidirectionally communicate
FPGA(through PCIE interface) - It bidirectionally communicate
user(through low-latency rendering and interaction)
The time budget comes from the fact that the playground continuously receive VR stream from Jovian and feedback decision to Jovian every frame. If the frame rate is 60 then the time budget is 1/60=16.6ms.
That means the following functionality needs to be done within this time budget
- Real-time GPU rendering for trajectory/events visualization (Navigation View)
- User interaction (could be a script) (A QT5 Console)
- Real-time Ephys signal visualization/interaction (Extension of spiketag)
- Behaviour protocol
FSMthat takesbehavour/Ephysas input and outputevents(Rule) - User interaction can overwrite the
FSMto send command to Jovian (Interaction)
To see this in a finer level we decompose it into 3 stages:
- Parse the
JovianMaze created inBlenderintoMeshobject that can be rendered in playground - Parse the
Maze objects coordinationwhich will be used bybehaviour protocol FSM
- Define
behave variable(Jovian streamcontains position, head direction, speed) - Define
ephys variable(spiketag streamcontains ripple, spikes identity, theta etc. ) - Define
object variablewhich is by defaultMaze objects coordination(reword location, cue location, wall location) - Define
rule(A FSM receive inputs frombehave variable,ephys variable, andobject variableand issueevents) - Define
events(issued byrulebased on the interaction betweenbehave/ephys/object variables) - Define
score(converteventsinto measurement of animal's performance)
Note:
behave variableandobject variableinteract to generateeventseventsandruleinteract to generatemeasurementmeasurementcan influenceruleto make it dynamicusercan top-down controlbehave variable,object variable,rulebut noteventsandscore
- Define
buttonandkeymappingfor settingstatesof GUI statesof GUI such as: readingbehave variable; readingephys variable; operatingFSM; feeding backeventsto Jovian; view states etc..navigation viewfor low-latency renderingvariable,trajectoryandevents- Define
key+mouse eventinnavigation viewto mimicFSM loopoutput trueevents - List
FSM stateandeventslog online - Save File Options
- Save the
trajectory file - Save the
event log - Save the
measurement log