AI-powered presentation generation system that creates beautiful HTML slide decks from topics or PDF documents, with automatic quality evaluation and continuous improvement.
- π¨ Dual Input Support - Generate from text topics or PDF documents
- π Smart Research - Automatic web research when knowledge is insufficient
- π AI Evaluation - Comprehensive quality assessment with Claude, GPT, or Gemini
- π― Multiple Themes - Professional themes for different presentation contexts
- π HTML to PDF - High-quality PDF conversion with customizable zoom
- π Organized Output - Structured folders with timestamps and source tracking
- π REST API - Full RESTful interface for programmatic access
- π€ Self-Evolution - Autonomous system that improves presentation quality over time
Example presentation generated from: Training Large Language Models to Reason in a Continuous Latent Space https://arxiv.org/pdf/2412.06769
git clone https://github.com/genmini-ai/OpenCanvas.git
cd OpenCanvas
pip install -e .
playwright install chromiumcp .env.example .env
# Edit .env with your API keysRequired: ANTHROPIC_API_KEY (get from console.anthropic.com)
Optional: BRAVE_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY
# From a topic
opencanvas generate "AI in healthcare" --purpose "academic presentation"
# From a PDF
opencanvas generate "https://arxiv.org/pdf/2505.20286" --purpose "research seminar"
# Full pipeline (generate + convert + evaluate)
opencanvas pipeline "quantum computing" --purpose "conference talk" --evaluate# Topic-based generation
opencanvas generate "sustainable energy solutions" \
--purpose "corporate presentation" \
--theme "natural earth"
# PDF-based generation (images extracted by default)
opencanvas generate "paper.pdf" --purpose "conference presentation"
# Disable image extraction
opencanvas generate "paper.pdf" --no-extract-imagesopencanvas convert output/slides.html \
--output presentation.pdf \
--zoom 1.5opencanvas evaluate evaluation_folder/opencanvas pipeline "machine learning ethics" \
--purpose "academic seminar" \
--evaluate \
--zoom 1.3Start the API server:
opencanvas api --host 0.0.0.0 --port 8000Make requests:
curl -X POST "http://localhost:8000/api/v1/generate" \
-H "Content-Type: application/json" \
-d '{
"input_source": "AI in healthcare",
"purpose": "academic presentation",
"theme": "professional blue"
}'Documentation: http://localhost:8000/docs Full API Guide: API_README.md
OpenCanvas creates organized directories for all outputs:
output/
βββ quantum_computing_20241128_120000/
βββ slides/
β βββ quantum_computing_slides.html
β βββ quantum_computing_presentation.pdf
βββ evaluation/
β βββ quantum_computing_evaluation.json
βββ sources/
βββ source_content.txt # For topic-based
βββ source.pdf # For PDF-based
| Variable | Required | Default | Description |
|---|---|---|---|
ANTHROPIC_API_KEY |
β | - | Claude API key (generation) |
BRAVE_API_KEY |
β | - | Web search API key |
GEMINI_API_KEY |
β | - | Gemini API key (evaluation) |
OPENAI_API_KEY |
β | - | OpenAI API key (evaluation) |
EVALUATION_PROVIDER |
β | gemini |
claude, gpt, or gemini |
EVALUATION_MODEL |
β | gemini-2.5-flash |
Model for evaluation |
DEFAULT_THEME |
β | professional blue |
Presentation theme |
DEFAULT_ZOOM |
β | 1.2 |
PDF zoom factor |
professional blue- Clean corporate designclean minimalist- Simple elegant layoutnatural earth- Warm earth tonesmodern contemporary- Trendy cutting-edgewarm earth tones- Cozy approachablebold high contrast- High-impact design
Full list: See themes.py
# Run full test suite
python run_tests.py
# Light mode (faster)
python run_tests.py light
# Specific tests
python run_tests.py topic # Topic generation only
python run_tests.py pdf # PDF generation onlyOpenCanvas includes an autonomous improvement system that learns from evaluation results:
# Run evolution cycle
opencanvas evolve --max-iterations 3 --improvement-threshold 0.15The system automatically:
- Evaluates presentation quality
- Identifies improvement opportunities
- Evolves prompts and generates new tools
- Tracks performance improvements
Learn more: docs/architecture/evolution-system.md
- Installation Guide - Detailed setup instructions
- CLI Reference - Complete command reference
- API Guide - REST API documentation
- Architecture - System design
- Contributing - How to contribute
- Examples - Usage examples
"opencanvas command not found"
pip install -e .
which opencanvas"ANTHROPIC_API_KEY is required"
cat .env | grep ANTHROPIC_API_KEYPlaywright not available
playwright install chromium
# Or use selenium
opencanvas convert slides.html --method seleniumWeb research not working
# Add BRAVE_API_KEY to .env for web research
# Without it, generation uses only Claude's knowledgeMore troubleshooting: docs/troubleshooting.md
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
git clone https://github.com/genmini-ai/OpenCanvas.git
cd OpenCanvas
pip install -r requirements-all.txt
playwright install chromiumpython run_tests.py
pytest tests/This project is licensed under the MIT License - see the LICENSE file for details.
Built with:
- Anthropic Claude - AI generation
- Playwright - Browser automation
- FastAPI - REST API framework
- Brave Search - Web research
Star this repo if you find it useful! β
