Inspiration
In professional League of Legends, the game is often determined before the players even enter the fountain. We've all heard casters state that a squad was "draft gapped." However, a human coach would struggle to process thousands of variables in the 30 seconds between picks, including patch-specific win rates, player comfort zones, and intricate champion synergies. We created RiftMind to serve as a "sixth man" in the booth, transforming large GRID data streams into usable, real-time strategic insights.
What it does
RiftMind is a dual-screen experience for analysts. As the user inputs picks and bans during a live draft:
- Calculates Win Probability: Using a custom algorithm based on historical win rates and composition synergy.
- Predicts Enemy Moves: It analyzes the opponent's missing roles to predict their most likely next picks.
- Threat Detection: Automatically flags if an opponent selects a champion they are statistically "One-Trick" experts on.
- Resilient Architecture: If the advanced Python engine goes offline, the frontend seamlessly falls back to client-side heuristics, so the coach is never left blind.
How we built it
- The Brain (Backend) is made with Python (FastAPI) and NumPy. We developed a mathematical engine that generates a "Synergy Index" based on weighted champion associations and patch-specific pick rates.
- The Face (Frontend): A high-performance React application with a "Hextech" UI aesthetic, built with Tailwind CSS. We utilized Recharts to visualize live probabilities.
- The Bridge: A RESTful API connects the two. The frontend communicates the current draft state (picks/bans) to the backend, which then returns the probability tensor and forecasts.
Challenges we ran into
- The "Hanging Fetch" Issue: Initially, if the Python server wasn't running, the React app would crash or hang. We had to implement a robust
try/catchmechanism inapi.tsto detect connection failures and instantly switch to an "Offline Mode" using local JavaScript logic. - Synergy Quantization: Defining "Synergy" mathematically is difficult. We had to create a formula that balances raw win rate (Patch Power) against specific composition bonuses (e.g., Yasuo + Malphite wombo-combo).
Accomplishments that we're proud of
- Graceful Degradation: We are proudest of the "Offline Fallback" system. In a tournament setting, internet or server issues can happen. RiftMind ensures the coach still gets recommendations even if the brain server disconnects.
- The UI/UX: The application looks and feels like a native tool from the game client, with responsive animations and clear data visualization.
- Speed: The analysis loop runs in under 200ms, providing instant feedback during the high-pressure 30-second pick timers.
What we learned
- State Management: Handling the complex state of a 20-step draft (bans, picks, swaps) required rigorous state logic to ensure the backend always received the correct "snapshot" of the draft.
- Hybrid Systems: Integrating a Python data science backend with a React frontend opened our eyes to the power of separating "computation" from "presentation."
What's next for RiftMind
- Transformer Integration: We plan to replace the heuristic prediction engine with a trained Transformer model (GPT architecture) trained on pro-play match history to better predict human drafting patterns.
- Live LCU Connection: Integrating directly with the League Client Update (LCU) API to automatically detect picks without manual input.
- User Accounts: Adding authentication to allow teams to save and review their past drafts.
Built With
- gridapi
- json
- python
- typescript


Log in or sign up for Devpost to join the conversation.