Transform research papers, GitHub repositories, and technical content into visual stories
- Node.js 18+
- Python 3.8+
- Docker & Docker Compose (optional)
Run the setup script for your platform:
Linux/Mac:
./setup.shWindows:
setup.batThe script will:
- ✅ Check all prerequisites
- ✅ Create Python virtual environment
- ✅ Install backend dependencies
- ✅ Install frontend dependencies
- ✅ Create environment files
- ✅ Provide next steps
If you prefer manual setup, see SETUP.md for detailed instructions.
- Ingest: Paste any arXiv paper, GitHub repository, or technical article URL and watch as it's decomposed into digestible sections
- Analyze: AI agents analyze each section to identify key concepts and visual opportunities
- Generate: Multi-agent pipeline creates 3Blue1Brown-style Manim animations for complex ideas
- Validate: Four-stage quality gates ensure syntactic correctness, spatial coherence, and runtime stability
- Experience: Read through an interactive scrollytelling interface with embedded animated visualizations
Explorion consists of two main parts:
- Backend (Python): Uses FastAPI,
uvfor dependency management, Dedalus SDK for AI orchestration, and Manim for video generation. - Frontend (Node.js): A Next.js 15 application utilizing Tailwind CSS and shadcn/ui.
Follow these steps to run Explorion on your local machine.
You must have the following system dependencies installed before running the project:
- Node.js (v18 or higher)
- Python (v3.11 or higher)
- uv: The fast Python package installer (
pip install uvor natively via curl/powershell) - Manim Engine Dependencies: (FFmpeg, Cairo, Pango)
- Windows: Use Chocolatey (
choco install ffmpeg pango cairo) or install them manually and add to PATH. Alternatively, follow Manim's Windows Guide. - macOS:
brew install ffmpeg cairo pango pkg-config - Linux (Ubuntu/Debian):
sudo apt install ffmpeg libcairo2-dev libpango1.0-dev pkg-config
- Windows: Use Chocolatey (
The backend handles AI generation, web scraping, and Manim video rendering.
-
Navigate to the backend directory:
cd backend -
Set up environment variables:
cp .env.example .env
Open the newly created
.envfile and add your API keys:DEDALUS_API_KEY: Required for the LLM agents to function. Get it from Dedalus Labs.GITHUB_TOKEN: (Optional but recommended) For scraping GitHub repositories without hitting API rate limits.TTS_PROVIDER: Set togttsfor free TTS, or configureopenai/elevenlabsif you have keys.
-
Install Python dependencies using
uv:uv sync
(This will automatically create a virtual environment and install all requirements from
uv.lock/pyproject.toml) -
Start the FastAPI backend server:
uv run uvicorn main:app --reload --host 0.0.0.0 --port 8000
The API will now be running at
http://localhost:8000.
The frontend provides the interactive scrollytelling interface.
-
Open a new terminal tab/window and navigate to the frontend directory:
cd frontend -
Set up frontend environment variables:
cp .env.local.example .env.local # If the example file existsEnsure inside
.env.localthatNEXT_PUBLIC_API_URLpoints to your backend (default ishttp://localhost:8000). If you want to bypass the backend for frontend UI testing, you can setNEXT_PUBLIC_USE_MOCK=true. -
Install Node dependencies:
npm install
-
Start the frontend development server:
npm run dev
The UI will now be running at
http://localhost:3000.
- Open your browser and navigate to
http://localhost:3000 - Enter an arXiv URL (e.g.,
https://arxiv.org/abs/2508.12111) or a GitHub repository link. - Wait as the multi-agent system fetches the text, writes the Manim scripts, and renders the videos. (Monitor your backend terminal for processing logs and any rendering errors).
Research papers and complex technical documentation often arrive as monoliths — dense, opaque, intimidating. Within them lies a mosaic of brilliant ideas waiting to be seen.
Explorion transforms fragments of academic text and technical content into animated visual explanations, making complex research and codebases accessible to everyone.
Explorion uses a sophisticated multi-agent system powered by AI orchestration:
- Summarizer Agent: Extracts 5 key concepts from any source material
- Visualization Planner Agent: Converts concepts into detailed scene briefs for animation
- Manim Coder Agent: Generates production-quality Python animation code
- Render Engine: Converts Manim code to 3Blue1Brown-style MP4 videos
- Spatial Validator: Ensures all visual elements fit within frame bounds
- Section Analyzer: Groups visualizations by paper section for scrollytelling
- arXiv Research Papers — Full paper parsing with section extraction
- GitHub Repositories — README and code documentation analysis
- Technical Blog Posts — URL-based content ingestion
- Raw Text/Markdown — Custom documentation and articles
Four-stage validation pipeline ensures:
- ✅ Syntactic correctness (valid Manim Python)
- ✅ Spatial coherence (objects within frame bounds)
- ✅ Visual consistency (colors, fonts, layout standards)
- ✅ Runtime stability (successful video rendering)
- Scrollytelling Interface: Read paper sections with embedded videos
- Section Navigation: Jump between concepts with floating dock
- Progress Tracking: See generation status in real-time
- Document Library: Browse all processed content
Issue: When processing arXiv papers:
- Only 1 visualization video is generated instead of multiple (one per section)
- Videos lack explanatory titles/text identifying the concept
Root Cause:
- Section filtering threshold too aggressive (40-character minimum explanation)
- Manim prompt explicitly forbids displaying descriptive text
Solution: See ISSUE_ANALYSIS.md for detailed technical breakdown and fix instructions.
Created by: Jatin Tilwani and Vardan Agarwal
This project is open source. Please refer to the LICENSE file for details.
Contributions are welcome! Please ensure you:
- Follow the existing code style
- Update tests and documentation
- Run validation pipelines before submitting PRs
- Reference any related issues in your PR description
- Architecture Details: See docs/ARCHITECTURE.md
- Deployment Guide: See docs/DEPLOY.md
- Setup Issues: Check docs/SETUP.md
- Issue Analysis: See ISSUE_ANALYSIS.md