Hello fellow developers on the Dev Community, this is my first post here. Today I want to tell you my journey with Cubecubed - a visualization engine for playing math animations right on the browser. Though it's just a small project of mine, I'm very proud of it. This is not a promotion post for its GitHub repo, but a story I want to tell you.
Just a little bit about myself: I'm a math enthusiast and a big fan of 3Blue1Brown's videos using the Manim engine.
When I first saw Grant's videos on YouTube, I was so inspired by the quality of them. After that, I learned that Grant used a Python library called Manim to produce those videos. The first time I used Manim, it took me about half a day to just install it on my Windows machine (though Linux is completely ok). I have to tell you, the engine is great, but the installation and MP4 converting process is a pain in the ass. Besides of that, I want Manim to be accessible for everyone, ranging from teachers and students to math lovers like me, especially the ones who don't know how to code, and don't spend time learning it.
So I had an idea: why don't I create a web version of Manim and turn it to a web app? That way, the users can click around, use the UI to achieve exactly the things that can be done by programming.
I tried Django. Frankly said, I'm too lazy to learn a whole new framework in a language that I'm not comfortable to work with. But there is a much larger problem: the users spend time creating math animations but cannot view the result immediately. I mean, they use the application and convert their Manim project to an MP4 file; if anything goes wrong they have to go all over again to find the "bug" and have no idea where it is. Even when they fix the "bug", they have to painfully wait for the converting process (and unfortunately, they find more bugs).
I thought, "what can be the solution for both of those issues?" You can make a guess... That's right, the web! The browser is a wonderful place for playing dynamic animations and creating front-ends.
In December 2021, the first commit of Cubecubed was pushed to GitHub after a ton of customizations and refactoring. The first cubicons (equivalent to 'mobject' in Manim) were implemented, the name 'Cubecubed' and the project's logo was 'thought-provokingly' created.
Here are some showcase videos made by Cubecubed.
Cubecubed is the project that I put a lot of time and efforts into. The making of it is always an enjoyable journey to me. I want to say that, the most important things are not GitHub stars but the time you spend fixing bugs and learning new things.
Have a nice day everyone.