General Recognition Theory asks a precise question: when someone identifies a stimulus that varies on two dimensions, are those dimensions processed independently? GRT answers it by treating each stimulus as a bivariate distribution in a perceptual space, and reading the shape of that space out of a confusion matrix.
Maximum likelihood approaches this by running an optimiser for each participant and each candidate model, and returns a point estimate. GRIN replaces the optimiser with a neural network trained on simulated experiments. Inference becomes a single forward pass, about a millisecond, and returns a posterior over parameter estimates and model classifications, not just a point.
Everything on this site runs in your browser. Your experimental data are not uploaded for analysis.
Start with your own data
Upload a trial-level CSV or enter a 4×4 confusion matrix. You will get GRIN's parameter and construct estimates beside a classical maximum-likelihood reference, plus the warnings needed to judge how much weight to put on the result.
Explore
Space Builder, the independence problem, and research previews for response times and repeated fitting — interactive pages that share the same in-browser model as Analyse.
Open the toolkit →Evidence
Manuscript-scale held-out recovery and calibration, plus a smaller live simulation you can run yourself as the trial count falls.
Check the estimator →What GRIN is good at
- Speed. Each participant is a forward pass, so large batches are practical without running a fresh optimiser for every person and candidate model.
- Tested uncertainty. The network returns an approximate posterior for each parameter and separate probabilities for the structural questions. We check interval coverage on held-out simulations; see Evidence.
- Small samples. It can return an estimate where an optimiser may fail to converge. That does not create information: with few trials, expect wide intervals and weak structural conclusions.
What it is not
- It is not assumption-free. GRIN is amortised over a fixed simulation prior. The app catches malformed inputs and some obvious training-envelope problems; it cannot prove that GRT generated your data or detect every kind of extrapolation.
- It assumes decisional separability throughout, and (currently) 2×2 designs only.
- It is not a replacement for thinking. A construct probability near 0.5 or weak factorized class support is not a conclusive finding.
The paper is in preparation. The simulator, the networks, the validation suite, and this site are open source. If you find a case where GRIN breaks, please get in touch — that is the useful kind of bug.