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
FSM
that takesbehavour/Ephys
as input and outputevents
(Rule) - User interaction can overwrite the
FSM
to send command to Jovian (Interaction)
To see this in a finer level we decompose it into 3 stages:
- Parse the
Jovian
Maze created inBlender
intoMesh
object that can be rendered in playground - Parse the
Maze objects coordination
which will be used bybehaviour protocol FSM
- Define
behave variable
(Jovian stream
contains position, head direction, speed) - Define
ephys variable
(spiketag stream
contains ripple, spikes identity, theta etc. ) - Define
object variable
which is by defaultMaze objects coordination
(reword location, cue location, wall location) - Define
rule
(A FSM receive inputs frombehave variable
,ephys variable
, andobject variable
and issueevents
) - Define
events
(issued byrule
based on the interaction betweenbehave/ephys/object variables
) - Define
score
(convertevents
into measurement of animal's performance)
Note:
behave variable
andobject variable
interact to generateevents
events
andrule
interact to generatemeasurement
measurement
can influencerule
to make it dynamicuser
can top-down controlbehave variable
,object variable
,rule
but notevents
andscore
- Define
button
andkeymapping
for settingstates
of GUI states
of GUI such as: readingbehave variable
; readingephys variable
; operatingFSM
; feeding backevents
to Jovian; view states etc..navigation view
for low-latency renderingvariable
,trajectory
andevents
- Define
key+mouse event
innavigation view
to mimicFSM loop
output trueevents
- List
FSM state
andevents
log online - Save File Options
- Save the
trajectory file
- Save the
event log
- Save the
measurement log