Inspiration
We sought to make a positive impact on how videos are perceived. With this in mind, we thought using AMD's FSR would be a great opportunity to make progress toward this. Originally, it was a simple idea about making blurry, distant photos/videos sharper, but it became something we were all deeply passionate about bringing to life - upscaling for anyone, anywhere.
What it does
Our project is a full stack app that takes in mp4 files from the user, and outputs an AI upscaled version of it.
How we built it
We used Python and C++ in the backend to incorporate speed and versatility when each are most applicable. These steps started with breaking a video file down into chunks of frames to be read by openCV, which would break videos down frame by frame to calculate optical flow and create motion vectors. We also used image gradients to analyze depth in the video to establish a 3D effect and increase the accuracy of the information fed to FSR 2. This was implemented with Vulkan due to its low overhead and the fact that it works very well with FSR.
Challenges we ran into
This was our first hackathon, so the number one challenge was dealing with a serious lack of sleep. Learning entirely new technologies in such a short time was both time-consuming and mentally draining. We used AI tools to help guide our direction and planning for the project, but some of the advice it provided turned out to be misleading or impractical for our setup, costing us valuable time. Our first night — from midnight to 8 AM — was spent brainstorming and trying to finalize a plan that was both ambitious and achievable.
A major technical challenge was working with AMD’s FSR (FidelityFX Super Resolution) libraries. Most of the official FSR SDKs are optimized for Windows and tightly integrated with Microsoft’s Visual Studio toolchain. Because our development environment was Linux-based, we struggled to get the libraries properly compiled and linked. Even though we had functioning code, we couldn’t easily run or test it due to missing dependencies and architecture incompatibilities in the CMake configuration.
Between debugging, rebuilding, and pivoting our approach, it was difficult to balance development speed with proper testing. We learned a lot about debugging GPU-based code, cross-platform limitations, and using git to our advantage.
Accomplishments that we're proud of
We put ourselves in a difficult situation- we chose a project that we all had very little experience in. We are very proud of how much we learned in such short time.
What we learned
We learned that creating AI powered tools is a very lengthy and complex process.

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