Scan in, report out: two medical AI models on one $249 box, fully offline
The scan never leaves the room. A chest X-ray goes into a $249 box, a written report comes out, and nothing touches the cloud. Two models do the work, one that sees and one that writes.
The usual way to get this is a cloud API, which brings a PACS integration, a data-processing agreement, and a per-scan fee for every image that leaves the building. This box needs none of that, and it runs anywhere an X-ray is taken, online or not.
From image to report
A chest X-ray goes in. A short written report comes out. Two models do the work, with a fixed rule between them:
- SEE: a chest X-ray classifier reads the image into 14 pathology probabilities (about 5 ms)
- WRITE: a medical LLM, MedGemma, adds a recommended next step and a clinical consideration (about 2 s)
The findings between them are written by neither model but by a fixed rule, so they always match the numbers.
Here are two real reads from the board.
A rule for the findings, MedGemma for the advice
The findings are not written by MedGemma. A fixed rule turns each probability into a word (above 0.6 “likely”, 0.4 to 0.6 “possible”, below “unlikely”), so the findings always match the numbers, nothing invented.
MedGemma does the part that needs judgment. It reads the findings and adds:
- a next step to confirm each finding (a lateral view for an effusion, an echocardiogram for cardiomegaly)
- a clinical consideration (what to watch for, or what could change management)
Both models fit in 8 GB
Both models share the box’s 8 GB and its GPU:
- vision engine: about 15 MB
- MedGemma 4B at 4-bit (the quantization trick from post 002): about 2.5 GB
- speed: about 15 tokens a second, so a report in about two seconds
That is under a third of the memory. There is room for a larger vision model, a bigger medical LLM, or a shelf of specialist models kept on disk and loaded on demand.
The boundary
This is a systems demonstration, not a clinical tool:
- the findings come from a pretrained classifier, the wording from a small general model
- no claim of clinical validity, the point is the capability, not the diagnosis
- swap the classifier for any detector and the pattern holds
One box, a shelf of specialists
This is where it stops being a demo and starts being a platform. Nothing here is tied to chests. Each model is small and only one runs at a time, so the box can hold a whole shelf of specialist models on disk and load only the one it needs: a router reads the image, picks the body part, and pulls the matching model. The rest of the pipeline runs unchanged.
One cheap box carrying a library of specialists, loading the right one on demand. That is probably what the future of edge medical AI looks like: not one model in the cloud that every scan has to reach, but a shelf of them sitting where the scan is taken.
This is what we build at Kernwerk: AI that runs where your data is, not where a vendor’s servers are. If you are building something that needs to run where the data lives, we are looking for design partners. Talk to us.
See, then say.
Specs, for the curious. Vision: a DenseNet-121 from torchxrayvision, pretrained on public chest X-ray sets (NIH ChestX-ray14, CheXpert, MIMIC-CXR, PadChest), served with TensorRT FP16 at about 5 ms per image. Language: MedGemma 4B, 4-bit, on the GPU via llama.cpp at about 15 tokens a second. Latencies are measured on the board and averaged over repeated runs, with under 1 percent variance. A 10-minute endurance run held full throughput at 69 °C, no thermal throttling. Hardware: Jetson Orin Nano Super, 8 GB, 25 W.