PPT Master is a Python-based application designed to generate natively editable PowerPoint (PPTX) presentations from diverse source formats including PDF, DOCX, Markdown, and URLs. The system operates as a CLI tool and AI agent skill, orchestrating a workflow that converts source content into SVG intermediates before rendering them into native DrawingML shapes within the PPTX file. This approach prioritizes editability over flattened image exports, allowing users to modify text and shapes directly in PowerPoint. The architecture relies heavily on external AI APIs for content generation and image creation, with a local Flask server providing live preview and confirmation capabilities. The codebase functions as a presentation engineering toolkit, featuring bidirectional conversion between PPTX and SVG, template management, and asset handling. It enforces strict design constraints via machine-readable 'spec_lock' files to maintain visual consistency across generated decks. The application is structured as a modular skill within AI IDEs (Claude Code, Cursor), allowing developers to invoke presentation generation via chat commands. While the core conversion logic is robust, the system's stability is intrinsically linked to the availability and schema of external AI providers and the specific behavior of the python-pptx library. This repository represents a hybrid of application engineering and data pipeline logic. While the primary output is a software artifact (the PPTX file), the internal processing involves significant data transformation (document parsing, image generation, XML manipulation). The extensive example suite serves as both documentation and regression testing for the conversion engine, demonstrating the tool's capability across technical, business, and artistic domains.
PPTAgent is an agentic framework for automatic PowerPoint presentation generation from documents. It operates as a production-grade application with CLI, web UI, Docker deployment, and an MCP server for integration with external tools like Claude and Cursor. The system uses a two-stage pipeline: analysis (induction of slide layouts and content schemas from reference presentations) and generation (editing actions via a structured API). It supports multiple generation modes—freeform (DeepPresenter) and template-based (PPTAgent)—and includes a multi-agent orchestration loop with planner, research, and design agents. The codebase is split into two packages: `pptagent` (core generation library and evaluation framework) and `deeppresenter` (production runtime with CLI, Docker, and HTML-to-PPTX conversion). While primarily an application, it has strong research roots, including academic papers at EMNLP 2025 and ACL 2026, an evaluation framework (PPTEval) for content, style, and coherence scoring, and a set of induced slide templates. The architecture is modular, with role-based agents defined in YAML, MCP-based tool servers, and a presentation data model with closure-based editing. External dependencies include OpenAI, Tavily, SerpAPI, MinerU, and Docker, making it a complex but well-structured system for automated presentation creation.
fullPage.js is a vanilla JavaScript library for creating full-screen scrolling websites (one-page sites) with vertical/horizontal snap scrolling, sections, and slides. The codebase uses a modular ES6 architecture with separate concerns for scroll handling, mouse/touch input, keyboard navigation, state management, and DOM manipulation. It exports a main class from src/js/fullpage.js with initialization via src/js/app.js. The library manages DOM structure through CSS classes (.fp-section, .fp-slide, .active, .fp-loaded) and maintains global state in src/js/common/state.js. It supports optional jQuery integration via src/js/jquery-adaptor.js and includes polyfills for IE11 compatibility. The build system uses Rollup for bundling and Gulp for asset processing, producing distribution files in dist/. The library features lazy loading for media, responsive breakpoints, and extensive callback hooks for lifecycle management.
PPTist is a full-featured web-based slide editor and presentation application, built with Vue 3, TypeScript, and Pinia. It replicates core PowerPoint functionality entirely in the browser, supporting text, image, shape, line, chart, table, video, audio, and LaTeX elements. Users can create, edit, animate, and present slides, with import/export support for PPTX, PDF, images, and a custom .pptist format. An AI-assisted slide generation feature allows users to input a topic and receive a complete slide deck via an external API, with template-based layout and image selection. The architecture is a single-page application with a custom canvas rendering system, rich text editing via ProseMirror, and state management through Pinia stores. The editor is divided into three main modes: Editor (full editing with thumbnails, toolbar, and canvas), Screen (presentation with speaker notes, audience view, writing board, and laser pointer), and Mobile (basic editing and preview for touch devices). Data persistence uses IndexedDB via Dexie for undo/redo snapshots, and slide data is stored as JSON in Pinia stores. External dependencies include ECharts for charts, pptxgenjs for PPTX export, and a backend server for AI generation and image search. Key entry points include src/App.vue (top-level routing), src/views/Editor/index.vue (main editor), src/views/Screen/index.vue (presentation mode), and src/views/Mobile/index.vue (mobile mode). Data flows center on the slide store: user actions trigger mutations captured as snapshots for undo/redo, export processes convert internal JSON to target formats, and import parses external files into the internal schema. The AI PPT flow sends a user prompt to the backend, receives an outline and slide data, then fills template slides with content and images. The application is actively maintained with a large community (9386 stars, 1770 forks) and is licensed under AGPL-3.0. It relies on an external backend for AI features and image search, meaning those features are not self-contained. The codebase is well-structured but lacks automated tests, and some components (e.g., HTML parser, shape library) are self-contained and potentially reusable in other projects.