Skip to content

jsonpassion/paperlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PaperLink

Turn any collection of research papers into an interactive 3D galaxy visualization.

Three.js Zero Dependencies Single HTML MIT License

Live Demo (PaperGoat Galaxy) · Live Demo (Apple ML)

PaperLink Screenshot 1 PaperLink Screenshot 2

Features

  • 3D Interactive Globe — Papers as glowing nodes on a sphere, edges as curved lineage arcs
  • Click & Explore — Click any node for details, Shift+Click for multi-select
  • Filter & Search — Filter by category, year, score; full-text search
  • Dark / Light Mode — Automatic system preference detection
  • Bilingual (EN/KR) — Built-in i18n with one-click toggle
  • Responsive — Desktop, tablet, and mobile optimized
  • Single HTML — No server, no build tools required for basic usage
  • GitHub Pages Ready — Deploy in 2 minutes

Quick Start

Option A: Fork & Deploy (2 min)

  1. Fork this repository — Click the "Fork" button above
  2. Enable GitHub Pages — Go to Settings > Pages > Source: main / root
  3. Done! — Your galaxy is live at https://<your-username>.github.io/paperlink/

The template ships with 20 sample papers. Edit papers.json to add your own.

Option B: Local Development

# Clone
git clone https://github.com/jsonpassion/paperlink.git
cd paperlink

# Copy sample data
cp papers.sample.json papers.json

# Open in browser (any local server works)
python -m http.server 8000
# → http://localhost:8000

Customizing Your Data

Step 1: Edit papers.json

Each paper needs these fields:

{
  "id": "unique-id",
  "rank": 1,
  "alias": "Short Name",
  "title": "Full Paper Title",
  "url": "https://arxiv.org/abs/...",
  "year": 2024,
  "score": 95,
  "categories": ["LLM", "Scaling"],
  "cluster": "llm",
  "reason": "Why this paper matters (shown in detail panel)",
  "has_review": false,
  "one_liner": "",
  "key_discoveries": [],
  "review_url": "",
  "reason_en": "English version of reason"
}

Step 2: Define Edges (Paper Lineage)

Edges show relationships between papers:

{
  "edges": [
    {"source": "paper-A", "target": "paper-B", "type": "lineage"}
  ]
}

Step 3: Customize Clusters

Clusters define the color-coded categories. Customize them in the clusters section:

{
  "clusters": {
    "llm":        {"label": "LLM",          "color": "#3b82f6", "icon": "🧠"},
    "vision":     {"label": "Vision",       "color": "#10b981", "icon": "👁️"},
    "generation": {"label": "Generation",   "color": "#f59e0b", "icon": "🎨"}
  }
}

Step 4: Build for Production (Optional)

To inline data into a single HTML file for deployment:

python build.py
# → dist/index.html (single file, no external data fetch)

Options:

python build.py --input my_custom_data.json
python build.py --output build/index.html

Scoring Rubric

Papers are sized proportionally to their score (80–100 range). The default scoring criteria:

Weight Criterion Description
30% Paradigm Shift Did it open a new research direction?
25% Adoption & Industry Real-world production usage
20% Citation & Ecosystem Downstream research impact
15% Technical Novelty Originality and depth
10% Timeliness Current relevance and trajectory

Project Structure

paperlink/
├── index.html              ← Visualization engine (Three.js)
├── papers.json             ← Your paper data (gitignored in production)
├── papers.sample.json      ← Sample data with 20 mock papers
├── build.py                ← Inline papers.json into HTML for deployment
├── dist/
│   └── index.html          ← Production build (after running build.py)
├── LICENSE                 ← MIT
└── README.md

Keyboard Shortcuts

Key Action
ESC Reset selection & filters
Shift + Click Multi-select nodes
Scroll Zoom in/out
Drag Rotate globe

Live Examples

These sites are built with the same engine:


Contributing

PRs are welcome — bug fixes, new features, UX improvements. Please open an issue first for large changes.


License

MIT License. See LICENSE for details.

Built by Jason Lee as part of the PaperGoat project.

If you find this useful, a star would be appreciated!

About

Turn any research paper collection into an interactive 3D galaxy. Fork → Edit papers.json → Deploy.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors