πŸš€ VLQM-1.5B-Coder

A fine-tuned language model for generating Manim animation code from natural language descriptions.

Base Model Framework License


πŸ“– Model Description

VLQM-1.5B-Coder is a specialized language model fine-tuned to generate Manim Python code from natural language descriptions. Manim is the mathematical animation engine famously used by 3Blue1Brown.

What This Model Does

Given a natural language prompt:

"Create a blue circle that moves to the right"

The model generates valid Manim Python code:

from manim import *

class GenScene(Scene):
    def construct(self):
        circle = Circle(color=BLUE)
        self.add(circle)
        self.play(circle.animate.shift(RIGHT * 3))

🎯 Intended Use

  • Primary Use: Generating Manim animation code from text descriptions
  • Users: Developers, educators, content creators making math/science animations
  • Languages: English prompts, Python code output

Example Use Cases

  • Creating educational math animations
  • Generating visualizations for presentations
  • Prototyping Manim scenes quickly
  • Learning Manim syntax through examples

πŸ“Š Training Details

Property Value
Base Model Qwen/Qwen2.5-Coder-1.5B-Instruct
Parameters 1.5 Billion
Training Method LoRA (Low-Rank Adaptation)
Dataset generaleoley/manim-codegen
Training Examples 1,459
Validation Examples 163
Training Framework Apple MLX
Hardware MacBook Pro (Apple Silicon)

Hyperparameters

Parameter Value
Iterations 300
Batch Size 2
Gradient Accumulation 8
Learning Rate 5e-5
LoRA Layers 16
Max Sequence Length 8,192


πŸ“ˆ Model Performance

Training Loss Curve

The model shows a strong convergence pattern, with validation loss stabilizing around 0.71 and training loss reaching 0.48.

Training Loss Curve

⚠️ Limitations

Known Limitations

  1. Complex Animations: May struggle with multi-step animations involving many objects
  2. Advanced Manim Features: Less reliable with 3D scenes, complex graphs, or advanced camera movements
  3. API Hallucinations: Sometimes generates non-existent Manim methods (e.g., axes.get_sine())
  4. Indentation Issues: Occasionally produces incorrectly indented code
  5. Long Prompts: Performance degrades with very long or complex descriptions

What This Model is NOT

  • ❌ Not a general-purpose code generator
  • ❌ Not trained for non-Manim Python code
  • ❌ Not suitable for production without human review
  • ❌ Not a replacement for learning Manim fundamentals

Recommended Practices

  • βœ… Always review and test generated code before use
  • βœ… Use simple, clear prompts for best results
  • βœ… Keep prompts focused on one animation at a time
  • βœ… Be prepared to make minor edits to fix issues

πŸš€ Quick Start

Using with Transformers (Cross-Platform)

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "vikramlingam/VLQM-1.5B-Coder",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("vikramlingam/VLQM-1.5B-Coder")

prompt = "Create a red square that rotates"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0]))

Using with MLX (Apple Silicon)

python -m mlx_lm.generate \
    --model vikramlingam/VLQM-1.5B-Coder \
    --prompt "Create a circle animation" \
    --max-tokens 256

πŸ“ Model Files

VLQM-1.5B-Coder/
β”œβ”€β”€ config.json              # Model configuration
β”œβ”€β”€ model.safetensors        # Model weights (~3 GB)
β”œβ”€β”€ tokenizer.json           # Tokenizer
β”œβ”€β”€ tokenizer_config.json
β”œβ”€β”€ vocab.json
β”œβ”€β”€ merges.txt
β”œβ”€β”€ generation_config.json
β”œβ”€β”€ special_tokens_map.json
└── README.md                # This file

πŸ“œ License

This model is released under the Apache 2.0 License.

  • βœ… Commercial use allowed
  • βœ… Modification allowed
  • βœ… Distribution allowed
  • ⚠️ Must include license and copyright notice

πŸ™ Acknowledgments


πŸ“¬ Citation

If you use this model, please cite:

@misc{vlqm-1.5b-coder,
  author = {Vikram Lingam},
  title = {VLQM-1.5B-Coder: Manim Code Generation Model},
  year = {2025},
  publisher = {Hugging Face},
  url = {https://huggingface.co/vikramlingam/VLQM-1.5B-Coder}
}

πŸ“Š Model Card Contact

For questions or issues, please open a discussion on the model's Hugging Face page.

Downloads last month
5
Safetensors
Model size
2B params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for vikramlingam/VLQM-1.5B-Coder

Base model

Qwen/Qwen2.5-1.5B
Finetuned
(128)
this model

Dataset used to train vikramlingam/VLQM-1.5B-Coder