Inspiration

Navigating large hospitals, universities, and malls is a universal pain point. Most people suffer from "Wayfinding Anxiety" when faced with static, confusing physical signage. We realized that while outdoor navigation is solved by GPS, indoor navigation remains stuck in the past because digitizing a building's interior is tedious and expensive. We wanted to build a solution that makes indoor spaces as searchable and navigable as the web, specifically focusing on accessibility for those who need "stairs-free" routes.

What it does

NavX is an intelligent indoor navigation platform.

  • For Admins: Simply upload a floor plan. Gemini 3 "sees" the map, identifies rooms, and automatically creates a digital coordinate grid.
  • For Users: Select a destination, and the app calculates the shortest path using a custom graph algorithm.
  • The AI Twist: Instead of just a line on a map, Gemini 3 generates a "Walking Guide"—real-time, voice-guided instructions that identify landmarks (e.g., "Pass the library on your right") and manage multi-floor transitions.

How we built it

The project is built on a modern Next.js and MongoDB stack, but the "brain" is a hybrid of classical algorithms and generative AI:

  1. Spatial Logic: We implemented Dijkstra’s Algorithm to find the shortest path. Given a graph G = (V, E) with edge weights w(u, v), the algorithm finds the shortest path P from source s to destination d by minimizing:$$\min \sum_{(u,v) \in P} w(u,v)$$

  2. Multimodal AI: We used the Gemini 3 Flash API for two critical tasks:

  3. Image-to-Data: Using Gemini’s 1000x1000 normalized coordinate system to detect room labels on uploaded floor plans.

  4. Instruction Synthesis: Transforming raw node coordinates into natural language walking directions.

  5. Frontend: We used Tailwind CSS for a responsive UI and the Web Speech API for voice-assisted navigation at a controlled speaking rate.

Challenges we ran into

  • Coordinate Drift: Initially, AI-detected nodes were misaligned. We solved this by switching from percentage-based guessing to Gemini’s normalized spatial units, which we then mapped to image pixels using: $$\text{Pixel}_x = \left( \frac{\text{Gemini}_x}{1000} \right) \times \text{ImageWidth}$$
  • API Latency: Generating a new AI summary every time a user looked at the map was slow. We implemented a caching layer using SWR to store summaries for specific path segments, making the experience feel instantaneous.
  • State Management: Handling pathfinding across multiple separate map images (different floors) required a complex state machine to ensure the user knew when to "Continue" to the next level.

Accomplishments that we're proud of

  • Zero-Manual Entry: We successfully built a system where an admin can digitize an entire floor plan in seconds using AI vision.
  • Human-Centric Design: Creating a navigation assistant that feels like a human guide rather than a robotic GPS.
  • Accessibility Integration: Successfully implementing a "Stairs-Free" filter that reroutes users through elevators, specifically designed for those with mobility impairments.

What we learned

We learned that multimodal AI is far more than just a chatbot. Using Gemini 3 as a Spatial Reasoning Engine opened our eyes to how AI can interact with the physical world (via maps). We also gained deep experience in graph theory, SVG manipulation, and the importance of "Edge-Case Navigation" (what happens when a user is between floors?).

What's next

Our goal is to implement Augmented Reality (AR) overlays, allowing users to hold up their phone and see the Gemini-generated path projected directly onto the floor in front of them. We also plan to add "Crowd-Sourced Obstacles," where users can report a blocked hallway, and Gemini will instantly recalculate a new path for everyone else.

Built With

  • anti-gravity
  • antigravity
  • apicaching
  • caching
  • dijkstra
  • firebase
  • framermotion
  • gemini
  • gemini3
  • geminiapi
  • google
  • lucidereact
  • next.js
  • swr
  • swr-(api-caching)
  • tailwind
  • tailwind-css
  • tailwindcss
  • typescript
  • web
  • websearchapi
Share this project:

Updates