Skip to content

amogharyan/marvin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

95 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Marvin AR Morning Assistant

A revolutionary AR-powered morning assistant built for Snap Spectacles that transforms your daily routine with intelligent, contextual guidance.

πŸ“‹ Project Overview

Timeline: 36-Hour MLH Hackathon
Team Size: 4 Developers
Target Platform: Snap Spectacles (2024)
Architecture: Supabase-Focused Integration

Core Features

  • Real-time Object Recognition - Identifies 5 demo objects (bowl, laptop, keys, medicine, phone)
  • Gemini Live WebSocket - Direct real-time visual understanding and natural language processing
  • Voice Synthesis - ElevenLabs Conversational AI Platform for natural voice interactions
  • Adaptive Learning - Letta Cloud for stateful memory + Chroma vector embeddings
  • AR Overlays - Contextual information displayed in real-world space with <100ms latency

πŸ—οΈ Architecture

This is a Lens Studio project with Supabase Edge Functions backend:

marvin/
β”œβ”€β”€ marvin-main/              # Dev 1: Lens Studio (AR + Gemini WebSocket + InternetModule)
β”‚   └── Assets/Scripts/       # TypeScript components for Spectacles
β”œβ”€β”€ snap-cloud/               # Dev 2: Supabase Edge Functions (AI processing)
β”‚   └── functions/            # ai-coordination, letta-sync, voice-synthesis
β”œβ”€β”€ supabase/                 # Dev 3: Supabase Backend (Database + Realtime + Storage)
β”‚   └── migrations/           # Database schema and RLS policies
β”œβ”€β”€ __tests__/                # Dev 4: Integration Tests (TDD framework)
└── docs/                     # API documentation

Developer Responsibilities

Developer Focus Key Deliverables
Dev 1 Lens Studio AR Object detection, AR overlays, Gemini WebSocket, InternetModule HTTP
Dev 2 Edge Functions Fix mocks, add Letta/ElevenLabs/Chroma integration
Dev 3 Supabase Backend Database schema, RLS policies, Realtime, Storage
Dev 4 TDD & DevOps Testing framework, integration tests, CI/CD, merges

πŸ“š Documentation

Essential Documents

API References

πŸš€ Quick Start

Prerequisites

  • Lens Studio 5.15.0+
  • Git with LFS: brew install git-lfs && git lfs install
  • Node.js 20 LTS
  • Supabase CLI: npm install -g supabase
  • Spectacles (2024) device with OS v5.64+

Installation

⚠️ IMPORTANT: Must clone with Git LFS (do not download ZIP)

# Install Git LFS first
brew install git-lfs
git lfs install

# Clone repository
git clone https://github.com/amogharyan/marvin.git
cd marvin

# Install dependencies
npm install

# Initialize Supabase
cd snap-cloud
supabase init
supabase start

Setup by Developer

Dev 1: Lens Studio

# Open Lens Studio project
open marvin-main/Marvin.esproj

# Install required packages in Lens Studio:
# - Remote Service Gateway Token Generator
# - SpectaclesInteractionKit.lspkg
# - SupabaseClient.lspkg (from Supabase example)
# - Internet Module.internetModule (from Supabase example)

# Set Device Type to "Spectacles (2024)" in Preview Panel

Dev 2: Edge Functions

cd snap-cloud

# Create Edge Functions
supabase functions new ai-coordination
supabase functions new letta-sync
supabase functions new voice-synthesis

# Set secrets
supabase secrets set GEMINI_API_KEY=your_key_here
supabase secrets set ELEVENLABS_API_KEY=your_key_here
supabase secrets set LETTA_API_KEY=your_key_here

# Deploy
supabase functions deploy

Dev 3: Database

cd snap-cloud

# Create and run migrations
supabase migration new initial_schema
# Edit migration file, then:
supabase db push

# Set up Realtime
# (See INTEGRATION_GUIDE.md for detailed schema)

Dev 4: Testing

# Install test dependencies
npm install --save-dev jest ts-jest @types/jest

# Run tests
npm test

# Set up CI/CD
# (GitHub Actions workflows already in .github/workflows/)

🎯 Development Workflow

Phase 1: Foundation (Hours 0-8)

All developers work in parallel:

  • Dev 1: Object detection + AR overlays + Gemini WebSocket
  • Dev 2: Create Edge Functions structure + fix mocks
  • Dev 3: Database schema + RLS policies
  • Dev 4: Write failing tests (TDD)

Hour 8 Checkpoint: All devs merge to develop branch

Phase 2: Integration (Hours 8-16)

  • Dev 1: Add InternetModule HTTP calls to Edge Functions
  • Dev 2: Integrate real APIs (Gemini, ElevenLabs, Letta, Chroma)
  • Dev 3: Realtime subscriptions + Storage buckets
  • Dev 4: Integration testing

Hour 16 Checkpoint: Full integration working end-to-end

Phase 3: Demo Polish (Hours 16-36)

  • Hours 16-24: Advanced features + demo optimization
  • Hours 24-30: Testing + refinement + rehearsal
  • Hours 30-36: Final preparation + backup systems

See tasklist.md for complete hour-by-hour breakdown.

πŸ§ͺ Testing

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run integration tests
npm run test:integration

# Check TypeScript compilation
npm run type-check

# Lint code
npm run lint

πŸ“¦ Project Structure


To upgrade:

```sh
brew upgrade supabase
Windows

Available via Scoop. To install:

scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase

To upgrade:

scoop update supabase
Linux

Available via Homebrew and Linux packages.

via Homebrew

To install:

brew install supabase/tap/supabase

To upgrade:

brew upgrade supabase

via Linux packages

Linux packages are provided in Releases. To install, download the .apk/.deb/.rpm/.pkg.tar.zst file depending on your package manager and run the respective commands.

sudo apk add --allow-untrusted <...>.apk
sudo dpkg -i <...>.deb
sudo rpm -i <...>.rpm
sudo pacman -U <...>.pkg.tar.zst
Other Platforms

You can also install the CLI via go modules without the help of package managers.

go install github.com/supabase/cli@latest

Add a symlink to the binary in $PATH for easier access:

ln -s "$(go env GOPATH)/bin/cli" /usr/bin/supabase

This works on other non-standard Linux distros.

Community Maintained Packages

Available via pkgx. Package script here. To install in your working directory:

pkgx install supabase

Available via Nixpkgs. Package script here.

Run the CLI

supabase bootstrap

Or using npx:

npx supabase bootstrap

The bootstrap command will guide you through the process of setting up a Supabase project using one of the starter templates.

Docs

Command & config reference can be found here.

Breaking changes

We follow semantic versioning for changes that directly impact CLI commands, flags, and configurations.

However, due to dependencies on other service images, we cannot guarantee that schema migrations, seed.sql, and generated types will always work for the same CLI major version. If you need such guarantees, we encourage you to pin a specific version of CLI in package.json.

Developing

To run from source:

# Go >= 1.22
go run . help

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors