Inspiration
Icarus was born from my own frustration as a high school senior trying to improve at Valorant. After 100+ hours in Aim Labs, I realized my game sense, not my aim, was holding me back. I turned to coaching communities and YouTubers like Woohoojin, who all used ValoPlant as a pseudo-replay system since Valorant lacked an official replay feature. My PC couldn't handle recording VODs, so ValoPlant became my only option.
But one night at my cousin's house, after spending an hour meticulously planning Jet lineups on Bind, I closed my laptop midway through my work. When I reopened it, everything was gone. That moment of losing all my progress, because I wasn't paying for Pro, sparked a realization: I could build something better myself. (Or try to rather LOL)
What it does
Icarus is an open-source, local-first Valorant strategy creator with 1,000+ users. It lets you:
- Place agents, maps, and abilities with 1:1 accuracy matching in-game positioning
- Save and edit strategies locally for permanent access
- Adding sequences of events for animation
- Add lineup videos from YouTube directly into your strategies
- Annotate with images, text, and freehand drawings using notation tools
- Share strategies instantly via the
.ICAfile format
How we built it
I built Icarus from scratch using Flutter, starting with textbook fundamentals. The first milestone was simply placing agents on a map using a coordinate system. As a high schooler whose only prior project was a calculator app, I learned as I went experimenting, failing, and iterating through each feature.
Challenges we ran into
1. The Drawing Algorithm
My initial drawing system had major performance issues. After fixing those, the lines themselves were jagged and unsmooth. I spent a week researching line simplification algorithms to create natural, fluid strokes. Implementing erasing functionality also proved difficult until I figured out bounding box calculations.
2. Ability Data Modeling
Valorant's diverse abilities (Astra walls, Cypher trips, etc.) required creating an extensible primitive system that could handle wildly different ability types while maintaining a consistent data structure.
3. Flutter Rotation Bug
Rotations became my framework-level nightmare. Abilities like Breach's ult rotate around offset points, not their center. Flutter's rotation function applied alignment values by default even when unspecified which conflicted with custom origin points and broke everything. I eventually filed a PR to Flutter's documentation to clarify this behavior, which was a huge personal win :D
4. UI/UX Design
ValoPlant's UI (agent bar at the bottom) felt outdated and wouldn't scale as Valorant added more agents. With no formal design training, I had to reverse-engineer good UX by studying other products, iterating with my community, and constantly asking: "Where should this live? Will this break existing user workflows?"
5. Data Translation Pipeline
My custom map assets didn't align with Valorant's inconsistent reference images (which aren't even consistently centered ;-;). I built a script that analyzes PNG transparency, calculates bounding boxes, and mathematically translates positions to match my SVG maps a deep dive into image processing I never expected.
6. API Integration for Match Replay For the match import feature (the hackathon's focus), I couldn't get the live API connection working initially. As a workaround, I downloaded the raw JSON match data manually and built the visualization pipeline around that static data first. The current hurdle is bridging that temporary solution to the live API so users can import matches seamlessly without manual file handling.
7. The Mental Block
The biggest challenge was my own inexperience. Features like importing and replaying actual Valorant matches felt impossible until I stopped underestimating myself. Overcoming that self-doubt unlocked everything that came after.
Accomplishments that we're proud of
- Reaching 1,000+ users as a solo developer while still in school
- Creating real impact for Valorant players who needed a free, reliable tool
- Getting my first major internship at Amazon (partially thanks to this project)
- Filing my first open-source PR to a major framework (Flutter)
- Building something so engaging that I now code more than I actually play Valorant
What we learned
This project taught me that technical challenges (line algorithms, rotation math, data pipelines) are solvable with research and persistence, but the real growth comes from trusting your ability to tackle problems that seem beyond your skill level. I also learned UI/UX design through trial-and-error, community feedback, and shamelessly learning from existing products.
What's next for Icarus
- Online features: Link-based sharing, cloud saves, and team collaboration for eSports organizations
- Web parity: Finish the web version to match the desktop app's full functionality
- Game expansion: Adapt Icarus for Marvel Rivals and potentially League of Legends (though that champion count is intimidating)
Log in or sign up for Devpost to join the conversation.