Project Info
The
Inspiration
More than 20 million Americans experience visual impairment, with 1 million classified as legally blind. For many, navigating indoor spaces independently is a significant challenge, limiting daily activities and self-sufficiency. While outdoor navigation solutions—powered by GPS and mapping services like Google Maps—are widely available, indoor navigation remains a relatively unsolved problem due to the lack of reliable spatial data and GPS limitations. Given that people spend most of their time indoors, the status quo is the reverse of what we need. We set out to create an intuitive, lightweight, and accessible indoor navigation aid for the visually impaired. With the rise of advanced video capture technology—such as the Apple Vision Pro and Meta Ray-Ban glasses—we saw an opportunity to harness computer vision and wearable technology to make indoor spaces more navigable for those with visual impairments. What Miru Does Miru is an indoor navigation tool for the blind, effectively serving as an indoor Google Maps. Miru provides real-time, step-by-step guidance to help visually impaired users navigate complex indoor environments with ease. A picture of the floor plan of the building—readily available on fire escape plans near elevators or fire extinguishers—is uploaded to Miru, which automatically generates waypoints and pathfinding routes. The user wears a pair of Meta Ray-Ban smart glasses for real-time visual input and localization, and a servo-fitted belt provides gentle haptic feedback to guide movement, ensuring a non-intrusive and intuitive experience. By integrating wearable technology with intelligent navigation, Miru empowers visually impaired individuals to move confidently and independently in indoor spaces. How We Built It To convert fire escape plans into functional map data, we implemented Canny edge detection, extracting key architectural features such as walls and doors. Analyzing the map, we then generated waypoints, followed by A* pathfinding to compute optimal navigation routes. Live video footage was acquired through Meta’s Ray-Ban glasses. We tried to use streaming through Instagram to acquire the footage, but realized there was around 30 seconds of latency which wouldn't work. We found that streaming footage to WhatsApp provided data much faster, with less than 1 second of latency. We also had the challenge of extending sensory capabilities to the visually impaired; in particular, a system that could reliably provide direction. We ended up deciding on creating a wearable belt, created using servos as a tactile feedback mechanism, and it has five servos capable of generating directional instructions (left, right, forward, left-forward, right-forward). As the user turns around, we use our orientation mechanisms to provide feedback in the correct direction. Localization—identifying the user's real-time position indoors—was one of our most challenging tasks. Specifically, because it is impossible to access GPS, no indoor navigation system that relies on GPS will work. Our innovative approach involved two key steps: First, we generated a reference dataset of approximately 1,500 geotagged images in the building and embedded them using CLIP. We stored the vectors in an database using Vespa AI. We then embedded the live footage from the Ray-Ban and queried for similar images in the Vespa vector database. Then through the most similar images we averaged the coordinate metadata that we got from those images. Most importantly was filtering, after gathering these coordinates we compared it to the data we already had and would throw out any values that were greater than 5.0 meters away from the current pose. As much as we tried to reduce noise, there will always be noise in a system and filtering is something we can always work to improve. Besides localization, determining orientation was also crucial for our project’s success. We built our own iOS compass app that could interact with our websocket system using the iOS compass data to determine orientation and integrated it with a wearable utility built to guide user interaction. We found a bug in the iOS compass app, where the compass would drift randomly for no apparent reason. This resulted in even more pain as it meant that we had one less source of truth to trust. Challenges We Ran Into We immediately ran into latency issues with Meta’s Ray-Ban glasses. Previous projects we’d looked at involving Meta Ray-Ban glasses streamed the Ray-Ban footage to Instagram Live, because Meta Ray-Ban glasses are incapable of natively streaming to a laptop. Instagram Live, however, had a stream delay of ~30 seconds. We resolved this issue by streaming to WhatsApp and mirroring the phone screen onto a laptop, providing latency of <1 second. Parsing through vector embeddings via OpenAI’s vision model meant high latency, which was undesirable for real-time use. As a result, we opted to use Vespa AI’s API for efficient updates and queries. The most difficult challenge we ran into was localization. Determining where a user was proved extremely challenging, and we opted to use computer vision and similarity detection to determine the location of the user. Orientation was also an issue. Initially, we tried using tri-sensor IMU fusion, but sensor drift rendered IMUs inaccurate. We managed to pull iOS compass data as an effective and simple method of determining user orientation. Accomplishments We’re Proud Of We’re extremely proud of the progress we were able to make in just 36 hours. Prior to this hackathon, none of us had extensive experience with remote sensing, and we’re proud that we were able to develop a real-time, GPS-free indoor navigation system that required only a floor plan and live video feed. This serves as a simple alternative to beacon-based positioning. We’re also happy that we were able to create a functional and intuitive haptic feedback system that allows users to “see” through feel. We think that localization is one of the most difficult challenges within robotics and we think that the new age of AI has so much potential and ability to help robots better understand the world around us. What We Learned We learned how to work extensively with computer vision, vector embeddings, basic hardware, and software integration, all of which were extremely challenging but rewarding to work with. We also learned how to integrate software with hardware for an intuitive and powerful experience. What’s Next for Miru A few ideas we hope to implement: Multi-Floor Path Finding: It’d be cool to direct users to stairwells and elevators and enable travel across more than just one floor. SLAM-Powered Real-Time Mapping: If done effectively, using Simultaneous Localization and Mapping (SLAM) would allow us to dynamically build and update indoor maps without the need for reference images—saving a lot of time. Scaling to Large-Scale Public Spaces: Expanding to airports, malls, hospitals, and transit hubs would enable us to provide invaluable services to the visually impaired in more than just small buildings. We hope that while we had to create our own dataset to query from for the Huang building, often-visited locations like train stations and museums have publically available floor plans and Google maps data that our system can easily apply into.
🏠 Miru: Indoor Navigation for the Visually Impaired
🏆 Treehacks 2025 - Best Use of VLMs
🚀 Inspiration
Over 20 million Americans experience visual impairment, with 1 million classified as legally blind. While GPS-based navigation tools exist for outdoor spaces, indoor navigation remains a major challenge due to GPS limitations and lack of reliable spatial data.
With the rise of smart glasses like Meta Ray-Ban and Apple Vision Pro, we saw an opportunity to harness wearable technology and computer vision to empower visually impaired individuals with independent indoor mobility.
How It Works
Miru is an indoor navigation system for the visually impaired, providing real-time, step-by-step guidance using a combination of floor plans, wearable smart glasses, and haptic feedback.
-
Upload a Floor Plan
- Extracts architectural features using Canny edge detection.
- Generates waypoints and navigation paths using A* pathfinding.
-
Wear Meta Ray-Ban Smart Glasses
- Streams live video for real-time localization.
- Uses WhatsApp streaming to minimize latency (<1s).
-
Receive Haptic Feedback via a Servo Belt
- A wearable servo motor belt provides tactile feedback to guide movement.
- Supports five directional instructions: left, right, forward, left-forward, right-forward.
🛠️ How We Built It
🗺 Indoor Mapping & Navigation
- Converted fire escape plans into navigable maps using computer vision.
- Pathfinding performed with A algorithm* for optimal routes.
📍 Real-Time Localization
- Captured 1,500+ geotagged images and embedded them using CLIP.
- Stored in Vespa AI vector database for efficient querying.
- Filtered out noisy location data (>5m deviation).
🎯 Orientation & Feedback
- Developed an iOS compass app to determine direction.
- Integrated a haptic belt with servo motors for non-visual navigation.
🚧 Challenges We Faced
-
High Latency in Ray-Ban Streaming
- Meta Ray-Ban glasses do not support native laptop streaming.
- Solution: Streamed via WhatsApp instead of Instagram Live, reducing latency from 30s to <1s.
-
Localization Without GPS
- GPS does not work indoors, making navigation extremely difficult.
- Solution: Used computer vision and vector search instead of traditional GPS.
-
IMU Sensor Drift for Orientation
- Solution: Used iOS compass data for more accurate direction sensing.
🎉 Accomplishments We're Proud Of
✅ Built a real-time, GPS-free indoor navigation system in just 36 hours.
✅ Created an intuitive haptic feedback belt for non-visual navigation.
✅ Successfully integrated computer vision, vector embeddings, and hardware into a seamless user experience.
🔮 What’s Next?
🔹 Multi-Floor Navigation – Guide users across stairwells & elevators.
🔹 SLAM-Based Real-Time Mapping – Dynamically update maps without reference images.
🔹 Scaling to Public Spaces – Expand to airports, malls, hospitals, and transit hubs using public floor plans.
Devpost:
Analysis
View
Metric
- 12
- 6
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
- FastAPIIn code
- HTMLIn code
- Hugging FaceIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- PyTorchIn code
- ReactIn code
- SwiftIn code
- Tailwind CSSIn code
- TypeScriptIn code
12 of 12 appear in the indexed code.
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
87 KB
Source files
43
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
flatypus/miru
87 files · 1006 KB · @ 26fd79f
Structure
Interface
7 files · 8%Screens, components and styles rendered to the user.
API & routing
16 files · 18%Request entry points: routes, handlers and controllers.
Application logic
35 files · 40%Domain rules, services and shared utilities.
+5 moreData & schema
2 files · 2%Schema definitions, migrations and data access.
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
- Python43%
- TypeScript36%
- Swift8%
- Markdown6%
- XML5%
- HTML2%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
site/package.json
npm · 17- @maptiler/leaflet-maptilersdk
- @uidotdev/usehooks
- leaflet
- next
- react
- react-dom
- react-leaflet
- +10 more
requirements.txt
pypi · 11- elevenlabs
- groq
- keyboard
- mss
- numpy
- openai
- pillow
- PyAudio
- python-dotenv
- torch
- transformers
api/pyproject.toml
pypi · 3- fastapi
- pyserial
- uvicorn[standard]
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.