MNIST, from pixels to projections
Each v1 version flattens MNIST digits into rows of pixels, clusters the rows scanpy-style (PCA → kNN graph → Leiden), and links the original and sorted pixel matrices to UMAP, PaCMAP and LocalMAP projections in 2D and 3D. Each builds on the one before. v2 turns to how PaCMAP gets there, running its optimisation live for you to play. v3 uses the digits as stand-in data for a valence visualisation.
-
v1.0Pixels to projections
Full 28×28 greyscale digits: sorted matrices, linked projections, per-cluster samples and composition.
-
v1.1Across resolutions
Digits average-pooled from 32×32 down to 16×16, 8×8, 4×4 and 2×2, with projections recomputed at each and morphing between them.
-
v1.2In black and white
Every pooled digit binarised into stroke or background, so clustering and projections see only two levels, optionally drawn as agree / disagree votes.
-
v2.0Playable PaCMAP
PaCMAP's optimisation running live on up to all 65,000 digits, in 2D or 3D, with its neighbour, mid-near and far forces in your hands: attract or repel each from on-screen sliders or a MIDI controller, against PaCMAP's own schedule.
-
v3.0Valence traces
A valence visualisation with stand-in data: each digit's pixels, read in order, as one participant's valence over time, grouped by digit or Leiden cluster.