Skip to content

RehgLab/ArcDeck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ArcDeck logo

Official Implementation of Narrative-Driven Paper-to-Slide Generation via ArcDeck

Tarik Can Ozden*1 Β  Sachidanand VS*1 Β  Furkan Horoz*1,2 Β  Ozgur Kara1 Β  Junho Kim1 Β  James M. Rehg1

1 University of Illinois Urbana-Champaign Β Β  2 Middle East Technical University
* Equal contribution

Quick Start β€’ Pipeline β€’ CLI Usage β€’ Web UI β€’ Themes β€’ ArcDeck as Claude Skills β€’ ArcBench β€’ Citation

arXiv Project Page HuggingFace Visitors


ArcDeck is an end-to-end slide generation framework that converts academic PDF papers into polished .pptx presentation slides. ArcDeck frames slide generation around the paper’s narrative structure instead of simple summarization. By combining narrative-driven outline generation with visually strong slide rendering, ArcDeck produces polished and engaging slide decks.


Pipeline Overview

ArcDeck Pipeline Overview

Pipeline Details

ArcDeck operates in three main phases:

1. Preprocessing

  • Converts the input PDF to Markdown using Docling (falls back to Marker if extraction is too short)
  • Extracts an asset dictionary of figures, tables, and citations

2. Narrative-Driven Outline Generation

This is the core intellectual contribution β€” a multi-agent loop that plans slides using discourse structure:

Step Agent Role
1 Discourse Parser Analyzes each section's rhetorical structure using RST, producing a binary discourse tree that captures how paragraphs relate (elaboration, contrast, evidence, etc.)
2 Commitment Builder Generates a high-level commitments.md contract capturing the paper's thesis, key takeaways, narrative spine, and slide budget priorities
3 Slide Planner / Reviser Groups paragraphs into slides using RST relations, then revises based on feedback
4 Narrative Critic Critiques the slide plan against the commitment and presentation quality rubrics
5 Narrative Judge Decides pass or revise β€” if revise, circles back the loop (up to 3 rounds)

3. Slide Generation

  • Slide Deck Constructor β€” An LLM agent plans detailed layouts (template selection, content placement, bullet points) and renders them into .pptx via python-pptx or PptxGenJS
  • Aesthetics Refiner β€” Matches extracted figures/tables to slides and applies visual styling

News

  • [04/2026]: πŸš€ We We have open-sourced the ArcDeck codebase!
  • [04/2026]: ✨ The ArcBench benchmark has been released on HuggingFace!
  • [04/2026]: πŸ“œ Narrative-Driven Paper-to-Slide Generation via ArcDeck is now available on arXiv!

TODO

  • Codex Plugin Release
  • Codebase & Claude Plugin Release
  • Benchmark Release

Quick Start

Install

pip install -r requirements.txt

Set API Keys

Create a .env file in the project root:

OPENAI_API_KEY=sk-...
# Or set other provider keys as needed

CLI Usage

Basic:

python -m slide_generation.arcdeck path/to/paper.pdf --model gpt-5

Full options:

python -m slide_generation.arcdeck path/to/paper.pdf \
    --model gpt-5 \
    --template 3 \
    --duration 20 \
    --audience researchers \
    --speaker_script

JS rendering (PptxGenJS):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
source ~/.bashrc

npm install pptxgenjs  # one-time setup

python -m slide_generation.arcdeck path/to/paper.pdf \
    --model gpt-5 \
    --use_js

CLI Flags

Flag Description Default
paper_path Path to input PDF (required)
--model LLM model name 4o
--template PPTX slide template (1–8) 1
--duration Target talk length (minutes) 20
--audience Target audience researchers
--speaker_script Generate speaker notes off
--use_js Generates slides using PptxGenJS Library False
--js_design PptxGenJS decoration layout (0–5) 0
--agentic_js Agentic JS generation (LLM writes the full PptxGenJS script) False

ArcDeck as Claude Skills

ArcDeck also includes a structured Claude Skills configuration for agentic paper-to-slides generation.

Skill Installation

  1. Create the skill directory and symlinks:

    mkdir -p .claude/skills/arcdeck
    ln -s "$(pwd)/arcdeck-skill/SKILL.md" .claude/skills/arcdeck/SKILL.md
    ln -s "$(pwd)/arcdeck-skill/agents" .claude/skills/arcdeck/agents
    ln -s "$(pwd)/arcdeck-skill/prompts" .claude/skills/arcdeck/prompts
    ln -s "$(pwd)/arcdeck-skill/reference" .claude/skills/arcdeck/reference
  2. Open Claude Code in the project directory:

    claude
  3. Run the skill:

    /arcdeck paper.pdf
    

