Your Personal Tasting Universe โ Record, visualize, and explore your tasting journey through an immersive 3D star map.
ๅณๆๅฝๅค๏ผๅฟๆๆ่ฎฐ โ Taste has a home, memory has a record.
TasteVerse is a personal tasting journal that transforms your flavor experiences into an interactive 3D universe. Every coffee, tea, wine, meal, or dessert you taste becomes a glowing star in your personal cosmos. Shared flavors form constellation-like links, revealing hidden connections across your palate.
Built with React and Three.js, TasteVerse combines rich data entry with a visually stunning WebGL-powered exploration interface, an AI-powered sommelier chat assistant, and optional cloud synchronization.
The flagship feature โ a force-directed 3D star map where each tasting record is a node.
- Nodes are glowing spheres sized by score and visit count, with orbiting rings and comet particles
- Links connect related tastings: same-category, shared tags, and taxonomy relationships
- Environment includes 7,000+ stars, nebula clouds, dust particles, and dramatic multi-color lighting
- Interactive orbit camera with click-to-focus, search filtering, and category isolation
Comprehensive data capture for every tasting experience:
- Product name with fuzzy duplicate detection
- 0โ10 scoring system
- Flavor tags (freeform, enter-to-add)
- Tasting notes
- Price tracking (unit price or per-person average)
- Location / venue
- Photo upload
- Visit tracking โ re-taste the same product over time, building a longitudinal flavor profile
Organize tastings with a flexible two-level taxonomy:
- 5 default categories: Coffee โ, Tea ๐ต, Wine ๐ท, Chinese Food ๐ฅข, Dessert ๐ฐ
- Create custom categories with your own icon, name, color, and parent group
- Grid view with per-category statistics (average score, record count, popularity)
- Click any category to see all its records or isolate it in the 3D graph
Browse your tasting history by date:
- Monthly calendar with colored dots marking tasting days
- Day detail panel showing all records for the selected date
- Mini 3D cluster visualization per day
- Tag clouds and taste profiles for each day
An embedded AI chat assistant for intelligent tasting analysis:
- Natural-language chat for flavor queries and recommendations
- Image upload for product photo analysis
- Semantic memory search (powered by EverOS) for recalling relevant past tastings
- Distinctive Mรถbius ring 3D visualization with animated category ribbons
- Graph Search: Real-time keyword search across names, tags, and notes โ matching nodes highlight in the 3D graph
- Semantic Search: When connected to EverOS, hybrid keyword + vector search finds conceptually related tastings
- Category Filtering: Click any legend item to isolate a category cluster
- Automatic sync to EverOS (Evermind AI) on record creation
- Full sync on app load when online
- Status indicator in navbar (green = online, gray = offline)
- Fully offline-capable โ all core features work without cloud connectivity
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React 18.3 | UI rendering |
| Build | Vite 5.4 | Dev server & bundling |
| 3D Engine | Three.js 0.184 | WebGL rendering |
| Graph | 3d-force-graph 1.73 | Force-directed layout |
| EmailJS 4 | Verification code delivery | |
| Backend | Vercel Serverless | API proxy for EverOS |
| Cloud | EverOS (Evermind AI) | Sync & semantic search |
| Storage | localStorage | Client-side persistence |
| Fonts | Inter, Space Grotesk, Noto Sans SC | Typography (Latin + CJK) |
- Node.js 18+
- npm 9+
git clone https://github.com/your-username/taste-verse.git
cd taste-verse
npm install
npm run dev # http://localhost:5173Note: The
/api/everosendpoint is a Vercel Serverless Function and will not run withnpm run dev. To enable cloud sync locally, usevercel devinstead:npm i -g vercel vercel dev
npm run build # outputs to /dist
npm run preview # preview the production build-
Import this repository into Vercel. The framework will be auto-detected as Vite.
-
Set the following environment variables:
Variable Description Example EVEROS_UPSTREAMEverOS API base URL https://api.evermind.ai/api/v1EVEROS_API_KEYAPI key from EverOS (required for cloud sync) ek_... -
After configuring environment variables, go to Deployments โ Latest โ Redeploy to apply them.
taste-verse/
โโโ src/
โ โโโ App.jsx # Root component โ login screen, nav, view routing
โ โโโ main.jsx # React 18 entry point
โ โโโ lib/
โ โ โโโ bootstrap.js # Exposes Three.js & ForceGraph3D to window
โ โ โโโ tasteverse.js # Core engine: 3D graph, auth, CRUD, storage, EverOS sync
โ โโโ sommelier/
โ โ โโโ AISommelier.jsx # AI Sommelier panel component
โ โ โโโ sommelier-engine.js # Chat engine, recommendations, Mรถbius visualization
โ โ โโโ sommelier.css # Sommelier panel styles
โ โโโ styles/
โ โโโ global.css # Global styles (dark space theme)
โโโ api/
โ โโโ everos/
โ โโโ [...path].js # Vercel serverless proxy for EverOS API (CORS)
โโโ public/ # Static assets
โโโ index.html # SPA entry point
โโโ vite.config.js # Vite config with Three.js chunk optimization
โโโ vercel.json # Vercel rewrites & serverless config
โโโ package.json
TasteVerse is offline-first. All data is stored in the browser's localStorage with per-user namespacing:
| Key | Content |
|---|---|
tv_session |
Current user session |
tv_{email}_notes |
All tasting records |
tv_{email}_taxonomy |
Category hierarchy |
tv_{email}_categories |
Category metadata |
tv_{email}_profile |
User profile (nickname, avatar, bio) |
When EverOS is connected, records are additionally synced to the cloud for backup and semantic search.
TasteVerse uses a passwordless email verification flow:
- Enter your email address
- Receive a 6-digit verification code via EmailJS
- Enter the code to log in
- Session persists in localStorage for automatic re-login
- WebGL support (required for Three.js 3D rendering)
- Modern browser with ES6+ support (Chrome, Firefox, Safari, Edge)
- localStorage API
See LICENSE for details.
Built with โค๏ธ and a passion for flavor.