Skip to content

amitmittal117/manim-leetcode-visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฌ LeetCode Visual Storyteller

Transform any LeetCode solution into stunning educational animations automatically!

Python Manim LeetCode

๐Ÿš€ 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!

โœจ What Makes This Special?

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

๐Ÿ”ฅ Live Demo

# 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! ๐ŸŽ‰

๏ฟฝ Key Features

๐Ÿค– AI-Powered Problem Analysis

  • 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

๐ŸŽจ Dynamic Visual Generation

  • 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

๐ŸŽฌ Professional Video Pipeline

  • 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

๐Ÿ—๏ธ Systematic Framework Architecture

๐Ÿ“ Project Structure

๐ŸŽฌ 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

๐Ÿš€ Getting Started

๐Ÿ“ฆ Installation

# 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

๐ŸŽฏ Setup Your LeetCode Repository

# 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/

โšก Usage

๐ŸŽฌ Automatic Video Generation

# 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

๐ŸŽฎ Interactive Mode

python main.py
# Interactive prompt for problem selection and options

โš™๏ธ Advanced 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

๐ŸŽจ Visualization Examples

๐Ÿ”ข Two Sum (Problem 1)

  • 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

๐Ÿ“Š Median of Two Sorted Arrays (Problem 4)

  • 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

๐Ÿ”„ Array Processing (Generic)

  • 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

๐Ÿง  AI Analysis Engine

Problem Detection & Analysis

# 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

Smart Visualization Routing

  • 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

๐ŸŽฅ Video Output Structure

Each generated video follows professional presentation structure:

  1. ๐Ÿ“‹ Problem Statement - Clean problem introduction with examples
  2. ๐ŸŽฏ Visualization - Algorithm execution with visual components
  3. ๐Ÿ’ป Code Solution - Formatted code with complexity analysis
  4. ๐ŸŽ‰ 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

๐Ÿ”ง Framework Components

๐ŸŽจ Visual Components Library

# 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)

๐Ÿ—๏ธ Problem Framework

# 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)

๐ŸŒŸ Advanced Features

๐Ÿ” Code Analysis Capabilities

  • 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

๐ŸŽฌ Animation Quality

  • 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

โšก Performance Optimization

  • 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

๐ŸŽฏ Use Cases

๐Ÿ“š Educational Content Creation

  • Create course materials for data structures & algorithms
  • Generate visual explanations for complex concepts
  • Build interactive learning resources

๐Ÿ‘จโ€๐Ÿ’ป Technical Interviews

  • Visualize your solution approach
  • Create compelling presentation materials
  • Demonstrate problem-solving methodology

๐Ÿ“– Content Creation

  • YouTube tutorials with professional animations
  • Blog post visualizations and examples
  • Social media educational content

๐Ÿ› ๏ธ Extending the Framework

Adding New Data Structures

# Create new visualizer in src/data_structures/
class QueueVisualizer:
    def create_queue_display(self, items):
        # Implementation for queue visualization
        pass

Adding New Algorithm Patterns

# Extend algorithm_visualizations.py
class AlgorithmVisualizations:
    @staticmethod
    def binary_search_visualization(scene, array, target):
        # Custom binary search animation
        pass

Adding New Problem Types

# 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)

๐Ÿ“Š Technical Specifications

  • 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)

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

  1. ๐Ÿ†• Add New Visualizations: Implement visualizers for graphs, heaps, tries
  2. ๐ŸŽจ Enhance Animations: Improve visual appeal and educational clarity
  3. ๐Ÿง  Expand AI Analysis: Add detection for more algorithm patterns
  4. ๐Ÿ“š Create Examples: Add more LeetCode problem demonstrations
  5. ๐Ÿ› Bug Fixes: Report and fix issues you encounter

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • 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

๐ŸŽฌ Ready to Transform Your LeetCode Solutions into Visual Masterpieces?

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! ๐Ÿš€

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages