DEV Community

Haseeb Arshad
Haseeb Arshad

Posted on

Vectoria: Speak Math, See Motion

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

Vectoria is a Python-based CLI tool designed to lower the barrier to creating high-quality mathematical animations. It leverages the power of the Manim (Community Edition) library—made famous by Grant Sanderson of 3Blue1Brown—and combines it with LLM-driven code generation.

With Vectoria, you don't need to know the Manim API by heart. You can simply describe a mathematical concept in plain English (e.g., "Draw a unit circle and transform it into a square with side length 2"), and the tool automatically:

  1. Generates the corresponding Manim Python code.
  2. Applies a curated "3Blue1Brown" visual style (palette and typography).
  3. Renders the animation into a high-quality video file using a single command.

Demo

You can find the source code and installation instructions here:
👉 GitHub Repository: Haseeb-Arshad/Vectoria

How it works:

# Generate a real animation from a prompt
python -m src.main create "Draw a rotating yellow dodecahedron"

# Test it out instantly without an API key using Mock Mode
python -m src.main create "test" --mock
Enter fullscreen mode Exit fullscreen mode

My Experience with GitHub Copilot CLI

Building Vectoria was a masterclass in AI-pair programming. GitHub Copilot was instrumental in several key areas:

  • Boilerplate Acceleration: It helped set up the Typer CLI structure and Rich console integrations in seconds.
  • Subprocess Management: Handling the nuances of running the manim CLI via Python's subprocess (capturing errors and managing temporary files) was simplified significantly with Copilot's suggestions.
  • Complex API integration: Implementing the LLM generation logic and ensuring the prompt engineering was strict enough to produce valid Manim code was a breeze thanks to Copilot's ability to reason about the Manim structure.

The GitHub Copilot CLI challenge pushed me to think about how we can make specialized tools like Manim more accessible to everyone, and I'm thrilled with the result!

Credits: Haseeb-Arshad

Top comments (0)