ADABase: Cognitive Driving Public Set
Authors/Creators
Description
Multimodal physiological and behavioral recordings for cognitive load estimation during an n-back test and a driving-simulator study. This record holds the Public Set: 30 of the 51 ADABase recordings.
How to cite
Please cite this dataset record and both papers: ADABase introduced the acquisition setup, and REVELIO extends it with the gaming cohort.
@article{oppelt2023adabase,
author = {Oppelt, Maximilian P. and Foltyn, Andreas and Deuschel, Jessica and Lang, Nadine R.
and Holzer, Nina and Eskofier, Bjoern M. and Yang, Seung Hee},
title = {{ADABase}: A Multimodal Dataset for Cognitive Load Estimation},
journal = {Sensors},
year = {2023},
volume = {23},
number = {1},
pages = {340},
doi = {10.3390/s23010340}
}
@article{oppelt2026revelio,
author = {Oppelt, Maximilian P. and Foltyn, Andreas and Lang-Richter, Nadine R. and Eskofier, Bjoern M.},
title = {{REVELIO}: Multimodal Task Load Estimation for Cross-Domain Generalization},
journal = {International Journal of Human--Computer Interaction},
publisher = {Taylor \& Francis},
year = {2026},
doi = {10.48550/arXiv.2509.01642},
note = {In press. DOI refers to the arXiv preprint arXiv:2509.01642}
}
Dataset overview
Participants. ADABase and REVELIO together comprise 96 sessions from 88 subjects (51 in the driving study, 37 in the gaming study). Five people took part in both studies, so the subjects are 83 different individuals. The sessions are split into four Zenodo records:
| Subset | Sessions | DOI |
|---|---|---|
| ADABase: Cognitive Driving Public Set (this record) | 30 | 10.5281/zenodo.24051552 |
| ADABase: Cognitive Driving Private Set | 21 | 10.5281/zenodo.24059812 |
| REVELIO: Cognitive Gaming Public Set | 30 | 10.5281/zenodo.24060698 |
| REVELIO: Cognitive Gaming Private Set | 15 | 10.5281/zenodo.24076078 |
The full ADABase cohort comprises 51 participants.
Tasks. Each recording contains an n-back test and a driving-simulator study with single- and dual-task workloads of increasing intensity. Each recording lasts more than two hours. See the ADABase paper for the protocol.
Modalities.
- Physiological signals (BIOPAC MP160, recorded at 2000 Hz, stored at 1 kHz): ECG, PPG, EDA, EMG (trapezius), respiration, skin temperature
- Eye tracking (Tobii Pro Fusion, 250 Hz): gaze and pupil diameter
- Behavioral features extracted from video (camera at 25 Hz): facial action units and body landmarks. No raw video or images are released.
- Performance measures (e.g. reaction times) and subjective ratings (NASA-TLX questionnaires)
Public/private split. The 51 recordings are split into two Zenodo records:
- Public Set: 30 recordings (IDs 0000–0029), access on request.
- Private Set: 21 recordings (IDs 0030–0050), retained as a hidden test set.
Data collection was approved by the ethics committee of Friedrich-Alexander-Universität Erlangen-Nürnberg (no. 129_21 B, 21 April 2021). All participants gave written informed consent, and only participants who consented to data sharing are included.
Files
This record contains 30 HDF5 files (27.32 GB in total, IDs 0000–0029), plus checksums.md5.
File naming scheme: <NNNN>-<CODE>.h5
NNNN: four-digit participant ID. IDs are unique across ADABase and REVELIO, so the sameNNNNalways denotes the same person. ADABase uses IDs 0000–0050.CODE: pseudonym of the session.
Example: 0009-ILAB.h5 is the driving recording of participant 0009. The same participant also appears in REVELIO (0009-WMS15.h5, 0009-VRE30.h5).
0000-ACAA.h5, 0001-AGDJ.h5, 0002-AHEG.h5, 0003-AZFR.h5, 0004-BDCD.h5, 0005-BQAB.h5, 0006-BRJG.h5, 0007-FKDN.h5, 0008-GCAF.h5, 0009-ILAB.h5, 0010-ISJP.h5, 0011-KISN.h5, 0012-KSLI.h5, 0013-KYXT.h5, 0014-LEDG.h5, 0015-LINI.h5, 0016-LTRQ.h5, 0017-MDMS.h5, 0018-NMIL.h5, 0019-PFAC.h5, 0020-RLCE.h5, 0021-RNDM.h5, 0022-RSBC.h5, 0023-SFKF.h5, 0024-SZLE.h5, 0025-TBMO.h5, 0026-XAPL.h5, 0027-YMAD.h5, 0028-ZFML.h5, 0029-ZZOV.h5
HDF5 structure
Each file is written with pandas (PyTables) and holds four tables, which pandas.read_hdf reads directly. Driving (ADABase) and gaming (REVELIO) files share this layout.
| Key | Rows | Content |
|---|---|---|
SIGNALS |
one per millisecond | All time series on a common 1 kHz grid. The index is the time in ms since the start of the recording. Annotation columns STUDY, PHASE, LEVEL, then one column per channel (see below). |
SUBJECTIVE |
one per rated level | NASA-TLX ratings with STUDY, PHASE, LEVEL. Six dimensions MENTAL, PHYSICAL, TEMPORAL, PERFORMANCE, EFFORT, FRUSTRATION on a 21-point scale (0 to 20), and their pairwise-comparison weights WEIGHT <DIMENSION> (sum 15). |
PERFORMANCE |
one per scored level | Task performance with STUDY, PHASE, LEVEL. The columns differ between tasks and are empty where they do not apply, e.g. F1, VISUAL F1, AUDITIVE F1, REACTION TIME, VISUAL MEAN REACTION TIME, AUDITIVE MEAN REACTION TIME, SONGS RECALL, RACE TIME (text, mm:ss,cc), MISSED RINGS, SCORE. Some levels have no score. |
META |
one per session | Demographics and questionnaires, with a two-level column index grouped by topic, e.g. ("Subject", "Age"), ("Subject", "Sex"). |
Channels in SIGNALS.
| Columns | Content |
|---|---|
RAW_ECG_I, RAW_ECG_II |
ECG, two leads |
RAW_PPG |
Photoplethysmogram |
RAW_EDA |
Electrodermal activity |
RAW_RSP |
Respiration (chest belt) |
RAW_EMG |
EMG (trapezius) |
RAW_SKT |
Skin temperature |
ECG_I_PEAKS, PPG_PEAKS, RSP_PEAKS |
Event markers: R peaks in ECG I, pulse peaks in PPG, inspiration peaks in respiration |
EYE_LEFT_*, EYE_RIGHT_* |
Eye tracker, e.g. EYE_LEFT_PUPIL_DIAMETER (mm), EYE_LEFT_PUPIL_VALIDITY, EYE_LEFT_GAZE_POINT_ON_DISPLAY_AREA_X |
FACE_AU* |
Facial action units extracted from video, e.g. FACE_AU12 |
MOVE_* |
Body landmarks extracted from video, e.g. MOVE_X_NOSE |
The full channel list is printed by the example in "Loading the data in Python".
Sampling rates. The biosignals are stored at 1 kHz. Streams with a lower native rate (eye tracker 250 Hz, video features 25 Hz) are NaN between their samples. Calling .dropna() on a column recovers the native samples. The row number equals the time in ms, so the start and stop arguments of pandas.read_hdf select a time range without reading the whole file. A file has about 9 million rows, so read only the columns and time range you need.
Annotation. Every sample in SIGNALS carries three labels:
STUDY: the task. Time outside all tasks isn/a.PHASE:baseline,train(practice),test, orn/abetween phases.LEVEL: numbers the conditions within a study and phase.
Loading the data in Python
import pandas as pd
path = "0000-ACAA.h5"
# Tables and channels
with pd.HDFStore(path, "r") as store:
print(store.keys()) # SIGNALS, SUBJECTIVE, PERFORMANCE, META
channels = list(store.get_storer("SIGNALS").non_index_axes[0][1])
print(len(channels), channels[:10])
# Small tables
subjective = pd.read_hdf(path, "SUBJECTIVE")
performance = pd.read_hdf(path, "PERFORMANCE").dropna(axis=1, how="all")
meta = pd.read_hdf(path, "META")
# NASA-TLX: unweighted mean (RTLX) and weighted score (TLX)
dims = ["MENTAL", "PHYSICAL", "TEMPORAL", "PERFORMANCE", "EFFORT", "FRUSTRATION"]
weights = subjective[[f"WEIGHT {d}" for d in dims]].to_numpy()
subjective["RTLX"] = subjective[dims].mean(axis=1)
subjective["TLX"] = (subjective[dims].to_numpy() * weights).sum(axis=1) / weights.sum(axis=1)
# Annotation of the whole recording (reads all rows, about 30 s)
annotation = pd.read_hdf(path, "SIGNALS", columns=["STUDY", "PHASE", "LEVEL"])
test_3 = annotation.index[
(annotation["STUDY"] == "n-back") & (annotation["PHASE"] == "test") & (annotation["LEVEL"] == 3)
]
# Selected channels during n-back test 3 (index = time in ms = row number)
signals = pd.read_hdf(
path,
"SIGNALS",
columns=["RAW_ECG_I", "ECG_I_PEAKS", "EYE_LEFT_PUPIL_DIAMETER"],
start=test_3[0],
stop=test_3[-1] + 1,
)
pupil = signals["EYE_LEFT_PUPIL_DIAMETER"].dropna() # native 250 Hz samples
Checksums
Each file's MD5 checksum is shown on the Zenodo record page. The file checksums.md5 in this record lists the same checksums. After downloading, verify all files with:
md5sum -c checksums.md5 # Linux
# macOS: sudo port install coreutils, then gmd5sum -c checksums.md5
Related records and publications
Supplement to the ADABase paper and the REVELIO paper. Counterpart of the ADABase Private Set. Continued by the REVELIO Public and Private Sets.
| Record | DOI |
|---|---|
| ADABase: Cognitive Driving Public Set (this record) | 10.5281/zenodo.24051552 |
| ADABase: Cognitive Driving Private Set | 10.5281/zenodo.24059812 |
| REVELIO: Cognitive Gaming Public Set | 10.5281/zenodo.24060698 |
| REVELIO: Cognitive Gaming Private Set | 10.5281/zenodo.24076078 |
Publications:
- Oppelt, M. P., Foltyn, A., Deuschel, J., Lang, N. R., Holzer, N., Eskofier, B. M., & Yang, S. H. (2023). ADABase: A Multimodal Dataset for Cognitive Load Estimation. Sensors, 23(1), 340. https://doi.org/10.3390/s23010340
- Oppelt, M. P., Foltyn, A., Lang-Richter, N. R., & Eskofier, B. M. (2026). REVELIO: Multimodal Task Load Estimation for Cross-Domain Generalization. International Journal of Human–Computer Interaction, in press. Preprint: https://doi.org/10.48550/arXiv.2509.01642
License, access and contact
The files of this record are restricted. Researchers with a permanent position at an academic institution can request access with the Request access button on this Zenodo record. Access is free of charge and limited to non-commercial academic research. In the request, state your name, position, affiliation, postal address, email, up to five additional researchers (with affiliation and email), and a short description of the intended research use.
Use of the data is governed by the End User License Agreement (EULA): https://raw.githubusercontent.com/adabase-dataset/adabase-dataset.github.io/main/LICENSE.md. By requesting access, you accept it.
Copyright (C) 2026 The Authors.
Contact: adabase@iis.fraunhofer.de
Files
Additional details
Related works
- Is continued by
- Dataset: 10.5281/zenodo.24076078 (DOI)
- Dataset: 10.5281/zenodo.24060698 (DOI)
- Is supplement to
- Journal article: 10.3390/s23010340 (DOI)
- Preprint: 10.48550/arXiv.2509.01642 (DOI)
- Is variant form of
- Dataset: 10.5281/zenodo.24059812 (DOI)
Software
- Repository URL
- https://github.com/adabase-dataset/adabase-dataset.github.io/blob/main/docs/cognitive-load-dataset-documentation.ipynb
- Programming language
- Python
- Development Status
- Active