
Search Anything.With Anything.Across Modalities.
One 1024-dimensional embedding space for image, audio, video, and text.
Watch A Query
Find Its Neighbors.
One Vector Goes In · Four Modalities Come Back · Image · Audio · Video · Text · Ranked By Semantic Distance


“A thunderstorm is a storm characterized by the presence of lightning and its acoustic effect on the Earth’s atmosphere, known as thunder.”
One Vector Goes In.
Four Modalities Come Back.
Image · Audio · Video · Text · Ranked By Semantic Distance
- accepts
- multipart / binary
- max size
- 128 MB
- stream
- true
- model
- ImageBind / huge
- dim
- 1024
- norm
- L2 · unit sphere
- batch
- 32 · gpu
- p50
- 38 ms
- metric
- cosine
- dtype
- int8
- compress
- 0.25× ram
- ops/s
- 12,000
- ef
- 128 search
- m
- 16 layers
- shards
- 4 nodes
client.upsert( collection, points=batch, )
- k
- 50
- filter
- tag · modality
- rerank
- mmr · λ = 0.3
hits = client.search( vec, limit=50, )
- payload
- id · score · meta
- format
- application/json
- stream
- sse · chunked
- accepts
- multipart / binary
- max size
- 128 MB
- stream
- true
- model
- ImageBind / huge
- dim
- 1024
- norm
- L2 · unit sphere
- batch
- 32 · gpu
- p50
- 38 ms
- metric
- cosine
- dtype
- int8
- compress
- 0.25× ram
- ops/s
- 12,000
- ef
- 128 search
- m
- 16 layers
- shards
- 4 nodes
client.upsert( collection, points=batch, )
- k
- 50
- filter
- tag · modality
- rerank
- mmr · λ = 0.3
hits = client.search( vec, limit=50, )
- payload
- id · score · meta
- format
- application/json
- stream
- sse · chunked
Read The Handbook.
Quickstart · API Reference · Deploy Guide · Cookbook For Multimodal Search Pipelines
QUICKSTART
Clone, docker compose up, point your data at the ingest endpoint, query in any modality. CPU fallback works out of the box — GPU optional.
- stack
- docker · compose
- time
- ~60s
- prereqs
- docker only
- gpu
- optional
DEPLOY GUIDE
Single-node, sharded, or cloud. Production checklist for backups, scaling, observability, TLS, rate limits. Terraform refs for AWS + GCP.
- targets
- aws · gcp · bare
- scale
- 50M vec / shard
- ram
- ~12 GB · int8
- ha
- multi-node
API REFERENCE
Ingest, search, filter, paginate, stream. REST + Server-Sent Events. Typed schemas in every language via the OpenAPI 3.1 spec at /v1/openapi.json.
- routes
- 14
- format
- openapi 3.1
- auth
- bearer · optional
- stream
- sse · chunked
COOKBOOK
Reverse image search, hybrid vector + metadata, streaming ingest, MMR reranking. Plus the gotchas — HEIC, long audio, quantization tradeoffs.
- recipes
- 12
- updated
- weekly
- languages
- py · ts · go
- chunking
- auto
Handbook Lives On GitHub · Browse All Pages →
Questions Worth Asking.
The Things People Ask · Before They Wire Synapse Into Production
Image, audio, video, and text — all projected into the same 1024-dimensional embedding space. Query with any modality, retrieve any other.
ImageBind by default. Vectors are L2-normalized to a unit sphere, then compared with cosine distance. You can swap models per workspace if you need a different latent geometry.
Repeat queries return in ~3ms from the Redis cache. A cold query is dominated by embedding the query itself (ImageBind) — fast on a GPU, a couple seconds on CPU — plus the Qdrant lookup. The vector search is the cheap part: HNSW + int8.
Yes. Synapse runs as a docker-compose stack — FastAPI backend (ImageBind), Qdrant for vectors, Redis for query caching, and S3-compatible object storage (e.g. Backblaze B2) for media. Embedding the corpus needs a GPU, so that runs as a one-time batch job on a GPU box; serving runs on CPU.
The demo indexes ~5,700 vectors across 293 subjects on free tiers. Qdrant with int8 quantization scales to millions per node (1024-d int8 ≈ 1KB/vector); shard for more — the query API stays the same.
You own the index. Raw assets stay in your object storage; only the vectors and lightweight metadata live in Synapse. Nothing leaves your infra unless you wire up an external embedding API.
Still curious? Ping the team →