Inspiration

Every night, millions of us open a smart TV, scroll for 20 minutes, and end up rewatching something we've already seen. We wanted to fix that moment: the gap between "what should we watch?" and actually pressing play.

Our research on smart TV assistants pointed to six recurring pain points:

  • Decision fatigue: too much scrolling before choosing
  • Limited intent understanding: direct title searches work, but nuanced requests (mood, time, constraints) are harder
  • Fragmented discovery: finding which service has a title means hopping between apps
  • Limited contextual personalisation: mood, available time and who's watching are rarely considered
  • Lack of explainability: recommendations without a reason
  • Interaction friction: typing with a TV remote is tedious

We treat these as hypotheses to test, not claims about every assistant. LUMA is our attempt to address all six in one TV-first experience.

What it does

LUMA is a context-aware, explainable AI entertainment companion for Fire TV / Vega OS.

  • Natural-language intent understanding: say or type "Suggest a light comedy under two hours for family movie night" and LUMA turns it into structured constraints (mood, genre, runtime, audience, language, exclusions).
  • Context Bar: focusable chips for Mood, Time available and Who's watching, so most requests need zero typing.
  • A shortlist of five, not five hundred: results are hard-filtered by your constraints, then ranked by a transparent scoring layer.
  • Explainable picks: every title has a one-line "Why this" and constraint-match chips (Under 2h ✓ Family ✓ Comedy ✓), generated only from verified metadata.
  • Preference memory: "More like this", "Not for me" and "Don't recommend horror" are remembered. A My Preferences screen lets you edit or reset everything.
  • Cross-service discovery: provider badges show where each title is streaming (availability may vary by region).
  • Refine in one press: Shorter, Funnier, Less violent, Something different.
  • Demo Stats overlay: measures time-to-decision and number of remote actions, the same metrics from our research plan.
  • Offline mode: if the AI or network fails, a rule-based parser and a local catalogue keep the app working.

How we built it

Frontend: React Native + TypeScript targeting Amazon's Vega OS (Kepler SDK). The UI is designed on a 1920×1080 canvas with a scale helper, TV safe-area overscan padding, 10-foot typography, and large focus states with logical D-pad order.

Backend: Python + FastAPI exposing /api/recommend and preference endpoints.

AI pipeline:

  1. Intent parsing: an LLM (Anthropic Claude) converts the request and context into strict JSON, validated with Pydantic.
  2. Verified catalogue: TMDB supplies factual metadata (runtime, genres, language, certification) and watch-provider data.
  3. Deterministic ranking: hard filters first (runtime, exclusions, audience), then weighted scoring for genre, mood, language, preference boosts and penalties, and similarity.
  4. Grounded explanations: the model only sees verified attributes and may not add facts. A template fallback guarantees an explanation every time.
  5. Guardrails: the LLM can only choose from catalogue items, all output is schema-validated, and API keys never reach the frontend.

We also wrote pytest tests for the ranking constraints and the fallback parser.

Challenges we ran into

  • TV proportions: layouts that looked fine on a phone-sized preview stretched or clipped on the virtual TV. We rebuilt sizing around a single 1920×1080 scale system.
  • Keeping the AI honest: LLMs happily invent plot details. Splitting the job (the LLM understands intent, a verified catalogue supplies facts, code does the ranking) removed that failure mode.
  • Demo resilience: live AI and network calls can fail at the worst moment, so we built a rule-based fallback and a local catalogue.
  • Typing on a remote: we redesigned the flow around chips and quick prompts so the keyboard is optional.

Accomplishments that we're proud of

  • A recommender where every result is explained and traceable to real metadata.
  • A working fallback path, so the app never shows a blank screen.
  • Built-in measurement (decision time and remote presses) that turns our research questions into evidence.

What we learned

Good TV UX is mostly about removing things: fewer choices, fewer presses, shorter text. We also learned that the most reliable AI features pair a language model for understanding with deterministic code for deciding.

What's next for LUMA

  • Run a small user test and publish decision-time and remote-press results
  • Deeper platform integration and verified availability across more regions
  • Voice input through Vega's speech capabilities
  • Multi-viewer profiles for "everyone in the room" recommendations
  • Stronger comparison against existing assistants to pinpoint LUMA's demonstrable gap

Built With

Share this project:

Updates

Submission history