This repository contains the scripts used in this research paper. Please feel free to use it for any academic or commercial projects, and consider citing the paper:
Pinilla, A., Voigt-Antons, J. N., Garcia, J., Raffe, W., & Möller, S. (2023). Real-time affect detection in virtual reality: a technique based on a three-dimensional model of affect and EEG signals. Frontiers in Virtual Reality, 3, 964754. https://doi.org/10.3389/frvir.2022.964754
@article{pinilla_real-time_2023,
title = {Real-time affect detection in virtual reality: a technique based on a three-dimensional model of affect and {EEG} signals},
volume = {3},
issn = {2673-4192},
shorttitle = {Real-time affect detection in virtual reality},
url = {https://www.frontiersin.org/articles/10.3389/frvir.2022.964754/full},
doi = {10.3389/frvir.2022.964754},
urldate = {2024-01-29},
journal = {Frontiers in Virtual Reality},
author = {Pinilla, Andres and Voigt-Antons, Jan-Niklas and Garcia, Jaime and Raffe, William and Möller, Sebastian},
month = jan,
year = {2023},
pages = {964754},
file = {Full Text:/Users/aepinilla/Zotero/storage/XF5NBVSX/Pinilla et al. - 2023 - Real-time affect detection in virtual reality a t.pdf:application/pdf},
}
NOTE: The preprocessing pipeline used for this experiment was originally implemented in Matlab, using EEGLAB. A more recent Python implementation is available here.
- Install R (https://cran.r-project.org/)
- Clone this repository:
git clone git@github.com:aepinilla/affect_detection.git
- Download the 'data.zip' file from the OSF repository of the study: https://osf.io/7v9kt/
- Unzip data.zip and place it at the root of the folder you just cloned.
- Using the terminal, go to the root of the 'affect_detection' folder and run the following command:
python main.py
The 'data' folder contains data that has been already preprocessed. To replicate the preprocessing steps, follow these instructions:
- Install Matlab.
- Install EEGLAB following these instructions: https://eeglab.org/tutorials/01_Install/Install.html
- Transform XDF files to CSV for faster processing:
python xdf_to_csv.py
- Open EEGLAB in Matlab and run the preprocessing script located at affect_detection/src/preprocessing.m
All files generated by main.py will be stored in the 'reports' folder. In a MacBook Pro, it took several hours to run the program. If you want to skip that, download the 'reports.zip' file available in the OSF repository: https://osf.io/7v9kt/