Demonstrations scripts ====================== Collection of command-line scripts for demonstration purpose. !!! note *Consider that all inline commands below have to be executed at the root of ArGaze package folder.* !!! note *Use -h option to get command arguments documentation.* !!! note Each demonstration outputs metrics into *_export/records* folder. ## Random context Load **random_context.json** file to generate random gaze positions: ```shell python -m argaze load ./src/argaze/utils/demo/random_context.json ``` ## CSV file context Load **csv_file_context_xy_joined.json** file to analyze gaze positions from a CSV file where gaze position coordinates are joined as a list in one single column: ```shell python -m argaze load ./src/argaze/utils/demo/csv_file_context_xy_joined.json ``` Load **csv_file_context_xy_splitted.json** file to analyze gaze positions from a CSV file where gaze position coordinates are splitted in two seperated column: ```shell python -m argaze load ./src/argaze/utils/demo/csv_file_context_xy_splitted.json ``` Load **csv_file_context_left_right_eyes.json** file to analyze gaze positions from a CSV file where gaze position coordinates and validity are given for each eye in six separated columns.: ```shell python -m argaze load ./src/argaze/utils/demo/csv_file_context_left_right_eyes.json ``` !!! note The left/right eyes context allows to parse Tobii Spectrum data for example. ## OpenCV ### Cursor context Load **opencv_cursor_context.json** file to capture cursor pointer positions over OpenCV window: ```shell python -m argaze load ./src/argaze/utils/demo/opencv_cursor_context.json ``` ### Movie context Load **opencv_movie_context.json** file to playback a movie and also capture cursor pointer positions over OpenCV window: ```shell python -m argaze load ./src/argaze/utils/demo/opencv_movie_context.json ``` ### Camera context Edit **aruco_markers_pipeline.json** file as to adapt the *size* to the camera resolution and to set a consistent *sides_mask* value. Edit **opencv_camera_context.json** file as to select camera device identifier (default is 0). Then, load **opencv_camera_context.json** file to capture camera pictures and also capture cursor pointer positions over OpenCV window: ```shell python -m argaze load ./src/argaze/utils/demo/opencv_camera_context.json ``` ## Tobii Pro Glasses 2 ### Live stream context !!! note This demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo/* folder on A3 paper sheet. Edit **aruco_markers_pipeline.json** file as to adapt the *size* to the camera resolution ([1920, 1080]) and to set *sides_mask* value to 420. Edit **tobii_g2_live_stream_context.json** file as to select exisiting IP *address*, *project* or *participant* names and setup Tobii *configuration* parameters: ```json { "argaze.utils.contexts.TobiiProGlasses2.LiveStream" : { "name": "Tobii Pro Glasses 2 live stream", "address": "10.34.0.17", "project": "MyProject", "participant": "NewParticipant", "configuration": { "sys_ec_preset": "Indoor", "sys_sc_width": 1920, "sys_sc_height": 1080, "sys_sc_fps": 25, "sys_sc_preset": "Auto", "sys_et_freq": 50, "sys_mems_freq": 100 }, "pipeline": "aruco_markers_pipeline.json" } } ``` Then, load **tobii_g2_live_stream_context.json** file to find ArUco marker into camera image and, project gaze positions into AOI: ```shell python -m argaze load ./src/argaze/utils/demo/tobii_g2_live_stream_context.json ``` ### Segment playback context Edit **aruco_markers_pipeline.json** file as to adapt the *size* to the camera resolution ([1920, 1080]) and to set *sides_mask* value to 420. Edit **tobii_g2_segment_playback_context.json** file to select an existing Tobii *segment* folder: ```json { "argaze.utils.contexts.TobiiProGlasses2.SegmentPlayback" : { "name": "Tobii Pro Glasses 2 segment playback", "segment": "record/segments/1", "pipeline": "aruco_markers_pipeline.json" } } ``` Then, load **tobii_g2_segment_playback_context.json** file to find ArUco marker into camera image and, project gaze positions into AOI: ```shell python -m argaze load ./src/argaze/utils/demo/tobii_g2_segment_playback_context.json ``` ## Tobii Pro Glasses 3 ### Live stream context !!! note This demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo/* folder on A3 paper sheet. Edit **aruco_markers_pipeline.json** file as to adapt the *size* to the camera resolution ([1920, 1080]) and to set *sides_mask* value to 420. Load **tobii_g3_live_stream_context.json** file to find ArUco marker into camera image and, project gaze positions into AOI: ```shell python -m argaze load ./src/argaze/utils/demo/tobii_g3_live_stream_context.json ``` ## Pupil Invisible ### Live stream context !!! note This demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo/* folder on A3 paper sheet. Edit **aruco_markers_pipeline.json** file as to adapt the *size* to the camera resolution ([1088, 1080]) and to set *sides_mask* value to 4. Load **pupillabs_invisible_live_stream_context.json** file to find ArUco marker into camera image and, project gaze positions into AOI: ```shell python -m argaze load ./src/argaze/utils/demo/pupillabs_invisible_live_stream_context.json ``` ## Pupil Neon ### Live stream context !!! note This demonstration requires to print **A3_demo.pdf** file located in *./src/argaze/utils/demo/* folder on A3 paper sheet. Edit **aruco_markers_pipeline.json** file as to adapt the *size* to the camera resolution ([1600, 1200]) and to set *sides_mask* value to 200. Load **pupillabs_neon_live_stream_context.json** file to find ArUco marker into camera image and, project gaze positions into AOI: ```shell python -m argaze load ./src/argaze/utils/demo/pupillabs_neon_live_stream_context.json ```