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 video
python 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.mp4
with 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.mp4
with 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 โ
LinkedListVisualizer
with 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! ๐