manimator is a tool to transform research papers and mathematical concepts into stunning visual explanations, powered by AI and the manim engine
Building on the incredible work by 3Blue1Brown and the manim community, manimator turns complex research papers and user prompts into clear, animated explainer videos.
arxiv.org
with manimator.hypercluster.tech
in any arXiv PDF URL for instant visualizations!
ArXiv usage Walkthrough |
Gradio Walkthrough |
[!IMPORTANT] This project is built using the poetry tool to manage Python packages and dependencies. Download it from here to run this project or use the Docker image. This project is dependent on the manim engine and hence has certain dependencies for running the engine properly which can be found here.
bash
git clone https://github.com/HyperCluster-Tech/manimator
cd manimator
Install Dependencies:
poetry install
Activate the environment:
poetry env activate
(If you're using a version before Poetry 2.0, you should use poetry shell
)
After successfully installing all the project dependencies and manim dependencies, set the environment variables in a .env file according to the .env.example:
Run the FastAPI server:
poetry run app
and visit localhost:8000/docs
to open SwaggerUI
Run the Gradio interface:
poetry run gradio-app
and open localhost:7860
To change the models being used, you can set the environment variables for the models according to LiteLLM syntax and set the corresponding API keys accordingly.
To prompt engineer to better suit your use case, you can modify the system prompts in utils/system_prompts.py
and change the few shot examples in few_shot/few_shot_prompts.py
.
To use manimator with Docker, execute the following commands:
Build the Docker image locally. Then, run the Docker container as follows:
docker build -t manimator .
If you are running the FastAPI server
docker run -p 8000:8000 manimator
Else for the Gradio interface
docker run -p 7860:7860 manimator
Endpoint: /health-check
Method: GET
Returns the health status of the API.
Response:
{
"status": "ok"
}
Curl command:
curl http://localhost:8000/health-check
Endpoint: /generate-pdf-scene
Method: POST
Processes a PDF file and generates a scene description for animation.
Request:
multipart/form-data
Response:
{
"scene_description": "Generated scene description based on PDF content"
}
Curl command:
curl -X POST -F "file=@/path/to/file.pdf" http://localhost:8000/generate-pdf-scene
Endpoint: /pdf/{arxiv_id}
Method: GET
Downloads and processes an arXiv paper by ID to generate a scene description.
Parameters:
arxiv_id
: The arXiv paper identifierResponse:
{
"scene_description": "Generated scene description based on arXiv paper"
}
Curl command:
curl http://localhost:8000/pdf/2312.12345
Endpoint: /generate-prompt-scene
Method: POST
Generates a scene description from a text prompt.
Request:
application/json
{
"prompt": "Your scene description prompt"
}
Response:
{
"scene_description": "Generated scene description based on prompt"
}
Curl command:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"prompt": "Explain how neural networks work"}' \
http://localhost:8000/generate-prompt-scene
Endpoint: /generate-animation
Method: POST
Generates a Manim animation based on a text prompt.
Request:
application/json
{
"prompt": "Your animation prompt"
}
Response:
video/mp4
Curl command:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"prompt": "Create an animation explaining quantum computing"}' \
--output animation.mp4 \
http://localhost:8000/generate-animation
All endpoints follow consistent error handling:
Error responses include a detail message:
{
"detail": "Error description"
}
Improved Generation Quality
Enhance the clarity and precision of generated animations and videos.
Video Transcription
Automatically generate scripts explaining how concepts in the video relate to the research paper.
Adding Audio
Support for adding voiceovers and background music to create more engaging visualizations.
Chrome Extension Based on the code graciously contributed by Dr. Seth Dobrin under the Creative Commons License, we will be releasing a Chrome Extension on the Chrome Web Store soon!
LLM Limitations
For accurate document parsing and code generation, we require large models like Gemini, DeepSeek V3 and Qwen 2.5 Coder 32B, which cannot be run locally.
Video Generation Limitations
The generated video may sometimes exhibit overlap between scenes and rendered elements, leading to visual inconsistencies. Additionally, it sometimes fails to effectively visualize complex papers in a relevant and meaningful manner.
manimator is licensed under the MIT License. See LICENSE
for more information.
The project uses the Manim engine under the hood, which is double-licensed under the MIT license, with copyright by 3blue1brown LLC and copyright by Manim Community Developers.
We acknowledge the Manim Community and 3Blue1Brown for developing and maintaining the Manim library, which serves as the foundation for this project. Project developers include: Samarth P, Vyoman Jain, Shiva Golugula, and M Sai Sathvik for their efforts in developing manimator.
Models and Providers being used:
For any inquiries, please contact us at hypercluster.tech@gmail.com or refer to our website hypercluster.tech
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。