Transform any LeetCode solution into stunning educational animations automatically!
🚀 Revolutionary AI-Powered System: Just provide any LeetCode problem number, and watch as our intelligent framework analyzes the code, detects algorithms, and creates professional-grade visualizations automatically!
This isn't just another visualization tool - it's a complete AI-driven educational content creation system that:
🧠 Intelligently Analyzes your LeetCode solutions using AST parsing
🎯 Automatically Detects data structures, algorithms, and complexity patterns
🎨 Dynamically Generates custom Manim scenes with rich visual components
🎬 Creates Complete Videos with proper chronological flow
📚 Provides Educational Value with step-by-step algorithm demonstrations
# Simply run with any LeetCode problem number
python main.py 1 # Two Sum → Animated array + hashmap visualization
python main.py 4 # Median of Two Sorted Arrays → Array merging animation
python main.py 3 # Longest Substring → Enhanced array processing visualization
# That's it! Complete professional videos generated automatically! 🎉- AST Code Parsing: Deep analysis of your solution structure
- Pattern Recognition: Automatically detects Two Sum, Median, Array Processing, etc.
- Data Structure Detection: Arrays, HashMaps, LinkedLists, Trees
- Algorithm Classification: Sorting, Searching, Dynamic Programming, and more
- Problem-Specific Routing: Each problem type gets specialized visualizations
- Rich Visual Components: Animated arrays, interactive hashmaps, step-by-step execution
- Algorithm Visualizations:
median_of_two_sorted_arrays(),two_sum_visualization(),array_processing_visualization() - Educational Animations: 10-27 animation sequences per problem
- Complete Presentations: Problem Statement → Visualization → Code Solution → Thank You
- Automatic Video Combination: Perfect chronological ordering with FFmpeg
- Multiple Quality Options: 480p, 720p, 1080p rendering
- Professional Styling: Consistent colors, layouts, and animations
🎬 manim-coding-visualizer/
├── 🧠 src/leetcode/ # AI Analysis Engine
│ ├── analyzer.py # AST parsing & pattern detection
│ ├── scene_generator.py # Dynamic scene code generation
│ ├── manager.py # Orchestration & workflow
│ ├── simple_visualizers.py # Working array utilities
│ └── algorithm_visualizations.py # Specific algorithm templates
├── 🎯 src/data_structures/ # Generic Visualizers
│ ├── array_visualizer.py # Arrays with cursors & highlighting
│ ├── hashmap_visualizer.py # Interactive hash map operations
│ ├── linkedlist_visualizer.py # Node-based visualizations
│ └── tree_visualizer.py # Binary tree animations
├── 🏛️ src/framework/ # Core Framework
│ ├── problem_framework.py # Standardized layouts
│ └── algorithm_visualizer.py # Step tracking & monitoring
├── 📚 src/problems/ # Generated Solutions
│ ├── leetcode_1.py # Auto-generated Two Sum scenes
│ ├── leetcode_4.py # Auto-generated Median scenes
│ └── ... # Dynamically created files
├── 🎥 media/videos/ # Output Videos
│ ├── leetcode_1/720p30/ # Two Sum presentation
│ ├── leetcode_4/720p30/ # Median presentation
│ └── ... # All generated videos
├── 🗂️ leetcode/ # Your LeetCode Solutions Repository
│ └── solutions/python3/ # Place your .py solution files here
├── ⚙️ main.py # Intelligent Main Runner
└── 📋 requirements.txt # Dependencies
# 1. Clone the repository
git clone <your-repo-url>
cd manim-coding-visualizer
# 2. Install dependencies
pip install -r requirements.txt
# 3. Ensure FFmpeg is installed for video processing
# Windows: Download from https://ffmpeg.org/download.html
# Mac: brew install ffmpeg
# Linux: sudo apt install ffmpeg# Clone your LeetCode solutions repository into the project
git clone https://github.com/your-username/leetcode-solutions.git leetcode
# Or create the structure manually:
mkdir -p leetcode/solutions/python3
# Place your LeetCode .py files in leetcode/solutions/python3/# Generate complete video for any LeetCode problem
python main.py 1 # Two Sum
python main.py 4 # Median of Two Sorted Arrays
python main.py 15 # 3Sum
python main.py 42 # Trapping Rain Water
# The system automatically:
# ✅ Detects the problem type
# ✅ Analyzes the solution code
# ✅ Generates appropriate visualizations
# ✅ Creates complete presentation videopython main.py
# Interactive prompt for problem selection and options# Custom quality settings
python main.py 1 --quality high_quality # 1080p60
python main.py 1 --quality medium_quality # 720p30 (default)
python main.py 1 --quality low_quality # 480p15
# Skip video combination (generate scenes only)
python main.py 1 --no-combine- Smart Detection: Recognizes hashmap + array pattern
- Visual Components: Animated array with index cursors, interactive hashmap operations
- Algorithm Steps: Target calculation, complement lookup, visual result highlighting
- Output:
TwoSumVisualization.mp4with 12 animation sequences
- Smart Detection: Identifies array merging algorithm
- Visual Components: Two sorted arrays, merge visualization, median calculation
- Algorithm Steps: Binary search approach, partitioning logic, final result
- Output:
Problem4Visualization.mp4with 10 animation sequences
- Smart Detection: Fallback for complex array algorithms
- Visual Components: Dynamic array displays, step-by-step processing
- Algorithm Steps: Initialization, element processing, transformation logic
- Output: Enhanced visualization with 27 animation sequences
# Automatic problem analysis workflow:
problem_info = analyzer.analyze_solution_file(solution_path)
# → Detects: arrays, hashmaps, algorithm patterns, complexity
suggestions = analyzer.suggest_visualization_approach(problem_info)
# → Routes: Two Sum, Median, LinkedList, Generic enhanced
scene_code = generator.generate_scenes_for_problem(problem_info)
# → Creates: Custom Manim scenes with appropriate visualizations- Problem 1 →
AlgorithmVisualizations.two_sum_visualization() - Problem 4 →
AlgorithmVisualizations.median_of_two_sorted_arrays() - Problem 3 →
AlgorithmVisualizations.array_processing_visualization() - LinkedList Problems →
LinkedListVisualizerwith node animations - Unknown Problems → Enhanced generic visualization with actual visual components
Each generated video follows professional presentation structure:
- 📋 Problem Statement - Clean problem introduction with examples
- 🎯 Visualization - Algorithm execution with visual components
- 💻 Code Solution - Formatted code with complexity analysis
- 🎉 Thank You - Professional conclusion with key concepts recap
📁 media/videos/leetcode_1/720p30/
├── 🎬 CompleteLeetcode1Presentation.mp4 # Final combined video
├── 📋 TwoSumProblemStatement.mp4 # Scene 1: Problem intro
├── 🎯 TwoSumVisualization.mp4 # Scene 2: Algorithm demo
├── 💻 TwoSumCodeSolution.mp4 # Scene 3: Code display
└── 🎉 TwoSumThankYou.mp4 # Scene 4: Conclusion
# Array Operations
SimpleArrayVisualizer.create_array_display(data, title="Array")
SimpleArrayVisualizer.create_two_arrays_comparison(arr1, arr2)
SimpleArrayVisualizer.create_merge_visualization(arrays)
# Algorithm Templates
AlgorithmVisualizations.two_sum_visualization(scene, nums, target)
AlgorithmVisualizations.median_of_two_sorted_arrays(scene, nums1, nums2)
AlgorithmVisualizations.array_processing_visualization(scene, nums, operation)# Standardized Problem Structure
framework = ProblemFramework(scene)
framework.create_title_section(problem_number, name, difficulty)
framework.create_problem_description(description, constraints)
framework.create_code_block(code, position)- AST Parsing: Deep structural analysis of Python code
- Import Detection: Automatically identifies required data structures
- Pattern Matching: Recognizes common algorithm patterns
- Complexity Analysis: Automatic time/space complexity detection
- Professional Transitions: Smooth fade-ins, slide animations
- Color Coding: Consistent color schemes for different data types
- Timing Control: Optimized animation speeds for educational clarity
- Visual Hierarchy: Clear information organization and emphasis
- Caching System: Reuses previously rendered animations
- Parallel Processing: Efficient scene generation and rendering
- Memory Management: Optimized for large datasets and complex visualizations
- Error Recovery: Robust error handling and fallback mechanisms
- Create course materials for data structures & algorithms
- Generate visual explanations for complex concepts
- Build interactive learning resources
- Visualize your solution approach
- Create compelling presentation materials
- Demonstrate problem-solving methodology
- YouTube tutorials with professional animations
- Blog post visualizations and examples
- Social media educational content
# Create new visualizer in src/data_structures/
class QueueVisualizer:
def create_queue_display(self, items):
# Implementation for queue visualization
pass# Extend algorithm_visualizations.py
class AlgorithmVisualizations:
@staticmethod
def binary_search_visualization(scene, array, target):
# Custom binary search animation
pass# Update scene_generator.py routing
if problem_id == 33: # Search in Rotated Sorted Array
return self._generate_binary_search_visualization(problem_info, class_name_base)- Python: 3.10+ compatibility
- Manim: Community Edition v0.19.0
- Video Output: MP4 format with configurable quality
- Rendering: Hardware-accelerated when available
- Platform: Cross-platform (Windows, macOS, Linux)
We welcome contributions! Here's how you can help:
- 🆕 Add New Visualizations: Implement visualizers for graphs, heaps, tries
- 🎨 Enhance Animations: Improve visual appeal and educational clarity
- 🧠 Expand AI Analysis: Add detection for more algorithm patterns
- 📚 Create Examples: Add more LeetCode problem demonstrations
- 🐛 Bug Fixes: Report and fix issues you encounter
This project is licensed under the MIT License - see the LICENSE file for details.
- Manim Community for the powerful animation framework
- LeetCode for providing the problem platform
- FFmpeg for video processing capabilities
- Open Source Community for inspiration and support
git clone <your-repo-url>
cd manim-coding-visualizer
pip install -r requirements.txt
python main.py 1
# Watch the magic happen! ✨Start creating stunning algorithm visualizations today! 🚀