# microsoft/researchstudio architecture

> Architecture diagram of the GitHub repository microsoft/researchstudio, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/microsoft/researchstudio
- Repository: https://github.com/microsoft/researchstudio

## Overview

ResearchStudio is a suite of agent skills spanning research ideation before a paper and publication deliverables after one is complete. The documented IdeaSpark workflow turns a research direction into an evidence-grounded, reviewer-defensible idea; the Reel workflow turns a paper into visual and editorial outputs. The tree identifies specialized scripts for search, validation, asset preparation, poster creation, and reel generation. Detailed orchestration among many of these scripts is not established by the sampled excerpts, so the graph shows documented product stages and omits uncertain internal wiring.

Main entry points: [`ResearchStudio-Reel/skills`](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills) (ResearchStudio-Reel), [`ResearchStudio-Idea/skills/idea_spark`](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark) (IdeaSpark), [`ResearchStudio-Reel/skills/paper2poster`](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2poster) (Poster workflow), [`ResearchStudio-Idea/skills/idea_spark/scripts/run.py`](https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/idea_spark/scripts/run.py) (Ideation pipeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_idea["IdeaSpark"]
  node_ideaspark["IdeaSpark"]
  node_idea_pipeline["Ideation pipeline<br/>[run.py]"]
  node_idea_validators["Idea validators"]
  node_idea_card["Defensible idea"]
  node_pipeline_diagram["Method diagram<br/>[gen_pipeline.py]"]
end

subgraph group_search["Paper Research"]
  node_idea_search["Literature search"]
  node_paper_search["Paper search skill<br/>[search_papers.py]"]
  node_search_sources["Search connectors"]
end

subgraph group_reel["Paper Deliverables"]
  node_reel_skill["ResearchStudio-Reel"]
  node_asset_prep["Paper assets"]
  node_video_skill["Walkthrough video"]
  node_blog_skill["Bilingual blog"]
  node_reel_builder["Interactive reel"]
  node_reel_output["Reel viewer"]
end

subgraph group_poster["Poster Rendering"]
  node_poster_skill["Poster workflow"]
  node_poster_compose["Poster composition<br/>[compose_poster.py]"]
  node_poster_output["Editable poster"]
end

node_researcher(("Researcher"))
node_direction["Research direction"]
node_academic_sources["Academic sources"]
node_finished_paper["Finished paper PDF"]

node_researcher -->|"provides"| node_direction
node_direction -->|"starts ideation"| node_ideaspark
node_ideaspark -->|"runs pipeline"| node_idea_pipeline
node_ideaspark -->|"grounds ideas"| node_idea_search
node_idea_search -->|"searches literature"| node_paper_search
node_paper_search -->|"dispatches searches"| node_search_sources
node_search_sources -->|"queries sources"| node_academic_sources
node_ideaspark -->|"validates output"| node_idea_validators
node_idea_pipeline -->|"produces"| node_idea_card
node_ideaspark -.->|"can generate"| node_pipeline_diagram
node_researcher -->|"provides"| node_finished_paper
node_finished_paper -->|"starts deliverables"| node_reel_skill
node_reel_skill -->|"prepares assets"| node_asset_prep
node_reel_skill -->|"creates poster"| node_poster_skill
node_poster_skill -->|"composes layout"| node_poster_compose
node_poster_skill -->|"renders"| node_poster_output
node_reel_skill -->|"creates video"| node_video_skill
node_reel_skill -->|"creates blog"| node_blog_skill
node_reel_skill -->|"builds reel"| node_reel_builder
node_reel_builder -->|"produces"| node_reel_output

click node_ideaspark "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark"
click node_idea_pipeline "https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/idea_spark/scripts/run.py"
click node_idea_search "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark/scripts"
click node_paper_search "https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/paper_search/scripts/search_papers.py"
click node_search_sources "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/paper_search/scripts"
click node_idea_validators "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark/scripts/validators"
click node_pipeline_diagram "https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/idea_spark/scripts/gen_pipeline.py"
click node_reel_skill "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills"
click node_asset_prep "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2assets/scripts"
click node_poster_skill "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2poster"
click node_poster_compose "https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Reel/skills/paper2poster/references/compose_poster.py"
click node_video_skill "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2video/scripts"
click node_blog_skill "https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2blog/scripts"
click node_reel_builder "https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Reel/skills/paper2reel/scripts/build_reel_from_paper.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ideaspark,node_idea_pipeline,node_idea_validators,node_idea_card,node_pipeline_diagram toneBlue
class node_idea_search,node_paper_search,node_search_sources toneAmber
class node_reel_skill,node_asset_prep,node_video_skill,node_blog_skill,node_reel_builder,node_reel_output toneMint
class node_poster_skill,node_poster_compose,node_poster_output toneRose
class node_researcher,node_direction,node_academic_sources,node_finished_paper toneIndigo
```

## Components

### IdeaSpark

- [IdeaSpark](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark): `ResearchStudio-Idea/skills/idea_spark`
- [Ideation pipeline](https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/idea_spark/scripts/run.py): `ResearchStudio-Idea/skills/idea_spark/scripts/run.py`
- [Idea validators](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark/scripts/validators): `ResearchStudio-Idea/skills/idea_spark/scripts/validators`
- **Defensible idea**
- [Method diagram](https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/idea_spark/scripts/gen_pipeline.py): `ResearchStudio-Idea/skills/idea_spark/scripts/gen_pipeline.py`

### Paper Research

- [Literature search](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/idea_spark/scripts): `ResearchStudio-Idea/skills/idea_spark/scripts`
- [Paper search skill](https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Idea/skills/paper_search/scripts/search_papers.py): `ResearchStudio-Idea/skills/paper_search/scripts/search_papers.py`
- [Search connectors](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Idea/skills/paper_search/scripts): `ResearchStudio-Idea/skills/paper_search/scripts`

### Paper Deliverables

- [ResearchStudio-Reel](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills): `ResearchStudio-Reel/skills`
- [Paper assets](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2assets/scripts): `ResearchStudio-Reel/skills/paper2assets/scripts`
- [Walkthrough video](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2video/scripts): `ResearchStudio-Reel/skills/paper2video/scripts`
- [Bilingual blog](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2blog/scripts): `ResearchStudio-Reel/skills/paper2blog/scripts`
- [Interactive reel](https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Reel/skills/paper2reel/scripts/build_reel_from_paper.py): `ResearchStudio-Reel/skills/paper2reel/scripts/build_reel_from_paper.py`
- **Reel viewer**

### Poster Rendering

- [Poster workflow](https://github.com/microsoft/researchstudio/tree/main/ResearchStudio-Reel/skills/paper2poster): `ResearchStudio-Reel/skills/paper2poster`
- [Poster composition](https://github.com/microsoft/researchstudio/blob/main/ResearchStudio-Reel/skills/paper2poster/references/compose_poster.py): `ResearchStudio-Reel/skills/paper2poster/references/compose_poster.py`
- **Editable poster**

### Other components

- **Researcher**
- **Research direction**
- **Academic sources**
- **Finished paper PDF**

## Connections

- Researcher → Research direction: provides
- Research direction → IdeaSpark: starts ideation
- IdeaSpark → Ideation pipeline: runs pipeline
- IdeaSpark → Literature search: grounds ideas
- Literature search → Paper search skill: searches literature
- Paper search skill → Search connectors: dispatches searches
- Search connectors → Academic sources: queries sources
- IdeaSpark → Idea validators: validates output
- Ideation pipeline → Defensible idea: produces
- IdeaSpark → Method diagram: can generate
- Researcher → Finished paper PDF: provides
- Finished paper PDF → ResearchStudio-Reel: starts deliverables
- ResearchStudio-Reel → Paper assets: prepares assets
- ResearchStudio-Reel → Poster workflow: creates poster
- Poster workflow → Poster composition: composes layout
- Poster workflow → Editable poster: renders
- ResearchStudio-Reel → Walkthrough video: creates video
- ResearchStudio-Reel → Bilingual blog: creates blog
- ResearchStudio-Reel → Interactive reel: builds reel
- Interactive reel → Reel viewer: produces
