The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
This gallery complements the main standardized data-quality guide with visual, manuscript-facing examples. It uses deterministic synthetic validation data, not empirical performance claims.
validation <- simulate_gaze_quality_calibration(
seed = 20260918,
samples_per_target = 18,
nominal_sampling_hz = 60
)
quality <- create_gaze_quality_report(
validation,
by = c("profile", "target_id"),
valid = "valid",
missing_reason = "missing_reason",
nominal_sampling_hz = 60,
bcea_probability = 0.68,
preprocessing_spec = "synthetic raw validation samples; no interpolation",
quality_rules = "descriptive review only"
)
center_target <- quality[quality$target_id == 5, ]Higher target-referenced error means recorded gaze is farther from the known target. Accuracy is not precision: a stable offset can be precise but inaccurate.
RMS-S2S describes successive-sample fluctuation during stable gaze. Do not calculate or interpret it across target changes or intended saccades. The implementation never bridges a missing sample.
BCEA summarizes spatial dispersion as an area. The probability level must be reported; the canonical default is 0.68. BCEA is not a target-referenced accuracy statistic.
irregular <- validation[
validation$profile == "irregular_sampling" &
validation$target_id == 5,
]
plot_sampling_intervals(irregular, time = "timestamp_ms", time_unit = "ms")Long intervals describe realized timebase irregularity. When a
nominal rate is supplied, long_interval_count records
anomalously long intervals and dropped_interval_count
estimates how many nominal samples those gaps represent. Neither
quantity is a direct hardware packet-loss measurement.
The dashboard is a descriptive review surface. It is not a composite score and does not make exclusion decisions.
reviewed <- create_gaze_quality_report(
validation,
by = c("profile", "target_id"),
valid = "valid",
missing_reason = "missing_reason",
nominal_sampling_hz = 60,
thresholds = list(
accuracy_mean = list(max = 1.0),
valid_sample_fraction = list(min = 0.80)
)
)
table(reviewed$review_required)
#>
#> FALSE TRUE
#> 25 29
attr(reviewed, "gaze_quality_provenance")$automatic_exclusion
#> [1] FALSEThresholds are study-specific review rules. They do not silently drop trials, participants, or files. A defensible analysis reports the primary rule and then checks whether conclusions change under plausible alternatives.
A manuscript should report, where relevant:
A compact starting point is:
report_gaze_quality(center_target)
#> [1] "accuracy_mean: mean 0.671, range 0.116-1.388; precision_rms_s2s: mean 0.677, range 0.210-1.570; precision_sd: mean 0.466, range 0.126-1.087; bcea: mean 1.142, range 0.057-3.732; effective_sampling_hz: mean 56.278, range 46.667-60.000; valid_sample_fraction: mean 0.963, range 0.778-1.000; data_loss_fraction: mean 0.037, range 0.000-0.222. Review required for 0/6 analysis units. Thresholds, when supplied, are study-specific review rules and never trigger automatic exclusion."compute_gaze_accuracy()compute_rms_s2s()compute_gaze_sd_precision()compute_bcea()estimate_sampling_interval()estimate_sampling_jitter()estimate_effective_sampling_rate()compute_gaze_data_loss()create_gaze_quality_report()plot_gaze_accuracy()plot_gaze_precision()plot_bcea()plot_sampling_intervals()plot_gaze_quality_dashboard()report_gaze_quality()These functions characterize the measurement process. They do not establish attention, engagement, cognitive load, motivation, competence, or clinical status. Synthetic examples demonstrate software behavior; they are not tracker benchmarks and do not define universal exclusion thresholds.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.