--- title: "Gazepoint pupil-data interoperability" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Gazepoint pupil-data interoperability} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4.5 ) library(gp3bayes) ``` ## Verified Open Gaze fields The Gazepoint bridge recognizes documented Open Gaze API fields and reports a mapping proposal. It does not select a left, right, pixel-diameter, or 3-D pupil channel on the analyst's behalf. The API distinguishes camera-image pupil diameter (`LPD`, `RPD`) in **pixels** from 3-D pupil diameter (`LPUPILD`, `RPUPILD`) in **metres**. The bridge keeps those units separate. ```{r gazepoint-schema} gp <- data.frame( TIME = seq(0, 0.3, by = 0.1), LPD = c(15.1, 15.2, 15.3, 15.2), LPV = 1, RPD = c(15.0, 15.1, 15.2, 15.1), RPV = 1, BPOGX = c(.48, .49, .50, .51), BPOGY = c(.52, .51, .50, .49), BPOGV = 1 ) schema <- inspect_gazepoint_pupil_schema(gp) schema gazepoint_pupil_mapping_table(schema) ``` Because both left and right pupil channels are present, channel selection is ambiguous and must be explicit. ## 3-D pupil diameter ```{r gazepoint-3d} gp3d <- data.frame( TIME = c(0, .1, .2), LPUPILD = c(.0031, .0032, .0033), LPUPILV = 1, LEYEX = c(-.04, -.04, -.04), LEYEY = c(0, 0, 0), LEYEZ = c(.65, .65, .65) ) gazepoint_pupil_mapping_table(inspect_gazepoint_pupil_schema(gp3d)) ``` A proposed schema is an interoperability audit, not evidence that a column is appropriate for a specific scientific analysis. Export variants and preprocessing provenance remain part of the contract.