Caellum Buys
All work

Towards Recovery

Private addiction-severity screening that flags risk for a human counsellor and never acts on its own.

Status
2nd prizeGame of Code 2026
Built for
Game of Code 2026, Mauritius
When
June 2026
Team
Team project
My role
Team member
Built with
FastAPI, SQLite, Next.js 16, DeepFace, XGBoost, Gemini 2.0 Flash (summary only)
Links
Session detail with a risk score of 75, High Risk, Refer, five flagged domains, and a bar chart of discrepancy scores by domain.
One session: risk score, flagged domains and per-domain discrepancy (test account).

The problem

The Addiction Severity Index is the standard early screen, but it needs a trained clinician, and most people who need it never reach one. The team’s pitch named two problems: access and stigma. Towards Recovery brings an ASI-structured screen to the participant, in private, and keeps watching for change afterwards.

How it works

  • A six-second resting-face calibration, then 21 questions across seven clinical domains: medical, employment, drug use, alcohol, legal, family and social, and psychiatric.
  • The webcam is sampled while each question is answered, and readings are compared with the participant’s own resting face instead of a fixed “neutral”.
  • A deterministic risk score places each session in one of three tiers: monitor, review or refer.
  • People in the monitor tier check in over time. Drift detection escalates them to review after a sustained change across two readings in a row.
  • Counsellors see the live tier, the flagged domains and an optional written summary.

Design decisions

  • Face-to-answer mismatch is treated as an inconsistency for a human to look at, never as lie detection. Nothing is acted on automatically.
  • The camera is optional. The score still works on answers alone.
  • The language model only writes the counsellor’s summary. Everything else works without it.

My part

  • Built with the team for Game of Code 2026. The project won second prize.

Not done yet

  • Only one of the classifier’s twelve features comes from real session data, so it behaves close to a step function.
  • Drift detection needs at least five check-ins before it says anything.
  • A proof of concept. Not validated for clinical use.