drag to orbit · scroll to zoom · click a point to walk its neighbours
Clio · article cloud
A map of the Clio article archive
Each point is one of 5,894 articles in the knowledge archive.
Distance means similarity: two dots close together are about the same thing. Colour is a
topic cluster, unless you switch to site, year or interest.
From text to a dot
Archive. Every scraped article lives in one SQLite database. Its text is split into chunks and embedded locally with harrier-oss-v1-270m (640 dimensions) through transformers.js.
Article vector. The mean of an article's chunk vectors, renormalised to unit length.
Signals. Daily digest traces mark articles the ranking dropped; Karakeep hoards mark URLs you saved, which is also what the interest profile is built from.
Projection. A seeded random projection compresses 640 → 128 dimensions, then UMAP lays those out in 3D while preserving neighbourhoods.
Groups. k-means over the layout creates the colour groups; the names come from TF-IDF over titles and snippets.
Render. three.js draws the cloud in the browser. The viewer and the data ship as one self-contained HTML file.
Hover to read a title, click to pin an article and draw lines to its nearest neighbours.
Search filters the cloud; the legend isolates a topic, a site or a status. In
interest mode, teal is saved in Karakeep, amber was filtered out by Clio.
Limits
UMAP is approximate: neighbours in the cloud are close in the layout, not necessarily the
exact top-k in embedding space. Clusters are fixed at build time; the cloud is rebuilt
after each daily digest. Only titles, URLs, sites, dates, word counts and cluster IDs are
published — never the article text.