Invocation

/arcdeck <pdf_path> [--audience <type>] [--duration <minutes>] [--template <theme>] [--speaker-notes]

Defaults:

  • audience=researchers
  • duration=20
  • template=ocean
  • speaker-notes=off

Skill Templates

Template Style Title Font Colors
ocean Ocean Gradient β€” navy/teal/cyan, light content slides Georgia 065A82 1C7293 0891B2
minimal Clean Minimal β€” white background, coral accent Calibri Light E63946 457B9D 2A9D8F
dark Dark Mode β€” charcoal backgrounds, violet accent Trebuchet MS 7F5AF0 2CB67D FF6B6B
warm Warm Academic β€” cream background, terracotta accent Georgia C45B3E 5B8A72 D4A84B

You can pass the theme via --template <name> or set ARCDECK_TEMPLATE=<name>.

Skill Pipeline Details

For the full multi-phase skill workflow, see arcdeck-skill/README.md.


Web UI

python app.py

Opens a Gradio interface at http://localhost:7860 where you can upload a PDF, configure options, and download the generated .pptx.


Slide Themes & Designs

PPTX Templates (--template 1–8)

Template 1 Template 2 Template 3 Template 4
Template 1 Template 2 Template 3 Template 4
Template 5 Template 6 Template 7 Template 8
Template 5 Template 6 Template 7 Template 8

JS Designs (--js_design 0–5)

Designs control geometric/ambient decoration style (background shapes, footer, title bar framing).

Design 0 β€” Circles & Bokeh Design 1 β€” Geometric Angular Design 2 β€” Sunset Gradient
Design 0 Design 1 Design 2
Design 3 β€” Aurora Neon Design 4 β€” Teal Minimalist Design 5 β€” Glassmorphism
Design 3 Design 4 Design 5

Supported Models

Configured via utils/llm/config.py. Supported platforms:

  • OpenAI β€” GPT-4o, GPT-5
  • Anthropic β€” Claude
  • vLLM β€” Local models (e.g., Qwen 32B)
  • DeepInfra / OpenRouter / Qwen β€” OpenAI-compatible endpoints

ArcBench

ArcBench is a curated benchmark dataset of 100 oral presentation papers from top-tier machine learning conferences (CVPR, ICCV, ICLR, ICML, NeurIPS), spanning 2022–2025. Each entry includes the full paper PDF, presentation slides PDF, and rich metadata. Papers were selected from oral presentations only, and filtered to ensure rich content (β‰₯3 figures, β‰₯3 tables) and availability of both the original paper PDF and presentation slides.

You can access the benchmark from ArcBench HuggingFace.


Repository Structure

ArcDeck/
β”œβ”€β”€ slide_generation/
β”‚   β”œβ”€β”€ arcdeck.py                 # Entry point β€” orchestrates all stages
β”‚   β”œβ”€β”€ outline_generation/         # Discourse parsing & multi-agent refinement
β”‚   β”œβ”€β”€ content_generation/         # PDF parsing, figure matching, layout planning
β”‚   └── renderer/                   # PPTX output (python-pptx & PptxGenJS)
β”œβ”€β”€ prompts/                        # All prompt templates
β”‚   β”œβ”€β”€ outline/                    #   Discourse parser, planner, critic, judge
β”‚   └── pipeline/                   #   Layout agent, refinement, figure match
β”œβ”€β”€ utils/                          # Shared utilities (LLM, PPTX, styling)
β”œβ”€β”€ asset/                          # Design preview images
β”œβ”€β”€ app.py                          # Gradio web UI
└── requirements.txt

Outputs

Generated files are saved under contents/<paper_name>/:

File Description
*_raw_content.json Parsed paper content
*_raw_content_rst.json RST-organized content
*_slide_plan.json Final slide plan
*_figures.json Figure/table metadata
*_output_slides.pptx Generated PowerPoint

Citation

If you find ArcDeck useful in your research, please cite our paper:

@article{ozden2026arcdeck,
  title     = {Narrative-Driven Paper-to-Slide Generation via ArcDeck},
  author    = {Ozden, Tarik Can and VS, Sachidanand and Horoz, Furkan
               and Kara, Ozgur and Kim, Junho and Rehg, James M.},
  journal   = {arXiv preprint arXiv:2604.11969},
  year      = {2026}
}

Acknowledgements

Selected prompts and code components in this repository’s visual generation components were adapted from SlideGen. We thank the SlideGen authors for making their work publicly available.

Contact, Support & Maintenance

For feedback, improvements, code support, or general inquiries, please contact tozden2@illinois.edu.

About

Narrative-Driven Paper-to-Slide Generation via ArcDeck

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors