Project releases
rupixel searches documents by how the page looks
Text search cannot read a scanned table or a chart. rupixel screenshots each page and searches the pictures. A late June commit replaced every stub with real MiniLM embeddings and a live in browser demo.
GitHub activity: · Published:
What rupixel is
You can search a pile of documents by their text, which is the classic approach and fails the moment the content is locked inside a scan, an image or a chart. rupixel adds a second way: it takes a screenshot of each page and searches the pictures by meaning.
It is pixel native visual retrieval ported to Rust on the RuVector approximate search substrate, with HNSW and IVF-Flat underneath.
What changed
Commit 74b3a52 removed all stubs and wired in real MiniLM embeddings with a live in browser demo. Follow up commits cleaned the default query, published honest browser numbers, rewrote the README in plain language and added closed caption narration to the demo.
The repository badges itself as early stage work in progress. Treat it accordingly.
Get started
Node 18 or newer. The npm entry point is a helper, not a heavy install:
npx rupixel
npx rupixel doctor
Expected result: an explanation of what the project is and links, then a check of your local setup.
For the Rust pipeline, from a checkout:
cargo build -p pixelrag-core -p pixelrag-cli
No documented MCP server. The supported routes are the npx helper, the Rust CLI and the hosted browser demos, which run entirely client side.
Use it today
Practical case: an archive of scanned reports that ordinary search cannot see into. Input is the page images. Workflow is embed each page visually, query in plain language, jump to the page. Output is the page that looks like what you described.
Acceptance test: open the hosted visual demo, search for something that appears only in a chart, and confirm the right page ranks first.
Push it further
Experimental commentary. The live video search page samples a feed several times a second, gates out frames that barely changed, and embeds the rest with CLIP so you can search a stream by meaning while it plays.
Limitation: browser performance depends on WebGPU being available, with a CPU and WASM fallback that is slower. Falsifiable test: run the live demo on your machine and check whether the keyframe rate keeps up with the feed.
Read the original on GitHub commit
Commit 74b3a52 — real MiniLM embeddings and live in-browser demo, stubs removed