Skip to content

aaditraj/Wavelength

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

128 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wavelength — The Autonomous Social Concierge

Deciding what to do with friends shouldn't take longer than actually doing it.

Connect your Spotify, Letterboxd, Goodreads, Steam, and food photos. Wavelength builds a living taste profile, matches you with friends, and lets an AI mediator negotiate plans on your behalf.


Setup

Backend (Python 3.11 required)

cd backend
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env   # fill in real values
python3.11 -m uvicorn main:app --reload
# Runs at http://localhost:8000 — docs at /docs

Frontend

cd frontend
npm install
cp .env.example .env   # fill in real values
npx expo start --clear
# i = iOS simulator | a = Android | scan QR = Expo Go

Env vars needed

File Required keys
backend/.env MONGODB_URI, SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, JWT_SECRET, GEMMA_API_KEY
frontend/.env EXPO_PUBLIC_API_URL, EXPO_PUBLIC_SPOTIFY_CLIENT_ID

How It Works

Stack: React Native + Expo (TypeScript) · FastAPI (Python 3.11) · MongoDB Atlas · Google Gemma 3-4B · Fetch.ai uAgents

1. Taste Profiles

Connect platforms from your profile screen. Each integration is normalized into a unified taste vector stored in MongoDB:

  • Spotify — OAuth, fetches top genres/artists/tracks
  • Letterboxd — ZIP export upload
  • Goodreads — CSV export upload
  • Steam — Steam ID lookup
  • Food — photo screenshots analyzed by Gemma vision
  • Other — free-text likes/dislikes

2. The Blend Engine

When two or more users connect, a Neutral Agent (Gemma 3-4B) computes a Blend across six categories — music, film, food, books, games, and other. Each category shows an overlap score, a summary, and shared favorites. Falls back to algorithmic Jaccard similarity if Gemma is unavailable.

3. Palette & Chat

Every friend connection creates a shared Palette with two tabs:

  • Palette — compatibility breakdown per category
  • Chat — real-time group chat (3s polling); the AI mediator's negotiation steps appear inline

4. Negotiation Agent

Trigger planning with a natural language prompt. A multi-agent loop runs in-process — Mediator + per-user agents exchange preference summaries, proposals, and votes (max 3 rounds). Results are written directly to the chat thread.

5. Concierge Chatbot

A floating button on every authenticated screen opens a personal AI assistant that knows you and all your friends' taste profiles. Ask it anything: "Which of my friends would enjoy a Clairo concert?" or "It's Alex's birthday — gift ideas?"


Stop negotiating. Start experiencing.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors