Skip to main content
HoloMemory

About this project

About HoloMemory

The homepage walks through HRR conceptually. This page shows the one piece the homepage waves at without showing: the FFT-based circular convolution under bind.

Inside the binding operation

Binding is three steps in the frequency domain: take the FFT of both vectors, multiply pointwise as complex numbers, then inverse FFT. The result is a new unit-norm vector that looks nothing like either input but is invertible given one of them. The figure below runs all three steps live on whatever symbols you type — same code path the production engine uses for every memory in the playground.

Figure · what FFT does inside bind

dim 1024
r
v
|R|
|V|
|R ⊙ V|

bind(r, v)

bind(r, v) = IFFT( FFT(r) ⊙ FFT(v) ) · 80-cell preview of one 1024-d unit vector

Type into either field. Every strip recomputes from the live engine in lib/hrr/hrr.ts. Notice that |R ⊙ V| looks unrelated to either input spectrum — that’s exactly why bind(r, v) looks unrelated to either input vector. The reverse direction (unbind) substitutes the conjugate of FFT(r) in the same multiply step, which is the math reason a stored value can be pulled back out by name.

Retrieval modes

The applied memory system on the homepage and playground exposes three retrieval modes against the same store of traces.

  • Keyword. Token overlap scoring against a stemmed bag of words. Stems are computed with Snowball English and kept byte-identical between the Python and TypeScript implementations by scripts/parity_check.mjs.
  • Holographic. Cosine similarity between a probe vector built from the query and each stored trace. Trust is not factored in for this mode, so stale or low-trust memories can win on raw vector overlap.
  • Hybrid. 0.4·H + 0.3·K + 0.15·T + 0.15·E — holographic, keyword, trust, and entity overlap. Same weights on both sides of the parity check.

Tech stack

Backend

FastAPI, SQLAlchemy, NumPy, SQLite

Frontend

Next.js, TypeScript, Tailwind, shadcn/ui

Math

FFT-based circular convolution, cosine similarity

Storage

SQLite with BLOB vectors, JSON metadata