Study data, analysis and supplemental material for short paper "Exploring Dynamic Vibrotactile Feedback for Layer-based Interaction on Elastic Displays" published at Mensch und Computer 2023 - DOI: 10.1145/3603555.3608534
| Directory | Description |
|---|---|
code |
jupyter notebooks for cleaning/converting data, plots, descriptive statistics |
construction |
CAD files for 3d printing mounts for vibro-motors |
data |
raw study data |
data\trial_data |
generated data for the study (feedback mode, target layer, positions of data points in scatter plot) |
export |
data generated by jupyter notebooks (large files / images are excluded from source control) |
export\data |
processed study data |
export\img |
plots |
export\spss |
data processed for easier analysis in SPSS |
spss |
SPSS working files (incomplete) |
- Study data was pregenerated for 50 participants
- Generated data can be found in
data/trial_data - each participant is associated with a data file:
data_{ParticipantId}.json
{
"probandId": 0,
"blockData": [
{
"index": -4,
"condition": "Combined Feedback",
"trials": [
{
"trialIndex": 0,
"layerIndex": 0,
"resultNumber": 166,
"resultIdx": 1,
"points": {
"points": [
{
"pos": { "posX": 781.69552830154, "posY": 263.7441949885747 },
"layer": 3,
"center": { "posX": 1548, "posY": 617 },
"offset": {
"posX": 138.09552830153993,
"posY": 117.94419498857468
},
"category": 2,
"distance": 524930.662542738
}
... // more points
],
"borderDistance": [
0, 177754.79355419573, 355509.58710839145, 533264.3806625872,
711019.1742167829, 888773.9677709786, 1066528.7613251742,
1244283.5548793701
],
"histogramDistance": [0, 0, 38, 173, 182, 126, 127],
"histogramLayer": [158, 118, 145, 160, 135, 136, 148]
},
"globalTrialIndex": -1
},
... // more trials
]
}
]
}- each block is associated with a specific feedback
conditionand consists of a number of trials - blocks with a negative index are training blocks (excluded from analysis)
- each trial consists of a list of
pointsthat are used to draw the scatterplot - each trial has an associated
index(within the block), theresult numberandlayerand aglobal trial index(for the participant over the whole experiment) - each point has a screen
position, alayer, in which it is displayed and acategorythat defines the color
For each participant two files exist:
Pxx_2022-xx-xx.csv: contains raw tracking data for analysis of turning points, and overall tracking qualityPxx_2022-xx-xx.json: contains results for each trial, especially:- Expected and reported result layers and result numbers
- Layer configuration used in the task
- Start of the Trial:
StartDate - End of Interaction:
EndInteractionDate - Time when layer result and number were reported:
CommitResultDate
- Remarks:
- Datasets starting with
P00refer to test runs before the final study for testing/finetuning study setup and procedure
- Datasets starting with
preprocess_convertMissingColumns: used to reconstruct the empty columns for layer numbers in pre-experiment data (one-time fix for test runs)preprocess_convert_results:- merges separate results for each proband in one large result file (json and data) - do this, when new data is added, as
export/data/data_experiment.csvis not in version control (too large) - computes additional columns
- computes cleaned up interaction phase and saves times and markers to associated columns in results / data
- merges separate results for each proband in one large result file (json and data) - do this, when new data is added, as
preprocess_fix_p19: merge datasets of participant 19 (restart of application after Block 1) + switches reported number and layerpreprocess_export_SPSS: transformation of Datset and export for direct analysis in SPSSstudy_questionnaire-general: first raw extraction of results on separate data filesstudy_duration:- load data either from
export/data/results_experiment_cleanedDuration.csv(cleaned-up interaction times) or fromexport/data/results_experiment.csv - computes statistics for duration and
- correctness of results
- mean difference between reported and expected layer result
- load data either from
study_outcome: computes statistics regarding success rate of reported layers and numbersstudy_turning-points,study_peaks:- computes turning points
- compute cleaned up interaction data by removing leading and trailing idle times
study_frametimes: compute frametimes fromdata_all.csvto validate the tracking quality during the experimentstudy_layerChanges: statistics for number of layer changes during the trialstudy_inLayerDurations: statistics for for mean durations of holding a layer during the trialstudy_validity: descriptive statistics and plots for general study procedurestudy_regression_plots: regression analysis and plots for devleopment of mean trial duration ober the blocks in respect to the conditions
in case of new results added, execute the following steps in the given order:
- add missing
;at the end of the header in the newly added.csvfiles - run
preprocess_convert_results.ipynbto update the result including the computed values - optional: run
preprocess_export_SPSS.ipynbto generate exports suitable for SPSS analysis - run the following nb files in arbitrary order:
study_questionnaire-general.ipynbstudy_duration.ipynbstudy_outcome.ipynbstudy_inLayerDurations.ipynbstudy_layer-changes.ipynbstudy_peaks.ipynbstudy_turning-points.ipynbstudy_regression_plots.ipynb
- for validating data quality, run the following Notebooks in arbitrary order:
study_frametimes.ipynbstudy_validity.ipynb
afterwards, the exported csv -files can be re-imported to spss to regenerate the statistics results.