Inspiration

Every family and friend group knows the agonizing "30-minute scroll" — sitting on the couch endlessly browsing streaming menus, arguing over genres, runtimes, and content ratings until everyone loses interest and gives up on movie night.

Existing streaming algorithms only optimize for a single profile. They completely ignore group dynamics, hard bedtime limits ("the kids must be asleep in 90 minutes"), and personal boundaries ("no graphic horror").

We built CommonScene to make movie selection on the living room television an interactive, democratic, and fun experience for everyone on the couch.


What it does

CommonScene is a Fire TV-first group recommendation experience that turns decision paralysis into instant consensus:

  1. Fire TV Host: The television launches CommonScene on Vega OS, creating a room session and displaying a large 4-letter room code and QR join link.
  2. Zero-Friction Mobile Join: Viewers scan the QR code with their phones and join instantly via a lightweight Mobile PWA — no app downloads, no accounts, and no passwords required.
  3. Structured & Free-Text Preferences: Each viewer selects preferred/excluded genres, feel-good moods, runtime caps, and content rating ceilings, or simply types natural language preferences.
  4. Deterministic Fairness Engine: Ranks candidate movies using a mathematical fairness formula: $$\text{Score}(m) = 0.45 \cdot \text{Avg}(m) + 0.35 \cdot \text{Min}(m) + 0.20 \cdot \text{Coverage}(m) - \text{Penalty}(m)$$ Hard constraints are strictly enforced — any movie violating a runtime cap or rating boundary is eliminated with a score of zero.
  5. Amazon Bedrock AI Explanations: Amazon Bedrock parses natural language preferences and generates conversational consensus summaries grounded strictly in verified mathematical score data.
  6. Live Living Room Vote: The TV displays the top 3 finalists. Viewers cast a 1-tap vote on their phones, and the television reveals the crowned winner with cinema fanfare!

How we built it

CommonScene is architected as a TypeScript monorepo with strict separation of concerns:

  • Television Application (apps/tv): Built with React Native targeting the Vega OS runtime on the Hermes JavaScript engine. Implements full D-pad remote navigation with $\ge 3\text{px}$ visual focus rings, BackHandler escape handling, and 5% TV-safe overscan margins across a complete 10-screen lifecycle.
  • Mobile Participant Client (apps/mobile): Built with React 19, Vite, and PWA standards. Connects directly to the room session via WebSockets for instantaneous real-time sync.
  • API & Realtime Hub (services/api): Powered by Fastify 4.x with typed REST routes and a WebSocket event hub broadcasting 9 server event types (room.snapshot, preferences.submitted, vote.submitted, etc.).
  • Deterministic Consensus Engine (packages/consensus): A pure TypeScript algorithmic engine with deterministic tie-breaking (by catalog ID, never random) and 100% offline fallback capabilities.
  • Amazon Bedrock AI Layer: Leverages the Amazon Bedrock Converse API (anthropic.claude-3-5-sonnet and amazon.nova-lite) for JSON extraction and natural language consensus summaries with Zod schema validation.
  • Cloud Infrastructure (infrastructure/cdk): Defined with AWS CDK v2 in TypeScript, provisioning Amazon DynamoDB with TTL, Amazon S3 + CloudFront with Origin Access Control (OAC), and least-privilege Bedrock IAM policies.

Challenges we ran into

  1. Vega Virtual Device on WSL 2: Running QEMU-based Vega OS simulation inside WSL 2 required KVM hardware acceleration and Ubuntu dependencies. Staging .vpkg builds on native Linux ext4 filesystem rather than Windows 9p mounts was necessary to avoid packaging digest mismatches.
  2. Bedrock JSON Reliability: LLMs occasionally output markdown code fences (json ...). We implemented regex sanitization and strict Zod schema validation to guarantee clean parsing, backed by a zero-error fallback to deterministic template explanations if Bedrock times out.
  3. CORS & Multi-Device Local Testing: Synchronizing mobile browser clients and TV simulators across different dev ports required dynamic CORS reflection and robust WebSocket reconnection hooks.

Accomplishments that we're proud of

  • 100% Remote-Navigable TV App: Built a full 10-screen TV application with seamless D-pad directional navigation and focus management on Vega OS.
  • Deterministic Fairness & AI Harmony: Hard constraints (runtime, ratings, excluded tags) are enforced mathematically, using AI strictly for natural language explanation rather than ungrounded ranking.
  • Rock-Solid Test Coverage: 33 unit and integration tests passing across all packages (npm test).
  • 100% Offline Demo Mode: Includes a 90-second standalone offline demo on Fire TV with predictable test profiles (Alice, Bob, Charlie) that requires zero external connectivity.
  • Automated Video Production: Built an automated pipeline (scripts/generate_video.py) that uses Playwright, Edge-TTS, and FFmpeg to generate a 1080p demo video programmatically.

What we learned

  • How to build and package high-performance React Native applications for Vega OS using Hermes bytecode and the Vega SDK (vpt, vda, vpm).
  • Best practices for 10-foot television interface design, including overscan protection, focus state transitions, and D-pad event loops.
  • Designing hybrid architectures where foundation models (Amazon Bedrock) enhance user experience while keeping business logic and fairness calculations 100% deterministic and auditable.

What's next for CommonScene

  • Voice Search Integration: Adding Fire TV voice remote integration (Alexa voice input) to let viewers speak preferences directly into the remote.
  • Streaming Provider Availability API: Integrating streaming availability metadata so groups can filter recommendations by their active household subscriptions (Prime Video, Freevee, etc.).
  • Group Watch History: Optional anonymized room history to prevent recommending movies the household watched together last week.

Built With

Share this project:

Updates

Submission history