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:

  1. Calculates Win Probability: Using a custom algorithm based on historical win rates and composition synergy.
  2. Predicts Enemy Moves: It analyzes the opponent's missing roles to predict their most likely next picks.
  3. Threat Detection: Automatically flags if an opponent selects a champion they are statistically "One-Trick" experts on.
  4. 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/catch mechanism in api.ts to 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

Share this project:

Updates