reading map: seven models, one library — /reading/models
The same 9,194 passages arranged by seven embedding models, switchable. Every model's coordinates are Procrustes-aligned to nomic, without which the toggle would be seven unrelated arrangements and the motion between them meaningless. ⚠️ The page states the NEIGHBOUR-AGREEMENT number, not the animation, and the distinction is load-bearing. Every projection of 1024 dimensions into 3 is lossy in a way that shapes what you see: measured directly, PCA and UMAP disagreed by 10x about whether whole books move together, each reporting its own arithmetic. So the claim is computed on the raw embeddings where there is no projection to be an artifact of (models share ~50% of each passage's 15 nearest neighbours), and the picture illustrates that number rather than being the evidence for it. The page says so in as many words. Renderer gains setCoordinates(), driven from the existing render loop rather than its own rAF so a morph cannot outlive the scene or run while scrolled away. It writes through the single `xyz` buffer the nebula, signal and trace all read from, so every layer moves together and nothing drifts out of registration. `trace` is now optional. The banner and explorer always carry one; a comparison payload legitimately does not — its subject is where passages MOVE between models, not the order they were highlighted in. Payload is split: a 44 KB manifest with everything shared, plus one ~145 KB coordinate file per model fetched on demand. The per-node book/kind arrays are identical across models, so carrying them seven times is waste, and eager loading would be ~1.1 MB before first paint. auto-build.sh now watches public/reading_*.json as ONE glob. The previous OR-chain was subtly broken — with `-o` the `-printf` binds only to the last clause, so earlier matches printed in a different format and the signature was not stable. The glob also picks up future payloads without an edit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,10 @@ public/reading_umap.json
|
||||
# (`export.py --explorer`, 15/0.1 plus the kind and section layers). Tracking it would dirty
|
||||
# the tree exactly as above.
|
||||
public/reading_explorer.json
|
||||
# the /reading/models comparison: a manifest plus one coordinate file per embedding model,
|
||||
# fetched on demand. Same generator, same reason they must stay untracked.
|
||||
public/reading_models.json
|
||||
public/reading_models.*.json
|
||||
.build_state
|
||||
.build.lock
|
||||
.notebooks.lock
|
||||
|
||||
Reference in New Issue
Block a user