Project Info
Inspiration
Over 7 million Americans over 65 live with Alzheimer’s today, a number set to double by 2060. 1 in 9 older adults already face fading memories, and by 85, that risk climbs past 1 in 3. But memory loss isn’t inevitable, it’s a gap in design. We’re building MemARy, an AI wearable that sees what you see, hears what you say, and remembers what matters. Since most old people already wear glasses, why not wear it like Tony Stark. And for every Tony Stark who never forgets, MemARy will be the Jarvis for billions.
What it does
Memary is an AI-powered wearable interface that transforms visual and auditory inputs into structured, retrievable memory. Every few seconds or for every trigger (button press or saying the word, the device captures a frame from the user’s perspective, processes it through Reka's vision language model to extract semantic information: objects, spatial relations, colors, and contextual cues, and encodes that data into vector embeddings stored in a ChromaDB-based memory system. Users can interact with Memary through natural language, either by voice or text, to recall or store information, such as where they left important items. The system retrieves semantically relevant entries using vector similarity search, merges them with timestamped metadata, and returns precise and context-aware responses. Memary’s pipeline combines computer vision, LLM-based scene summarization, semantic embedding, and memory indexing, creating a continuous cognitive layer that enables human-like recall through AI.
How we built it
We engineered Memary as a modular, microservice-based system combining real-time perception, semantic understanding, and long-term memory storage. Using SnapAR and Lens Studio, we integrated our AI pipeline directly with Snap Spectacles, enabling the glasses to capture image frames, visualize UI for memory recall, and stream them to our backend. Each frame is processed by Reka’s Llama Vision Model, which generates a structured natural language summary that identifies objects, positions, specific characteristics, and contextual cues. The summaries are then embedded and stored in ChromaDB, our vector database layer, which enables high-speed semantic retrieval using cosine similarity. A FastAPI service mediates all data ingestion and querying, ensuring clean abstraction and multi-tenant control. On the client side, a React frontend provides the user interface for memory review and session selection along with memory dashboards, while PokMmCP powers semantic queries and synchronization between the phone and glasses. We also integrated LiveKit for low-latency speech-to-text processing, allowing users to add or recall memories through natural voice interaction. Together, this stack forms a continuous AI memory loop that enables real-time recall, just like having a grandmaster-level memory..
Challenges we ran into
Complex idea in a short timespan, the documentation of SnapAR being quite the challenge but rewarding at the end, rigorous execution websocket approach to video and audio input into the Spectacle device
Accomplishments we're proud of
Our idea, being broken down into smaller work functions, that when combined together as a group of microservices, produces an efficient and synergized product.
What we learned
Twinkling with a whole new development and product architecture in Snap Spectacles, the use of fabulous technologies by the sponsors that leveled up our production quality, and most importantly, thoughtful discussions makes complex missions possible.
What's next
for memARy Make it adaptable in any contextual use and eventually go beyond the market of old people with Alzheimer to everyone that does not want to forget anything, ever.
This repository has no readme, or GitHub could not be reached.
Analysis
View
Metric
- 21
- 1
- 1
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
- FastAPIIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- TypeScriptIn code
- Google GeminiClaimed
- ReactClaimed
- VercelClaimed
5 of 8 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
367 KB
Source files
66
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
AmaanBilwar/memARy
177 files · 9.6 MB · @ 7e1afcc
Structure
Interface
2 files · 1%Screens, components and styles rendered to the user.
API & routing
1 file · 1%Request entry points: routes, handlers and controllers.
Application logic
39 files · 22%Domain rules, services and shared utilities.
+6 more
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
- Python36%
- Markdown35%
- HTML18%
- TypeScript6%
- Shell4%
- JavaScript1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
api-service/requirements.txt
pypi · 8- fastapi[standard]
- httpx
- mcp
- pillow
- python-dotenv
- reka-api
- requests
- uvicorn[standard]
vector-store/requirements.txt
pypi · 7- chromadb
- colorama
- fastapi
- pydantic
- python-dotenv
- sentence-transformers
- uvicorn[standard]
vision-processor/requirements.txt
pypi · 5- opencv-python
- pillow
- python-dotenv
- reka-api
- requests
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.
Feature verification
ChromaDB Cloud persistence with local fallbackVerified
Cloud-Native Storage: ChromaDB Cloud integration for true persistence, with automatic local fallback if cloud unavailable
Claimed on readmehigh confidencevector-store/chroma_client.py:34— Tries chromadb.CloudClient first, falls back to chromadb.PersistentClient(path=PERSIST_DIR) on exception
ChromaDB-based vector embedding storageVerified
Encodes data into vector embeddings stored in a ChromaDB-based memory system
Claimed on Devposthigh confidencevector-store/chroma_client.py:34— Connects to chromadb.CloudClient (or PersistentClient fallback) as the vector store backendvector-store/embeddings.py:26— embed_texts() produces normalized embeddings for cosine similarity, used to populate ChromaDB collections
FastAPI backend serviceVerified
A FastAPI service mediates all data ingestion and querying
Claimed on Devposthigh confidenceapi-service/main.py:68— FastAPI app with dozens of routes for store/search/track/statisticsvector-store/app.py:88— Second FastAPI service dedicated to ChromaDB ingestion/querying
Flashcards for memory reinforcementVerified
Memory reinforcement with intelligent Q&A generation
Claimed on readmehigh confidenceapi-service/mcp_server.py:136— get_flashcards MCP tool generates Q&A flashcards from stored memories
Image capture and Reka vision analysis pipelineVerified
Device captures a frame and processes it through Reka's vision language model to extract objects, spatial relations, colors, and contextual cues
Claimed on Devposthigh confidencevision-processor/vision_reka.py:29— Calls Reka client with model reka-core-20240501 on an image to produce a structured scene summary including positions and spatial relationshipsapi-service/main.py:186— /store endpoint imports vision_reka.analyze_image and processes uploaded images through it
Item tracking with alertsVerified
Track important items with customizable alerts
Claimed on readmehigh confidenceapi-service/main.py:902— /track_item stores alert_hours per item and last_seen timestamp, checked against memory_store
MCP server integration with Claude DesktopVerified
Direct AI assistant access via Model Context Protocol; use with Claude Desktop, voice-to-memory, seamless queries
Claimed on readmehigh confidenceapi-service/mcp_server.py:37— Implements MCP list_tools/call_tool with store_memory, search_memories, get_timeline, track_item, get_statistics, get_flashcards tools over the mcp SDK
Natural language store and recall (text/voice)Verified
Users can interact through natural language, either by voice or text, to recall or store information
Claimed on readmehigh confidenceapi-service/main.py:278— /store_text endpoint converts free text descriptions into structured memory entriesapi-service/mcp_server.py:41— MCP tool store_memory/search_memories exposes natural-language store and search to an AI assistant like Claude Desktop
Object relationship learningVerified
Automatically learns which items are seen together
Claimed on readmehigh confidenceapi-service/main.py:317— Updates an in-memory object_relationships co-occurrence map whenever a memory with multiple objects is stored, exposed via /relationships
Periodic and trigger-based captureVerified
Every few seconds or for every trigger (button press or saying the word), the device captures a frame
Claimed on Devposthigh confidencevision-processor/capture_scheduler.py:19— CaptureScheduler supports both a fixed interval loop (default 30s) and manual trigger_capture() calls with debounce
Statistics dashboardVerified
Analytics on your memories and patterns
Claimed on readmehigh confidenceapi-service/main.py:748— /statistics endpoint aggregates counts, objects, and timeline data from memory_store
Timeline view of memoriesVerified
See memories grouped by date (Today, Yesterday, Last Week)
Claimed on readmehigh confidenceapi-service/main.py:836— Builds a timeline structure grouping memory_store entries into date bucketsapi-service/mcp_server.py:84— get_timeline MCP tool exposes the same grouped-by-date view
Web/HTML test interfaceVerified
Web interface for storing and searching memories (Option 3 in README)
Claimed on readmehigh confidenceweb-test/index.html:1— 1810-line standalone HTML/JS page implementing text-to-JSON conversion and memory search UI, matches README's 'Web Interface' usage instructions
Cloud deployment (Railway)Code-supported
Deploy to Railway and let others access your Remembar instance
Claimed on readmelow confidenceapi-service/Procfile— Procfile present for platform deployment, but no Railway-specific config files were inspected beyond doc references
Multi-tenant controlCode-supported
FastAPI service ensures clean abstraction and multi-tenant control
Claimed on Devpostmedium confidencevector-store/app.py:335— search_semantic filters ChromaDB queries by tenant_id, and add_frame/query_by_item accept tenant_id, suggesting basic per-tenant scoping rather than full multi-tenant isolation/auth
SnapAR / Lens Studio integration with Snap SpectaclesCode-supported
Using SnapAR and Lens Studio, integrated the AI pipeline directly with Snap Spectacles, capturing frames and streaming to the backend
Claimed on Devpostmedium confidenceVoiceThing/Assets/SpectaclesToLivekit.ts:12— Lens Studio component using CameraModule/InternetModule to stream camera frames from Spectacles over a WebSocket to a backend servermemARyLENS/Assets/Scripts/MicScript.ts:15— Uses Spectacles' AsrModule for on-device speech recognition triggered by a UI button
Vector similarity search for recallCode-supported
The system retrieves semantically relevant entries using vector similarity search, merges them with timestamped metadata
Claimed on Devpostmedium confidencevector-store/app.py:320— search_semantic endpoint embeds the query and runs a real ChromaDB cosine-similarity queryapi-service/main.py:566— The main-facing /search endpoint that users/voice/MCP actually call does plain keyword substring matching over an in-memory list; it never calls vector-store's search_semantic, so the claimed vector-similarity recall path is not wired into the live user flow
LiveKit for low-latency speech-to-textClaimed only
Integrated LiveKit for low-latency speech-to-text processing, allowing users to add or recall memories through voice
Claimed on Devpostmedium confidencePokéMCP for phone/glasses syncClaimed only
PokMmCP powers semantic queries and synchronization between the phone and glasses
Claimed on Devpostmedium confidenceReact frontend for memory review and dashboardsClaimed only
A React frontend provides the user interface for memory review and session selection along with memory dashboards
Claimed on Devpostmedium confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.