How this map is made
Everything below is reproducible from the pipeline code. There is no server: every artifact is precomputed offline and served as a static file.
Sources
Metadata (downloads, likes, tags, dates) comes from the public Hugging Face Hub API. Card text comes from the librarian-bots card datasets, rebuilt daily by the Hub's ML Librarian.
Placement
Each repo becomes one document: its id, task, library, license, tags, and the first 1,500 characters of its cleaned card. Documents are embedded with sentence-transformers/all-MiniLM-L6-v2 (384 dims), reduced with PCA to 50 dims, then projected to 2D with UMAP (n_neighbors 15, min_dist 0.05, cosine). Nearby points mean similar descriptions. Distance is meaningful only locally.
The map never moves
The projection was fitted once and is frozen. Weekly refreshes place new repos into the existing layout with umap.transform() and never refit, so links and screenshots stay valid. New repos that land far from every known cluster are marked Unmapped. If Unmapped ever exceeds 5% of the corpus, a v2 map will be cut and announced, with v1 kept alive for six months.
Search
Name search is a raw byte scan over the id blob in a worker, no index file. Semantic search is opt-in (and still being implemented properly) your browser downloads the same MiniLM weights (via transformers.js) plus 64-dim quantized vectors, and every query is embedded and ranked on your machine. Nothing you type leaves the page. You are asked before the download starts, and you can turn it back off to free the memory or clear the cached model at any time.