Load a video, step through it frame-accurately, and compute its median background image.
You have unsaved work on - from before the page reloaded.
Drag a video here, or
The maze is static and the mouse moves, so the per-pixel median across evenly-sampled frames gives a clean empty-platform image.
Hough circles on the background: one big circle for the platform, ~20 small ones on its rim for the holes, indexed in ring order by angle.
Drag a circle's edge to resize it, drag its middle to move it. Click a hole (no drag) to mark it as the target - or use the dropdown below if clicking precisely is awkward on a small screen.
Prior trials completed is a human-entered label only - it's never read by the tracker, event detector, or classifier. It just rides along with this trial's numbers into the eventual export, so a researcher reading the spreadsheet later has context (e.g. "trial 1 of 5, still wandering" reads differently than "trial 9, still wandering").
Background subtraction against the median, gated to the confirmed platform circle and a plausible size range - largest matching blob wins each frame. A frame with no valid blob is marked failed, never guessed.
Scrub the frame viewer above - green crosshair = tracked, red X = failed frame.
Per-hole pixel-change signal, duration-gated. An entry is the signal plus the mouse's own tracked blob going invalid right after; a poke is the signal plus the mouse's speed dropping to at-or-below its own trial's median. Low-confidence candidates are shown, not hidden - disagreement gets flagged, not silently resolved.
Human review is a draft control: it works this session but does not yet survive a reload or a re-detect with new thresholds - full correction persistence is its own later piece, not built here on purpose. See KNOWN_LIMITATIONS.md.
| Hole | Frames | Type | Confidence | Avg speed | Human review (draft) |
|---|
Two events at the same hole are merged into one visit when the raw center-density signal between them never drops close to baseline (reengage fraction x min center density) - a brief dip under the qualifying threshold doesn't end a visit, but a real return to baseline does. See DECISIONS.md 2026-09-04. Feeds the search-strategy classifier's visit sequence and the errors/perseverative-errors measure - not shown elsewhere yet.
| Hole | Frames | Events merged | Type |
|---|
Click a measure's name for its definition and how it's calculated. A row marked audited was changed by a human-review override above - re-click "Compute measures" after changing one to recalculate.
| Measure | Value |
|---|
Spatial (direct) / serial / random, per Gawel et al. 2019 (Table 1, citing O'Leary & Brown) - not invented here. Exactly one pattern must match to get a verdict; otherwise it's UNCLEAR and all three scores are shown for you to audit against the hole sequence, rather than forcing a guess.
One tidy row for this trial: every measure above, the search-strategy verdict, the thresholds that produced them, and the tool version - opens directly in Excel, no legend needed. "Video file" is always included, so every exported row stays traceable on its own.
Per-event detail: one row per hole visit (matches Merged Visits above, overrides included) - the "long form" alongside the trial summary's "short form."