splatRAG 3 teaser β SciFact, poisoned store
Local Gaussian-splat memory. Append-only cold log. BM25 + 64-d HNSW. The 3-d field is PCA of those 64-d vectors β the picture, not the index.
SciFact (BEIR test, 300 claims, k=10) on a store that also holds 5,000 Urban Dictionary rows, dreamed together:
βββββββββββββββββ¬βββββββββ¬ββββββββββ
β β R@10 β nDCG@10 β
βββββββββββββββββΌβββββββββΌββββββββββ€
β Floors we set β 0.88 β 0.75 β
βββββββββββββββββΌβββββββββΌββββββββββ€
β This run β 0.8804 β 0.7624 β
βββββββββββββββββ΄βββββββββ΄ββββββββββ
Handshake: splatrag handshake --k 10 --no-ingest. Eval filters domain=scifact so slang cannot rank as a false positive. The science documents still sat in the same field as the junk.
The old public SplatRagBench hybrid 0.7822 nDCG@10 is the first 50 claims (Nomic). Honest full-300 on that binary was 0.6664.
What moved v3 over the floors: RRF (BM25Γ1.3, k=10) on the top 30, then a third RRF arm from the queryβs full 4096-d Qwen3-Embedding-8B cosine. 64-d was already in hybrid; the leftover 4032 dimensions were sitting unused. Pure cosine rerank of that pool died (0.7174). SciFact is still lexical first.
Basins pack in 64-d (k-NN, cosine 0.80). 3-d union-find had mashed 4,035 papers into one unlabeled well. Below is example of AIβs memory. On below you see one big color cause basins still need to settle.