A data explorer that inverts the usual workflow: you never pick a chart type — assign variables to axis slots and the chart kind is inferred. Then the contrast lens does the part dashboards skip: it decides, statistically, which differences deserve color.

Select a subset on any panel — a bar, a brushed range, a cell — and every other panel becomes a comparison against the population. Lenses compose with Shift (gestures AND together), persist per dataset, and stay under 100ms end-to-end at a million rows: the mask intersection runs in-place on typed arrays, 18ms for an AND of two selections.

Ctrl+I on a selection generates hypotheses — each one phrased so the data can prove it wrong, each with a one-click projection that tests it, each verdict recorded per dataset. The privacy line is architectural, not a policy: only shape metadata (column names, types, cardinalities) ever reaches the model; raw rows cannot leave the machine, and the API key is stored outside the exportable config.
Deterministic, zero-dependency, pure TS — with permutation importance, partial dependence, and OOB accuracy.
A documented ChartPlugin contract on window.tableauFrog — custom chart kinds register at runtime.
log, zscore, bucket, ternary — parsed and computed in one columnar pass.
27 pure-TS modules run identically in a plain browser; the Rust shell only opens files.