Browser-only research workbench

Scatter Lab

A local-first workbench for turning tabular research data into interactive 2D and 3D views—without uploading a dataset or operating an analysis backend.

The problem

Exploratory analysis benefits from quick visual iteration, but research datasets can be sensitive. Lightweight visual tools often ask users to hand their data to a server before any of that work can begin. Scatter Lab is designed around the idea that analysis should happen where the data already is.

The interaction

Drop in a CSV, XLSX, or Parquet file. Scatter Lab profiles each column, chooses a sensible first view, and lets the researcher map variables to X, Y, Z, color, and marker shape. Run PCA in the browser and inspect variance explained, score axes, and loadings; explore DBSCAN or deterministic k-means clustering; compare cluster composition by group with normalized heatmaps; and pin a live view alongside up to three comparison views.

Exports include a PNG, rotating 3D GIF, self-contained interactive HTML file, or the active derived dataset.

An optional analysis copilot

An opt-in assistant can operate Scatter Lab through explicit interface tools: assigning plot axes and encodings, running PCA or clustering, inspecting composition, configuring heatmaps, pinning views, controlling 3D rotation, and preparing PNG, GIF, HTML, or CSV exports. During a guided walkthrough, it can highlight a relevant control, explain a default, run the next analysis step, and pause for the researcher’s direction. It can also retrieve a curated, citation-backed methods reference before interpreting PCA, clustering, or statistical outputs.

The copilot is deliberately bounded: users connect their own OpenRouter or other OpenAI-compatible key, and a local runtime can keep it fully offline. It receives column names, data profiles, and aggregate results—not raw dataset rows; asks before downloads; and every analysis or view change can be undone in one action. It is a guided interface layer over local analysis, not a black-box service that takes possession of research data.

Local-first by design

Scatter Lab is a static web application. Parsing, profiling, PCA, clustering, statistics, export rendering, and workspace persistence all run in the browser. A dataset is never uploaded as part of normal use.

System design

Built with Next.js, React, TypeScript, Tailwind, Plotly WebGL, and IndexedDB, Scatter Lab pairs a columnar table with browser-native parsing, analytics, comparison, and export generation. IndexedDB stores workspaces on the device. The key design choice is keeping the full loop—data inspection, analysis, comparison, and export—fast, inspectable, and local.