Products — Research programmes

Four ideas, built to ship.

Each programme removes a cost that holds AI back — memory, model size or storage. Below: what each one is, why it is better, and the problem it solves.

01 — Tree-Memory architecture Validated on chess world

Memory that reads in log time.

A hierarchical memory that keeps every fact, reads only the branches that can change the answer, and learns new facts while it runs — with no context window.

Log-time reads

Cost per query follows about 9.4 × log₂ n from 4K to 1M addresses — 189 reads at 1,048,576.

Identical answers

Recall 1.000 and full agreement with full attention in every configuration we tested.

Never forgets, keeps learning

Fast in-session memory, then sleep consolidation into small adapters with no loss of old skills.

The problem

Windows forget; full attention is too costly.

A fixed window drops everything older. Full attention keeps it but rereads all of it for every token.

Window 4,096
~57–61%
Full attention
1.05M reads

Recall once a fact is older than the window · reads per query at 1M addresses.

Our solution

A tree with certified skips.

Every fact stays reachable. Branches that cannot change the answer are skipped with a proof.

Tree-Memory
100%
Reads / query
189

100% recall at every fact age · 189 reads (0.018% of memory).

Status: validated on a chess memory world with a clean taxonomy. Conversion of pretrained language models, GPU kernels and noise-robust keys are in progress. How it works →

02 — Ternary-100M language model In research

A model made of −1, 0 and +1.

A 100-million-parameter language model whose weights take only three values. Multiplications turn into additions and sign flips, so it can run fast and cool on modest hardware.

≈1.58 bits per weight

Three values need log₂ 3 ≈ 1.58 bits, against 16 bits for a standard half-precision weight.

Addition-friendly compute

With weights of −1, 0 or +1 a layer needs little more than adds, which suits CPUs and small accelerators.

Trained for it

Built from scratch around ternary arithmetic instead of squeezing a finished model down afterwards.

The problem

Capable models do not fit small devices.

Standard weights take 16 bits each and need heavy multiplication, which means GPUs, power and cost.

Standard FP16
16 bits

Our solution

Three-value weights from the first step.

Training with ternary weights from the start lets the model learn to work within them.

Ternary
≈1.58 bits

Status: in research and training. Quality benchmarks will be published with the release.

03 — SHVQ-LR weight compression Prototype

Shrink an existing model, keep its mind.

Semantic Hadamard Vector Quantization with a Low-Rank residual: rotate weights, store them as a small codebook, and add a compact correction where the codebook is not enough.

7.83 → 1.22 GiB

Qwen3.5-4B in our v1 prototype, about 2.49 bits per parameter.

Calibrated by activations

Compression is tuned on how the model is actually used, which is what rescued quality in testing.

Works on today’s models

No retraining from scratch: point it at a trained checkpoint.

The problem

Naive compression wrecks quality.

Squeezing weights without calibration sharply raises perplexity (lower is better).

Uncalibrated
PPL 16.30
FP16 original
PPL 7.24

Our solution

Codebook + residual + calibration.

The best v1 method reached 1.22 GiB with perplexity matching the original on a small test.

SHVQ-LR v1
PPL 7.15
File size
1.22 GiB

Status: prototype. Perplexity is from a small test set, not a full benchmark suite; a next-generation quantization-aware plan is underway.

04 — Graph-Compressed Embeddings Coming soon

Store the difference, not the copy.

GCE represents an embedding collection as a graph of anchor vectors plus small quantized residuals — so similar vectors share what they have in common.

Anchors + residuals

Near neighbours share an anchor and keep only their quantized difference.

Developer-ready

A working Python package with Neo4j integration, validated on synthetic benchmarks.

Paper on the way

A research paper and a public release are being prepared.

The problem

Vector stores keep every vector in full.

Embeddings of related text are close to each other, yet databases store each one separately, so storage grows with every record.

Our solution

A graph of shared anchors.

Group vectors around anchors and store only quantized residuals. Details and benchmarks will be released with the paper.