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>
26 lines
1.0 KiB
Plaintext
26 lines
1.0 KiB
Plaintext
node_modules/
|
|
dist/
|
|
.astro/
|
|
public/assets/
|
|
# notebook exports are build artifacts: tracking them would make every
|
|
# export dirty the tree, which flips the auto-build signature and breaks
|
|
# the git pull at the top of every build tick
|
|
notebooks-export/
|
|
public/nb/
|
|
# the reading map is the same kind of artifact: library-rag-export.service regenerates it on
|
|
# cyrion whenever the corpus or its located highlights move. It was tracked until 2026-08-14,
|
|
# which is why automating the export needed this line first.
|
|
public/reading_umap.json
|
|
# the /reading explorer's payload — same generator, same timer, different projection
|
|
# (`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
|
|
.rebuild.log
|