AI-powered presentation generation from topics or PDFs. Beautiful slides in minutes, not hours.
✨ Key Features
- 🎨 Dual Output Modes - HTML slides or PNG images with Gemini AI
- 📄 Flexible Input - Generate from topics or PDF documents
- 🎯 Smart Figure Matching - Auto-extracts and matches figures to slides (Image mode + PDF)
- 📊 Quality Evaluation - AI-powered assessment and improvement
- 🚀 REST API - Full programmatic access
🚀 Quick Start
Installation
git clone https://github.com/genmini-ai/OpenCanvas.git cd OpenCanvas pip install -e .
Setup
cp .env.example .env # Add your ANTHROPIC_API_KEY (required for both modes) # Add your GEMINI_API_KEY (required for Image mode)
Get API keys:
- Anthropic: console.anthropic.com
- Gemini: aistudio.google.com
Generate Your First Presentation
🔥 Image Mode (PNG slides with AI-generated visuals)
# From a topic opencanvas generate "quantum computing" \ --output-format image \ --theme minimalist # From a PDF (with automatic figure extraction & matching) opencanvas generate "https://arxiv.org/pdf/2412.06769" \ --output-format image \ --theme minimalist
Available themes:
minimalist(tested),academic,corporate,creative,tech,cartoonExample presentations: Minimalist theme | Cartoon theme PDF
Image mode: AI-generated slide with automatically extracted and matched figures from research paper
HTML Mode (Default)
# From a topic opencanvas generate "AI in healthcare" --purpose "conference talk" # From a PDF opencanvas generate "https://arxiv.org/pdf/2412.06769" --purpose "conference talk"
HTML mode: Clean, professional slides with embedded styles
📖 Output Modes
🔥 Image Mode
- Output: Individual PNG slides + compiled PDF
- Best for: High-quality visuals, research presentations with figures
- Features: AI-generated designs, automatic figure extraction from PDFs, intelligent figure-to-slide matching
- Time: ~3 minutes for 10-12 slides
- Requires:
GEMINI_API_KEY
HTML Mode
- Output: Single HTML file with embedded styles
- Best for: Quick presentations, web sharing, easy editing
- Features: Clean layouts, multiple themes, fast generation
- Convert to PDF:
opencanvas convert slides.html
📁 Output Structure
HTML Mode:
output/topic_20241213_225914/
├── slides/
│ └── slides.html # Single HTML file
└── sources/
└── source_content.txt
Image Mode:
output/topic_20241213_225914/
├── slides/
│ ├── slide_001.png
│ ├── slide_002.png
│ └── ...
├── extracted_images/ # (PDF input only)
│ ├── figure_1.png
│ └── figure_captions.json
├── sources/
│ ├── blog_content.txt
│ └── slide_blueprints.json
└── presentation.pdf # Auto-compiled
📚 Documentation
- Installation Guide - Detailed setup
- CLI Reference - All commands
- Image Mode Guide - Figure matching & PNG slides
- API Guide - REST API
- Evolution System - Auto-improvement
🎯 Common Use Cases
# HTML: Quick presentation from topic opencanvas generate "machine learning basics" --purpose "lecture" # HTML: Research paper to slides opencanvas generate "paper.pdf" --purpose "seminar" # Image: High-quality presentation with figures opencanvas generate "paper.pdf" \ --output-format image \ --purpose "conference talk" # Complete pipeline with evaluation opencanvas pipeline "research topic" --purpose "conference" --evaluate
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
# Development setup git clone https://github.com/genmini-ai/OpenCanvas.git cd OpenCanvas pip install -r requirements-all.txt python run_tests.py
📄 License
MIT License - see LICENSE file for details.
🙏 Built With
- Anthropic Claude - AI generation
- Google Gemini - Image generation
- Docling - Figure extraction
- FastAPI - REST API
⭐ Star this repo if you find it useful!
📚 Full Documentation | 🐛 Report Issues | 💬 Discussions