RuVector Explorer

Interactive vector search, trajectories and feedback learning.

RuVector ExplorerGenerating vectors 
RuVector WASM result
WASM · loading
-
Tap a node to query from it
0.0 s
1.0x
Run
-
Structure
-
Visited
-
Dist evals
-
Recall@10 · WASM
-
Recall · JS trace
-
Query · WASM / JS
-
Bytes / vector
-
Self-learning loop · cost per query, learned vs staticLearning
Static evalsLearned evalsLearned recallLearned breadth (log scale)
Loop state
Trajectories stored
0
Nearest memory
-
Learned breadth
-
Evals vs static · last 20
-
Recall · last 20
-
Most-visited hubs
-

Two loops run on every query. A trajectory memory stores past queries and their answers, and feeds the closest ones back as extra entry points. A controller nudges ef (or nprobe) toward the target recall at the lowest cost. Each query is also replayed with only one of the two switched on, so the savings can be split honestly. On the graph indexes almost all of the savings come from the controller trimming a static ef that was set higher than the target needs. On IVF at a low nprobe, the controller's cut often holds recall only because memory hints add the cells their answers live in; when the controller alone misses the target, its saving is flagged in orange. Nothing here changes the index itself. This demonstrates the loop pattern behind RuVector's SONA and ReasoningBank; it is not those components.

Query pipeline
  1. Embed + recall memory32-D
  2. Greedy descent-
  3. Layer-0 beam-
  4. Rerank-
  5. Top-k · learn-
Recall vs ef_search · 80 queries-
RuVector WASM engineLoading
Package
@ruvector/wasm 0.2.1
Core version
-
Index · metric
-
SIMD
-
HNSW available
-
Vectors loaded
-
Insert time
-
Persistence
IndexedDB
Microbench
-
Last query
-
Top-k overlap with JS
-
Top 5 · raw distance · lower is better
-
Saves both WASM indexes for this dataset to IndexedDB in this browser. A reload with the same dataset, size, seed, metric and spread restores them instead of re-inserting.
Head-to-head · same data
Engineµs/queryRecallvs JS brutevs WASM flat
Runs brute force, every JS index structure, RuVector WASM HNSW (ef 64 fixed) and WASM flat on identical queries.
Latency per query, log scale · shorter is faster
Published reference · ruvector-core (Rust) README · 1M × 384-D · quantization is not in @ruvector/wasm 0.2.1
ModeMemoryRecallCompression
Full precision~1.5 GB100%1×
Scalar~400 MB98%4×
Product~200 MB95%8–32×
Binary~50 MB85%32×
Reading the views

Canopy grows the search outward from the entry point. Hyper lays the same tree in a Poincaré disk, where space grows exponentially toward the rim, so deep branches never crowd; drag to move the focus, and the view flies to the answer. Tree is the plain hop-by-hop layout. Space projects the vectors to 2-D with ghost trails of earlier searches. Learn slows the self-learning loop down: recall similar past queries, search from their answers, score against the target, store the trajectory, and adapt ef. Mint dashed links are learned shortcuts from the trajectory memory.

Index structures

HNSW and NSW are proximity graphs (layered and flat). IVF clusters vectors with k-means and scans only the nprobe nearest lists. Flat scans everything and is the exact baseline. Swap the dataset to see where each one struggles: uniform noise defeats every index, while taxonomy and trajectories reward graphs and learning.