DrishtiAI
Eye disease detection via vision agents. WebRTC, sub-1s, rural India.
Problem
ASHA health workers in rural India need to perform eye screenings without specialist access, on basic smartphones.
Built
4-service monorepo (Django, FastAPI, React Native, React Web) with a 5-layer computer vision pipeline. Ingest, preprocessing, inference, postprocessing, and multilingual voice output, all delivered over WebRTC.
sub-1s
response over WebRTC
5-layer
CV pipeline
multilingual
voice guidance
4-service
monorepo
The build
[Idea]
DrishtiAI was a 7-day build, and the constraint shaped everything. India has 12 million blind people, the largest blind population globally, and 80% of that blindness is preventable or treatable. The bottleneck isn't medicine or surgical capacity. It's early detection. ASHA workers visit every rural household but had no standardized AI-assisted screening tool.
[Framing]
The 7-day clock came from a hackathon framing (we were building for a friend's grant deadline), so the design had to be ruthlessly scoped. An ASHA app that records an eye exam, a server-side model that screens in real time, and a PHC dashboard that lets an admin review flagged cases. The Vision Agent runs at 3 FPS through 5 layers. MediaPipe Face Mesh for the 478-landmark eye ROI. OpenCV for JECI jaundice scoring and scleral redness. Roboflow inference for cataract, leukocoria, and strabismus classification (max 2 calls per session, these are slow). Moondream VQA for descriptive conditions. Gemini 2.5 Flash for clinical synthesis.
[Build]
The 5-layer design deliberately balances latency (layers 1-2 every frame) with accuracy (layer 3 throttled). WebRTC over Stream SDK carries the Android camera stream to a FastAPI service which runs the agent. The Django backend handles the relational side: family registry, session history, PHC admin API. The ASHA worker doesn't pick the conditions. They're auto-selected based on age, gender, pregnancy, and lactation. Multilingual voice (Hindi and Bengali) walks through the 7-step protocol. Every session ends with a referral recommendation, even when no findings are detected.
[Deploy]
We use Prometheus and Grafana to monitor per-layer latency, and that's where we catch regressions. The 4-service monorepo (Django, FastAPI, React Native, React Web) shipped via 9 Docker Compose services with one-command deploy.
[What's next]
What's next, if I keep going. HMAC-signed session audit logs. Real auth on the dashboard. A PoC of multi-tenant per-state deployment (Bengal first, then UP). The Medium write-up of the build is live, and it's the most-read thing on my Medium.
Stack
7 techs · grouped by layerBackend
- Django
- FastAPI
- WebSocket
- WebRTC
- RabbitMQ
Data layer
- PostgreSQL
AI / special
- OpenCV
Also used
Links
Related writing
1 post reference DrishtiAI- DrishtiAI: Building an AI Eye-Screening Agent for Rural India in 7 Days
medium · 10 min read · ai · computer-vision · webrtc · mobile