Inspiration
We loved doing math/computing problems from Project Euler. However, many of the solutions to problems used algorithms that are quite abstract and are hard to visualize. We wanted to combat this issue by making beautiful animations of the algorithms to show the intuition behind them. We were heavily inspired by the YouTube channel 3Blue1Brown, which is dedicated to creating educational math videos with an intuitive approach.
What it does
Our project visualizes three algorithms: the Sieve of Eratosthenes, a dynamic solution to a sum problem, and Dijkstra's algorithm. The first is used in several Project Euler problems that have to do with primes, as prime sieving is the fastest way to find a large number of primes. The second is used in problems 18 and 67, and is a clever divide-and-conquer solution. The last is used in problem 83 to find the minimum distance between two points in a grid.
How we built it
We used the python library Manim to create the animations. Grant Sanderson, creator of 3Blue1Brown, actually made Manim himself to use in his videos.
Challenges we ran into
Since Manim is relatively niche, it was hard to find good documentation on the library. A lot of the documentation we did find was bare-bones, but we pushed through and managed to finish what we wanted to do.
Accomplishments that we're proud of
We're proud that we were able to learn how to use an unfamiliar library and apply it to solve a real problem. We hope that anyone who is struggling to understand one of the algorithms we used can gain some new insight on it.
What we learned
After creating our animations, we realized how valuable it is to have a visualization of something abstract. We even gained some deeper understanding of the algorithms just by seeing them in action.
What's next for Project Euler Visualizations
Creating more visualizations for more problems is the obvious next step. Additionally, making the project open-source friendly to encourage others to make their own visualizations will help with achieving the goal of making these algorithms more accessible to more people.
Built With
- manim
- python
Log in or sign up for Devpost to join the conversation.