QVAC Hackathon · S25 validated
Medication warnings that stay on-device.
Pharos scans a medication label, normalizes the drug name, checks it against a private shelf, and explains documented interaction risk without sending the scan to a cloud API.
DDInter 2.0 documents the pair as Major. Pharos cites the retrieved source and warns the user to confirm with a pharmacist.
The app keeps the medication shelf on-device and only asks the model to explain a retrieved fact.
No match never means “safe.” Unknown labels abstain instead of inventing medical advice.
How the product works
Retrieve first. Explain second.
The model is not asked to guess whether two medicines interact. Pharos resolves the scan, looks up documented DDInter facts, then uses QVAC inference to explain only what was retrieved.
Scan the label
Camera OCR reads the visible medication label on the phone.
Normalize the name
Synonyms map brand or label text to generic drug names.
Check the shelf
The scan is compared against the saved private medication shelf.
Explain the risk
MedPsy explains the grounded interaction in plain language.
What judges can verify
Real phone, real label, visible source.
- Final APK is published under the
apk-pr30-finalGitHub release. - The app was smoke-tested on an S25 Ultra with a non-debuggable final build.
- The repo records reproducibility, S25 validation, and the QVAC SDK boundary.
- The homepage uses real proof screens and direct links to the release evidence.
Why QVAC matters
The floor is offline. The ceiling is mesh.
The solo product runs on one phone after the model is present. The mesh story shows the upside: a capable nearby device can provide a larger MedPsy model while the phone keeps OCR and grounding local.
Private medication warning
No account. No cloud inference endpoint. The user can scan and get a documented interaction explanation from the device.
Bigger model nearby
When an anchor is reachable, the explanation step can delegate to a stronger peer over the QVAC/Holepunch path.
Abstain beats guessing
If the app cannot ground a scan in the dataset, it refuses to invent a safety claim.