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.

Final APKcbc1d1f release
QVAC 0.12.2OCR + MedPsy
38/38 checksgrounding suite
On-deviceS25 Ultra run
Pharos S25 result screen showing a Major ciprofloxacin and warfarin interaction with DDInter source.
Major interaction Ciprofloxacin × Warfarin

DDInter 2.0 documents the pair as Major. Pharos cites the retrieved source and warns the user to confirm with a pharmacist.

Privacy boundary Camera → OCR → lookup → explanation

The app keeps the medication shelf on-device and only asks the model to explain a retrieved fact.

Medical guardrail Warning tool, not approval tool

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.

Pharos S25 scan screen framing an Acipro ciprofloxacin label.

What judges can verify

Real phone, real label, visible source.

MajorCiprofloxacin × WarfarinDDInter384 · DDInter1951
  • Final APK is published under the apk-pr30-final GitHub 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.

Solo tier

Private medication warning

No account. No cloud inference endpoint. The user can scan and get a documented interaction explanation from the device.

Mesh tier

Bigger model nearby

When an anchor is reachable, the explanation step can delegate to a stronger peer over the QVAC/Holepunch path.

Safety tier

Abstain beats guessing

If the app cannot ground a scan in the dataset, it refuses to invent a safety claim.