Running a Session with Multi User
See also Multi User Custom Experiments for multi user code examples
Additionally, see the example scripts for more multi user functionality, such as running a presenter, adding instructions, and more. Located in the projects folder.
SightLab_VR_Server.py is for running a session as the server using the GUI interface.
SightLab_VR_Client.py is for running each client that will connect to the server.
Before running a session you may want to calibrate each user if using an eye tracked headset. This varies depending on the hardware being used. See the Supported Hardware page for more information.
Run SightLab_VR_Server to start the main server. All clients will connect to the main server.
Set up all your experiment options as usual according to this page. Enter a Session ID that will be used for the data files as well.
Run SightLab_VR_Client.py and choose hardware from various eye tracked headsets, desktop mode or non-eye tracked headsets (head position will be used for analytics of non-eyetracked headsets)
If this is the first time logging in with this project you will need to enter the name of the computer running the server script. Click "New" in the Server Name dropdown list and a window will pop up where you can enter the name. After entering the name it will be stored and not need to be entered again within this project (multiple server connections will show up in the dropdown). To get the computer name you can type "About your PC" into the Windows search bar and copy the name next to "Device Name"
Next click "Connect" to connect to the server
Once connected with the server you can choose your avatar under "Avatar", as well as your right and left hand controller models. If you wish you can also enter a Name (otherwise an anonymous ID will be assigned). If you click "Show" the name tag can show above your avatar in the session. Click "Auto Assign" to automatically assign an avatar that is given a color associated with your assigned ID. Wait to make sure it says "Server Connected" below and then click "Continue" to let the server know you are ready.
See this page on how to create new custom avatars
On the server side it will show how many clients have connected and how many are ready. Click "Continue" when the necessary clients are ready.
When the session starts you can view a bird's eye view of all the clients from the server view. Each client can view all the other clients from their machines.
-
Press spacebar to start recording eye tracking data and view real-time fixations (unless this is changed to another key or event).
-
Each client can use the ‘P’ key to toggle the gazepoint on and off. It is always on for the mirrored view.
-
Navigation:
-
For the server:
Use UHJK to move the viewpoint, Y and I to rotate left and right, BN to move up and down, and O and L to pitch up and down. -
For SteamVR-based headsets:
Use RH Trackpad to teleport and LH Trackpad for smooth locomotion. LH grip to rotate left and RH grip to rotate right. -
For Oculus:
Use RH thumbstick to teleport and LH Stick while holding the RH 'B' button for smooth locomotion. -
These can be changed if needed using vizconnect.
-
See the "Controls" page for more information on controls.
-
Press spacebar to end or advance to the next trial, unless using a timer or another event.
-
At this point, data files will be saved to the data folder.
-
Press the continue key or wait for an event again to start a new trial, or press escape to exit.
-
Once “Experiment Complete” text appears, Sightlab has reached the end of the last trial.
-
Press "TAB" to see a list of all connected clients.
After you quit, you'll see data files will be saved in the "data" folder
Note that for the Demo version there is a 5 minute time limit on execution.
For more information see the Multi User Custom Experiments page for code specific to Multi User or the Multi User Example Scripts. Or see the additional pages in this documentation which should also apply to Multi User.
Trial_data shows a timestamp along with the x,y,z coordinates of the gaze intersect (combined and individual eye), eye euler, head position (6DOF), Fixation/Saccade status, saccade amplitude, velocity, average amplitude, peak velocity, pupil diameter, eye openness (if you are using a headset that tracks those), and custom flags. See documentation on how you can add more items to this file
Experiment Summary - Shows a summary of the view count, fixation count, dwell time, average view time, per trial saccade calculations, time to first fixation, as well as any additional data that you want to summarize per trial. See documentation on how to add more data.
Trial Timeline - Shows a timeline of when objects were viewed, for how long, and how many fixations there were per object
Run the Session Replay to view analytics such as heatmaps, scan paths, dwell time, user interactions and more. Use spacebar to start and stop replay. Can be viewed either on the Desktop or in a headset. See the Session Replay page in the documentation for more information.
To view visualizations for only one client, select the Client ID in the dropdown
Screen Recordings - If "Screen Record" is checked, screen recordings will be saved to a new folder "recordings". It is suggested to install the moviepy python library via the Package Manager to compress the video recordings, as these come in uncompressed by default. The video recordings can also be brought into Biopac Acqknowledge synchronized with the physiological recording if using Biopac. See the Biopac page for more information.
There is also a config.json file that saves your experiment settings, as well as .rply files in the replay_data folder, that is used for the session replay.
Note: You can additionally run an "Instructor" or "Presenter" client that can control the flow of the session and trials from within a headset and guide the clients. See the SightLab Projects\Multi User ExamplesScripts\Presentation Mode example.