Inspired by Carrion scent propagation + bat echolocation
Echo Field
Counterpart to HNSW + IVF vector index
A vector index in two mutualistic parts: a scent field that deposits and decays data, and an echolocation beam whose width adapts to query confidence.
benchmarked

01
Key properties
- 01O(L × log B) insert via multi-resolution LSH (L = levels, B = bucket size)
- 02O(1) delete via resolver removal; no graph repair needed
- 03Per-query adaptive budget via confidence-driven echolocation beam
- 04Natural temporal decay without explicit deletion or index rebuild
- 05Mutualistic composition: scent field (data deposit) + echolocation (query navigation) interact through shared gradient
- 065–10× DRAM reduction potential at billion-vector scale
02
Operation complexity
Side-by-side with the classical counterpart.
| Operation | Echo Field | HNSW + IVF vector index |
|---|---|---|
| insert | O(L × log B) | O(M × log N) (HNSW) |
| delete | O(1) | O(M x log N) |
| query | Adaptive (confidence-driven) | O(log N × ef) |
| memory | Sub-linear (scent compression) | Linear (HNSW graph) |
03
Interface preview
pub struct ScentField { /* ... */ }
impl ScentField {
pub fn new(config: ScentFieldConfig) -> Result<Self, EchoFieldError>;
pub fn insert(&mut self, vid: VectorId, vector: Vec<f32>) -> Result<(), EchoFieldError>;
pub fn delete(&mut self, vid: VectorId) -> Result<(), EchoFieldError>;
pub fn query(&self, vector: &[f32], k: usize)
-> Result<Vec<(VectorId, f32)>, EchoFieldError>;
pub fn memory_usage(&self) -> MemoryReport;
}04
Where this matters
FAISS · HNSW + IVF Index
| Today | With Echo Field | How |
|---|---|---|
| O(M × log N) delete requiring graph repair | O(1) delete via resolver removal | Scent entries decay naturally; no graph edges to repair |
| Fixed search budget per query | Per-query adaptive budget | Echolocation confidence drives beam width (narrow on strong signals, wide on weak) |
| Periodic index rebuild for tombstone cleanup | Natural temporal decay via tick() | Scent entries weaken over time; stale data fades without explicit cleanup |
05
Interactive simulation
Amber: scent deposits (fading with age). Rings: echolocation beam widening until 5 neighbors answer.
Field notes
- Listening for the first echo…
- Live vectors
- 60
- Faded out
- 0
- Queries
- 0
- Last probes
- –
- Avg probes
- –
- Cells scanned
- –
Tick 0 / 300Teaching model · k = 5 · scent decay 0.985 per tick · beam ×1.6 per probe
Figure. Echo Field Search at tick 0 of 300. Teaching model · k = 5 · scent decay 0.985 per tick · beam ×1.6 per probe.
Illustrative simulation, not a benchmark · Mutuus Research, ByteQuilt
Discussion