Inspiration

In rural Colombia a child can lose an eye to retinoblastoma, or a newborn can suffer permanent brain damage from untreated jaundice, for one simple reason: nobody looked in time. There is no pediatric ophthalmologist in the municipality, no bilirubinometer in the health post, and often no internet either.

But three of the most devastating pediatric conditions leave a visible sign that a camera can capture: a white pupillary reflex, a yellow skin tone, an asymmetric corneal light reflex. Our team — an engineer and a physician — asked a simple question: if the signal is already in the photo, why does a family have to travel eight hours to a city for someone to look at it?

What it does

Vigía turns any phone into an early-screening tool for three prevalent pediatric conditions. One photo, one alert, under 30 seconds, completely offline.

  • Vigía Ojo — Leucocoria. Flash photo of the eye. Detects a whitish pupillary reflex, a warning sign of retinoblastoma, congenital cataract or Coats disease. A normal red reflex rules it out.
  • Vigía Piel — Neonatal jaundice. Natural-light photo of the skin. Estimates the degree of yellowing with thresholds calibrated by corrected age in months, before bilirubin reaches kernicterus levels.
  • Vigía Mirada — Strabismus. Frontal photo of both eyes. Measures asymmetry of the corneal light reflex (computerized Hirschberg test) to catch misalignment before it becomes amblyopia.

Every result includes a risk index, an algorithm confidence score, the extracted features, an urgency recommendation and a plain-language explanation for the caregiver, plus a printable referral report with a QR code and one-tap WhatsApp sharing with the specialist.

A fourth piece is what makes it sustainable: a field data-collection module. Community health agents label images as "finding" or "normal" and export a .zip dataset ready for supervised retraining, so the tool improves with real data from the population it serves.

How we built it

  • App: a single-file PWA (HTML + CSS + vanilla JS), no framework, no build step, service worker for offline use. Live on Netlify and packaged natively with Capacitor 6 (Android/Gradle, iOS/Xcode, CI on Codemagic).
  • Eye and face detection with real ML, on-device: MediaPipe Tasks Vision FaceLandmarker (float16 model) runs in WebAssembly inside the phone. It locates both irises and the corneal glint, so every measurement is anchored to real anatomy instead of guessing where the pupil is. Nothing is sent to a server.
  • Leucocoria: white-pixel fraction inside the iris ROI versus the normal red reflex, mapped through a calibrated sigmoid. The app draws the analyzed pupil on the photo.
  • Jaundice: HSV colorimetry of the skin ROI. Hue is reported in degrees against a 45-degree alert threshold, with a measured-vs-reference swatch drawn on the image.
  • Strabismus: computerized Hirschberg test, measuring asymmetry between the two corneal light reflexes relative to the iris centers (0.13 = symmetric, routine follow-up).
  • Photo quality gate: every shot is scored for brightness and sharpness (Laplacian variance) and the score is shown to the health agent before analysis, so a bad photo never produces a confident answer.
  • Output: annotated image, risk index, urgency recommendation, printable PDF referral report, WhatsApp sharing, local screening history, and a labeled dataset exporter (JSZip) for future retraining.
  • Storage and privacy: localStorage only. No server, no account, no image ever leaves the device.

Challenges we ran into

  • The photo is the hard part, not the math. Real field photos are blurry, dark, off-center. Most of our engineering went into quality gating and lighting normalization, because a confident answer on a bad image is worse than no answer.
  • Working with zero connectivity. No cloud inference, no API calls. Everything had to fit in an offline bundle small enough to sideload over a weak signal.
  • Calibrating without a labeled dataset. We used clinically described visual signs and sigmoid calibration instead of pretending to have a trained model, and we built the data-collection module precisely to close that gap.
  • Being honest about limits. The hardest design decision was making the disclaimer unavoidable: mandatory onboarding, a warning on every card, a warning on every result.

Accomplishments that we're proud of

  • Three clinical modules in one platform that scales to new screenings without changing the hardware.
  • Explainable AI, not a black box: the app shows what it measured and why it reached its conclusion, in language a parent understands.
  • Runs on a low-end Android with no internet, no accessories and no specialized training.
  • A working Android APK and an iOS build pipeline, plus a landing page in Spanish and English.
  • Recognized as a finalist at the NTT DATA eAwards Colombia 2026 (Digital Health).

What we learned

  • In global health the constraint is not the model, it is the context: connectivity, device cost, literacy, trust.
  • Explainability is not a nice-to-have; it is what makes a health agent act on a result.
  • Screening is not diagnosis. The value of the tool is that it moves the right child to the front of the queue, not that it names the disease.

Why this scales far beyond Colombia

We built Vigía for rural Colombia, but the constraint it removes — no specialist, no equipment, no connectivity — is not Colombian.

  • India carries the largest retinoblastoma burden on the planet: roughly 1,500-2,000 new cases a year, close to a fifth of the global total, and national registry data puts incidence in under-fives well above the world average.
  • Neonatal jaundice tells the same story: high-income systems report kernicterus in about 1 in 100,000 newborns, while hospital series in India have reported acute bilirubin encephalopathy in a fifth of babies admitted with non-hemolytic hyperbilirubinemia.

The gap is not biology. It is how early somebody looks.

Anywhere there are more phones than pediatric ophthalmologists — India, Sub-Saharan Africa, Southeast Asia, rural Latin America — the same app works unchanged: no server to deploy, no device to ship, no connectivity to guarantee. Only the language and the referral pathway need localizing.

What's next for Vigía Pediátrico

  1. Clinical validation: a prospective study with IPS/ESE partners to measure real sensitivity and specificity.
  2. Trained models: replace the heuristic pipeline with lightweight CNNs (TensorFlow Lite) fed by the field dataset, keeping inference on-device.
  3. New modules: anemia (conjunctival pallor), otitis, malnutrition anthropometry.
  4. Integration with growth and vaccination check-ups, plus referral tracking to confirm the child actually reached the specialist.

Important: Vigía is a screening tool, not a diagnostic one. This build is an experimental prototype whose algorithms have not been clinically validated; it can produce false positives and false negatives, and it never replaces evaluation by a pediatrician or pediatric ophthalmologist.

A project of the Fundación Escuela Tecnológica de Neiva Jesús Oviedo Pérez (FET), Neiva, Colombia.

Built With

Share this project:

Updates

Submission history