SkillsMay 3, 2026·3 min read

Paper.js — The Swiss Army Knife of Vector Graphics Scripting

An open-source vector graphics scripting framework that runs on top of the HTML5 Canvas, offering a clean scene graph, powerful path manipulation, and PaperScript for concise creative coding.

Agent ready

This asset can be read and installed directly by agents

TokRepo exposes a universal CLI command, install contract, metadata JSON, adapter-aware plan, and raw content links so agents can judge fit, risk, and next actions.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
Paper.js Overview
Universal CLI install command
npx tokrepo install 6f0983fb-472e-11f1-9bc6-00163e2b0d79

Introduction

Paper.js is a vector graphics scripting framework built on the HTML5 Canvas. It provides a comprehensive, well-designed API for creating and manipulating vector graphics, with particular strength in path operations like boolean combinations, simplification, and smoothing.

What Paper.js Does

  • Creates and manipulates vector paths, shapes, compound paths, and raster images
  • Performs boolean operations (unite, intersect, subtract, exclude) on paths
  • Simplifies and smooths complex paths algorithmically
  • Handles mouse and keyboard events with hit-testing against the scene graph
  • Exports to SVG and imports SVG content as editable Paper.js items

Architecture Overview

Paper.js implements a full scene graph with a Project containing Layers, Groups, and Items. Each Item carries transformation matrices, styles, and child relationships. The rendering pipeline traverses the scene graph each frame, applying transformations hierarchically. A dedicated path geometry engine handles cubic bezier math, curve-fitting, and boolean clipping operations using a Greiner-Hormann variant.

Self-Hosting & Configuration

  • Install via npm or include the paper-full.js script from CDN
  • Initialize with paper.setup(canvas) to bind to an HTML5 canvas element
  • Use PaperScript (optional) for operator overloading on points and sizes
  • Configure view settings for frame rate, auto-update, and pixel ratio
  • Runs in Node.js with node-canvas for headless SVG or raster export

Key Features

  • Path boolean operations for constructive geometry (union, difference, intersection)
  • Curve and path simplification reduces point counts while preserving shape
  • Symbols and symbol instances for efficient repeated pattern rendering
  • Raster items with pixel manipulation for image processing within the scene graph
  • Comprehensive event model with onFrame, onMouseDown, onMouseDrag handlers

Comparison with Similar Tools

  • Fabric.js — focused on interactive object manipulation; less path math and booleans
  • Rough.js — sketch aesthetic only; no path operations or scene graph
  • Snap.svg — SVG manipulation library; Paper.js renders to Canvas with SVG import/export
  • Two.js — minimal 2D API across renderers; Paper.js has richer geometry tools
  • p5.js — creative coding focused on immediate mode; Paper.js offers retained scene graph

FAQ

Q: Can Paper.js export to SVG? A: Yes. Call project.exportSVG() to get a full SVG representation of the current scene.

Q: Does it work with React? A: Yes. Instantiate Paper.js on a canvas ref in useEffect and manage scope lifecycle manually.

Q: What is PaperScript? A: A thin scripting extension that enables operator overloading (e.g., point1 + point2) for cleaner math syntax. Plain JavaScript works without it.

Q: How does performance scale? A: Paper.js handles thousands of path items efficiently. For tens of thousands of simple shapes, consider switching to a WebGL renderer.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets