Inspiration LumiTrace began with a simple frustration: streaming platforms offer enormous catalogs, yet finding the right movie can still take longer than watching one. I previously built a small recommendation prototype and found that recommendations became surprisingly useful once the system learned from movies I had actually watched and rated. What LumiTrace Does LumiTrace is a local-first AI movie taste agent. Users mark movies as watched, rate them from 1–10, and optionally describe what they want in natural language, such as: “A thoughtful science-fiction film for a quiet night, but nothing too depressing.”
The system combines semantic similarity, movie metadata, collaborative signals, and explicit ratings to create personalized shortlists instead of generic trending lists. During Build Week, I am extending LumiTrace with OpenAI models so an agent can interpret nuanced requests, call recommendation tools, explain each result, and refine the shortlist through conversation. How I Built It The Android application is built with Kotlin and Jetpack Compose. It uses the user’s own TMDB API key for current movie information, while watched history, ratings, notes, and preference data remain on the device. The recommendation pipeline uses a compact catalog of approximately 30,000 movies and combines several signals: semantic similarity between movie descriptions; MovieLens collaborative information; genre and metadata affinity; positive and negative rating feedback; diversity-aware re-ranking. A simplified ranking function is: [ S(m)=\alpha S_{\text{semantic}}(m)+\beta S_{\text{collaborative}}(m)+\gamma S_{\text{metadata}}(m)-\lambda P_{\text{negative}}(m) ]OpenAI provides the reasoning and orchestration layer: it translates conversational intent into structured constraints, invokes the local recommendation engine, and generates explanations grounded in the actual ranking signals. Challenges The biggest challenge was fitting a meaningful recommendation experience into a mobile-first, privacy-conscious architecture. I had to balance catalog size, APK size, memory use, interface performance, and recommendation quality. I also encountered real-device issues that did not appear in the emulator, including rating-state crashes and sluggish poster feeds, which reinforced the importance of testing on physical hardware. What I Learned I learned that recommendation quality does not come from using the largest model or the largest dataset alone. Explicit feedback, negative preferences, candidate diversity, and transparent re-ranking matter just as much as semantic similarity. I also learned that an LLM is most useful here as an agent that understands intent and explains grounded results, rather than as an opaque replacement for the recommendation algorithm. LumiTrace aims to make movie discovery personal, conversational, reproducible, and private without requiring a centralized user account.
Log in or sign up for Devpost to join the conversation.