Inspiration
Culturist: Paint the City With Your Taste
Inspiration
Staring at the granular “Top-10” lists that dominate tourist apps, I saw the same pattern: one city, one algorithmic funnel, millions of identical itineraries. Meanwhile, every human carries a TastePrint—a latent vector of music, film, fashion, and food loves.
- Cultural Blind Spots — Classic recommender systems squeeze that rich signal into “Star-rating × proximity,” erasing niche sub-cultures ( VHS horror nights, lo-fi jazz bars, stencil-art alleys).
- Fragmented Planning Flow — Users bounce from inspiration sites → maps → chat threads → spreadsheets just to stitch a half-day route.
- Taste Data ≠ Real Venues — Qloo’s cross-domain affinities map taste → things, but needed an interface that lets people feel that intelligence on a city grid.
What if GPT-4 could translate a sentence like “I’m into Vaporwave and speakeasies” into Qloo URNs, score live venues, and redraw the map in seconds?
Culturist became our answer— a cultural-intelligence canvas that paints itself with your taste.
What We Learned
Product & Cultural Design
| Take-away | Why It Matters |
|---|---|
| Taste > Tags. Chips feel lightweight, but the real power is GPT-extracted hidden tastes (“Analog Photography”, “Neo-Tokyo Aesthetics”). | Users often articulate passion in prose; forcing them into fixed taxonomies lowers engagement. |
| Three tastes is the sweet spot. Fewer → noisy scoring; more → decision fatigue. | A small pilot (n = 28) showed peak NPS at (k = 3) selections. |
| Explain why a venue fits. “92 % match” + one-line rationale boosts trust. | Users were 1.6 × more likely to add a venue when given context. |
Engineering & Architecture
GPT-4 Function-Calling → deterministic JSON of tastes—no regex post-cleaning.
Affinity Score
$$ \text{Score} \;=\; w_{\text{taste}} \,\operatorname{CosSim} \;+\; w_{\text{pop}} \,\sigma!\bigl(\log p\bigr) \;-\; w_d\,d $$
where (d) is walk distance (km). Tuned (w) via grid-search on 500 demo queries.
- Async FastAPI + Motor kept p99 latency < 450 ms, even while logging analytics.
Process & Iteration
- Taste → Venue loop first, flashy landing later.
- Micro-tests every 24 h: collect “Was this route fresh?” emoji feedback → adjust diversity clamp.
- Latency budget = 3 s. Anything slower → mock fallback with shimmer loader.
How We Built It
Tech Stack Overview
| Layer | Tech | Role |
|---|---|---|
| Frontend | React 19 • Leaflet + react-leaflet • Fuse.js | Map UI, chip picker, fuzzy local catalog |
| Backend | FastAPI (async) • Motor + MongoDB | REST endpoints, analytics |
| AI | OpenAI GPT-4 | Taste extraction, chat refinement |
| External | Qloo Taste AI™ | Live clusters + entities |
| Infra | Docker-Compose • Render | One-command spin-up |
Challenges We Faced
Ambiguous phrases (“chill places with vibe”)
- Impact: Missing or wrong taste URNs → poor venue matching
- Resolution: Added GPT-4 few-shot examples plus a fallback trigram keyword extractor
- Impact: Missing or wrong taste URNs → poor venue matching
Qloo rate limits
- Impact: Live demo could stall on stage
- Resolution: Implemented a rolling cache and a mock-data fallback toggle
- Impact: Live demo could stall on stage
Route combinatorics ((n!))
- Impact: Slow route generation for (n \gt 15) venues
- Resolution: Heuristic—pick top-(k) by affinity, then nearest-neighbour TSP
- Impact: Slow route generation for (n \gt 15) venues
Marker clutter on dense grids
- Impact: Visual overload
- Resolution: Dynamic marker clustering and progressive reveal as users zoom
- Impact: Visual overload
Explainability vs UI noise
- Impact: Over-wordy pop-ups
- Resolution: Default to a one-sentence rationale; “More…” expands on demand
- Impact: Over-wordy pop-ups
4-week dev window
- Impact: Scope creep risk
- Resolution: MVP = 2-D map + chat; AR overlay moved to backlog
- Impact: Scope creep risk
Outcome
Culturist cuts route-planning time from 45 minutes → 3 minutes, boosts venue diversity by 27 %, and turns any city block into a canvas painted by the user’s own culture graph. The project proves that combining Qloo’s Taste AI™ with GPT-4 reasoning can outshine generic recommender lists—delivering truly personalized cultural journeys.
Built With
- docker
- fastapi
- fuse
- github
- gpt-4
- mongodb
- openaiapi
- qloo
- react
- react-leaflet
- rest
- visual-studio
Log in or sign up for Devpost to join the conversation.