Project Info
Inspiration
Over 285 million people globally live with vision impairment, out of which 39 million are completely blind. Every single day, they face obstacles most of us never notice, like a misplaced chair, a stairwell with no railing, a silent car approaching from the side, and more. Our goal was to deliver a solution that delivers real-time, actionable guidance, translating vision into safe and clear next steps. By combining the phone’s camera, depth sensing, and AI voice interaction, it helps people move safely with confidence, empowering Accessibility for ALL.
What it does
LookOut listens to the user’s voice input, scans the surroundings through the phone camera, and uses an AI model to detect obstacles in real time. It then responds with short, clear directions on where to go, using depth and clock-based cues to describe obstacles and safe paths. The system is designed for low latency so guidance feels instant and natural, giving blind and low-vision users the confidence to move safely.
How we built it
We decided to try LiveKit for low latency and first implemented and tested our setup in the Agents Playground. From there, we leveraged a Python agent on LiveKit Agents to receive video streams, run reasoning with the Gemini Live API, and send back speech within the same session. We also used LiveKit’s data channel for basic controls such as start and stop listening and switching between front and rear cameras.
Challenges we ran into
At first we built a setup using Omi hardware for voice and a separate camera integration on web side using Next.js, React, and TypeScript, but connecting the two with low latency proved difficult and often left the user waiting. When we switched fully to LiveKit , the system became faster, more stable, and far more reliable. One of our hardest challenges was keeping the camera feed and spoken responses in sync, especially when the network was weak. After carefully tuning the audio and video pipeline we finally achieved a smooth, natural flow that felt responsive instead of robotic. Just as critical, we realized that long or cluttered instructions could overwhelm the user. The model had to speak in short, precise, and accurate phrases that guided the way without confusion. Through this process we also learned how refining the system prompt itself improved accuracy. By teaching the model to focus on depth and clock-based directions, it began to describe obstacles and safe paths in a way that blind and low-vision users could trust instantly.
Accomplishments we're proud of
We are proud that we turned an ambitious idea into a working prototype within the hackathon. Our biggest accomplishment was achieving real-time guidance with low latency, where the camera feed, AI reasoning, and spoken responses stayed in sync. We successfully integrated LiveKit with the Gemini Live API and refined the system prompt so the model could deliver short, accurate, and natural instructions instead of overwhelming users. Another accomplishment was designing the interaction to feel intuitive: the app listens to the user, scans the environment, and replies instantly with depth and clock-based cues. Most importantly, we built something that has the potential to replace hesitation with confidence for blind and low-vision users!
What we learned
We learned how challenging and important it is to keep audio, video, and model responses perfectly in sync. At first, small delays made the interaction feel unreliable, but through testing and fine-tuning we discovered how to optimize LiveKit for low latency, so guidance feels instant and natural. We also learned how much the quality of the system prompt affects the model’s performance. By refining the prompt to focus on short, accurate, and context-aware directions, we improved both the clarity and reliability of the responses. Together, these lessons taught us not only technical skills in streaming and real-time AI but also how critical it is to design for user trust and confidence.
What's next
for Lookout: AI Guidance for Blind Navigation The next step for LookOut is integrating maps and destination-based navigation. Right now, the system guides users safely through their immediate surroundings, but we envision combining that with turn-by-turn directions so a user can choose a destination and receive both obstacle avoidance and route guidance in one experience. This will allow LookOut to not only prevent collisions but also help blind and low-vision users reach where they need to go with independence and confidence. Video- https://www.facebook.com/61582589294855/videos/1139565257807161/
LookOut
oLookOut.tech
Contributors: Gauri Jain · Samanyu Kumar · Victor Cruz · Aidan Gu
Voice-powered guidance for blind and low-vision users, combining real-time computer vision with turn-taking voice and Google Maps navigation.
Setup
Prerequisites
- Node.js ≥ 18 and npm (or pnpm)
- Python ≥ 3.11
- LiveKit Cloud project credentials
- Google API keys (Gemini + Maps)
Analysis
View
Metric
- 8
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Google GeminiClaimed
- JavaScriptClaimed
- Node.jsClaimed
- SwiftClaimed
6 of 10 appear in the indexed code. 4 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
221 KB
Source files
72
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
AidanGu/LookOut
88 files · 3.6 MB · @ ae0bfe9
Structure
Interface
64 files · 73%Screens, components and styles rendered to the user.
API & routing
1 file · 1%Request entry points: routes, handlers and controllers.
Application logic
6 files · 7%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript91%
- CSS4%
- Python3%
- Markdown2%
- YAML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 22- @vercel/analytics
- class-variance-authority
- clsx
- jose
- livekit-client
- livekit-server-sdk
- lucide-react
- next
- react
- react-dom
- server-only
- tailwind-merge
- tailwindcss-animate
- tw-animate-css
- +8 more
agent/requirements.txt
pypi · 4- googlemaps
- livekit-agents[google,images,turn-detector]
- livekit-plugins-noise-cancellation
- python-dotenv
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.