PixelFlux mark

PixelFlux

Find meaning in every photo.

prototype · Windows

Search your own photographs by what is in them, on a laptop, with nothing leaving the machine.

Type "red car" and you get the red car — not the file named car.jpg, and not a cloud service's answer. A vision model has already looked at every photograph and written a paragraph about it, a segmenter has outlined what is in it, a detector has found the faces, and all of that is folded into one searchable vector. The only time it touches the network is the first-run model download, because you pressed a button.

monstercameron/PixelFlux — brand sheet
PixelFlux brand poster — Find meaning in every photo.

Brand artwork for PixelFlux. The product is real and the code is linked above; the poster is a design exercise, not a claim.

~/projects/pixelflux · what it does

What you get.

Ask in plain words

Search runs over meaning, not filenames or tags. Nothing has to be labelled first.

It reads your library once, patiently

Describe, segment, detect and embed run as a queue over hours rather than a button you wait on, and the result is cached forever.

Faces grouped, names yours

Grouping is by appearance and is recomputed rather than stored. Only the names you type are treated as facts.

Private by construction, not by policy

Browsing, analysis and search make no network requests at all, and the interface's content security policy forbids them.

~/projects/pixelflux · built on

What it runs on.

Including the two libraries underneath it that are my own work — the framework the interface is written in, and the transport it talks over.

A native Windows desktop app with a web-technology interface, one codebase.
Runs the vision, embedding, detection and recognition models on-device, with a per-model choice of accelerator.
CLIP · YuNet · SFace
Image and text embeddings for search; face detection and recognition for people.
The library index and the vector store, in a file on your disk.
Snapdragon X2 Elite (arm64)
The build and every measurement on this page come from an arm64 laptop, fanless and thermally honest.
~/projects/pixelflux · hard parts

What was actually difficult.

The problems worth describing, and what the measurement said. Not the technology list — that is above.

A caption in the search vector beats a better image encoder

Blending the CLIP text embedding of the generated description with the image embedding, weighted 80/20 toward the image, took "red car" from 0.80 to 1.00 precision-at-five. Both extremes lose. The weight is part of the model version string, because otherwise changing it silently reuses the old vectors — which happened, and looked exactly like the change having no effect.

The bottleneck was never the model

Face detection cost 114 ms a photograph, of which the network was under 10 ms; the rest was decoding a four-megapixel JPEG twice and discarding most of it. Decoding at the size the model actually wants took the face stage from 82 s to 25 s across the library, at a measured cost of 0.8% of detections.

A repetition penalty trades looping for hallucination, and that is the wrong trade

Greedy decoding loops at the tail of a description; a penalty stops it and starts inventing specific strings — a sign, a box label, a name tag. For text that becomes a search index, a repeated sentence is harmless and an invented proper noun makes a photo findable by a word that is not in it. The decoder stops on a repeated sentence instead.

~/projects/pixelflux · evidence

Counted, not estimated.

Figures taken from the repository itself. No line-of-code count — it rewards duplication and every reader knows it.

207tests
11 sto describe one photograph
0.80→1.00precision@5 after the caption blend
82→25 sface stage, after the decode fix
~/projects/pixelflux · honest status

Where this really is.

PixelFlux today:prototype · Windows

A prototype, and its README lists the limits without being asked: Windows only, arm64 is the tested target, the vision model is small and sometimes wrong, face grouping is appearance rather than identity, and there is no sync. The measurements are real and reproducible; the product around them is early.

These are personal projects, built on nights and weekends with AI agents in the loop — that is how one person ships this much surface area at once. Most of them are early: alpha or prototype, with polish that varies a lot by area. What is not early is the architecture, the test suites, and the measurements — every number on this page is counted from the repository and every claim is one you can check against the code.