Inspiration

I'm a high schooler getting ready to take all my AP exams in May, a total of 8 exams. Studying in an exciting manner has been very difficult for me and other, so I set out to create a way to learn and study in a not so boring way.

What it does

Luminosity takes a simple topic from the user and transforms it into an educational video within a few minutes.

How we built it

Luminosity generates these animation through a python library called Manim. We then feed Anthropic's Claude 3.7 LLM data through a RAG system containing documentation, examples, and other helpful resources. The AI can then synthesize all these sources and generate clean and functional code. We then send this code to a docker image running in the cloud which renders all the individual scenes, stitches the videos with ffmpeg, and uploads the video to a storage bucket. We can finally then return this URL to the user to watch the video.

Challenges we ran into

With decently long generation and rendering times, it became impossible to run the app through services like Vercel and Netlify who have time limits on server functions. This also means that if the user were to leave the page during generation (which is likely due to the generation taking 1+ minutes), all progress would be lost and unrecoverable. To fix this, I had to create a docker image of the website and host it on Azure. To fix the lost progress issue, I messed around with web sockets and other technologies with little success. I found a work around eventually using no external libraries. I would just query the database every 10 seconds to see if the video has been uploaded and then would return the video if it had been found.

Accomplishments that we're proud of

I'm very happy with the AI's ability to generate these animations. This idea has been toyed with by other platforms, usually yielding poor results. I think that the RAG system (giving the AI the ability to fetch documentation and examples) is what really set Luminosity apart from these other platforms. This both limits the errors that could occur and generates better looking videos.

What we learned

I've heard the term RAG being tossed around previously and dug into it a bit, but this was the first project where I built one myself. By utilizing Pinecone (a vector database), I was able to upload about 300 pages of documentation and hundreds of examples in the span of a few days. Turns out, building a RAG system wasn't super complicated!

What's next for Luminosity

I think this product really has potential. After judging, I may work a little more on the project and turn it into a SaaS. Wish me luck!

Built With

  • claude
  • nextjs
  • pinecone
  • prisma
  • tailwindcss
  • trpc
Share this project:

Updates