A mobile-first AI cultural lens that turns the world around you into context.
LoreLens is a camera-based cultural interpretation app. Point your phone at an object, building, street detail, artifact, or landmark, and LoreLens uses Gemini to explain what it is, why it matters, and how to understand it across cultures.
Instead of giving a plain label, LoreLens tries to produce a small piece of cultural insight: the name, the essence, a cross-cultural analogy, the deeper philosophy, and one thing to look for next.
- Captures or uploads an image
- Lets the user crop the important region before analysis
- Sends the image to a server-side Gemini endpoint
- Uses optional location context for landmark-aware interpretation
- Returns a structured explanation with cultural and historical context
- Saves discoveries into local history
- Shows discovered places on a map
- Generates text-to-speech audio for explanations
- Creates a daily recap of the user's discoveries
- Supports multiple interface languages
Most travel and museum apps answer: "What is this?"
LoreLens tries to answer a better question:
"Why should I care about this?"
It is designed for moments when a user sees something unfamiliar in the real world and wants an explanation that is fast, visual, contextual, and emotionally memorable.
LoreLens analyzes an image and returns a structured result:
title— the likely name of the object or placeessence— a short explanation of what it ismirrorInsight— a cross-cultural analogyphilosophy— the deeper historical or cultural logicquickAction— a suggestion for what to observe next
When location permission is available, LoreLens can pass latitude and longitude to the backend so Gemini can use map grounding for nearby landmarks.
If location is unavailable, the app falls back gracefully and still analyzes the image.
The app is built around a phone-like scanning flow:
- camera viewfinder
- image capture
- crop confirmation
- analysis overlay
- result drawer
- history and map views
The camera is turned off when not needed to reduce battery drain and device heat.
Each analyzed item can be saved with:
- title and explanation
- thumbnail
- timestamp
- optional location
This turns a walk through a city into a personal cultural memory trail.
LoreLens can summarize the user's discoveries into a reflective daily card with:
- travel-journal style summary
- cultural resonance score
- mood
- tags
- user archetype
- philosophical take
The app supports responses and UI settings for:
- English
- Simplified Chinese
- Japanese
- Spanish
- French
- Russian
- Arabic
- React
- TypeScript
- Vite
- Express
- Gemini API via
@google/genai - Leaflet and marker clustering
- Zustand
- i18next
- Tailwind CSS
- Vite PWA tooling
LoreLens/
├── App.tsx # Main app flow and camera lifecycle
├── server.ts # Express server and AI/API routes
├── services/
│ └── geminiService.ts # Client-side calls to backend AI endpoints
├── components/ # UI views and reusable interface components
├── store/ # Zustand settings and history stores
├── types.ts # Shared TypeScript types
└── package.json # Scripts and dependencies
- Node.js
- A Gemini API key
npm installCreate a local environment file and add your API key:
GEMINI_API_KEY=your_gemini_api_key_hereThe server also supports:
API_KEY=your_gemini_api_key_hereOptional:
UNSPLASH_ACCESS_KEY=your_unsplash_access_key_herenpm run devThe app runs through the Express/Vite server at:
http://localhost:3000
npm run buildnpm startThe app uses a small Express backend to keep API keys off the client.
POST /api/gemini/decipher— analyzes an image and returns cultural contextPOST /api/gemini/speech— generates audio from textPOST /api/gemini/recap— generates a daily discovery recapGET /api/nominatim/reverse— reverse geocoding proxyGET /api/unsplash— image search proxyPOST /api/unsplash/download— Unsplash download tracking proxy
| Name | Purpose |
|---|---|
GEMINI_API_KEY |
Gemini API key |
API_KEY |
Alternative Gemini API key name |
UNSPLASH_ACCESS_KEY |
Optional Unsplash API key |
LoreLens is an early prototype built from an AI Studio app and expanded into a full-stack React + Express project.
The current version focuses on:
- visual cultural interpretation
- location-aware context
- mobile-first scanning
- personal discovery history
- multilingual output
- Improve landmark confidence and source display
- Add shareable discovery cards
- Add richer map timeline playback
- Add offline-first history export
- Improve onboarding and permission flow
- Add tests for API routes and parsing logic
- Add deployment documentation
This project currently does not specify a license.