npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

osd-paperjs-annotation

v0.7.6

Published

Annotation tools for OpenSeadragon using PaperJS

Downloads

1,063

Readme

osd-paperjs-annotation - Annotation tools for Openseadragon built with Paper.js

This project combines the OpenSeadragon zoomable image viewer with PaperJS-based annotations drawn into a synced zoomable overlay.

Quick start guide:

To get started with a basic overlay, only a couple lines of code are needed.

// import the PaperOverlay object. You need to be using a JavaScript module.
// if paper.js is not already included, it will be automatically loaded during import
import { PaperOverlay } from './src/js/paper-overlay.mjs';

// viewer creation, get reference to a TiledImage
let viewer = new OpenSeadragon({...});
let tiledImage = viewer.world.getItemAt(0);

// create a paper.js object
let myPaperItem = new paper.Path(...); // configure your paper item however you want

// add a PaperOverlay to the viewer
viewer.createPaperOverlay();

// add the paper.js item you've previously created to the overlay
tiledImage.addPaperItem(myPaperItem);

// you can modify the paper.js item using normal paper.js functionality
myPaperItem.fillColor = 'blue';

// A special `rescale` property can be used to automatically adjust properties during zooming
myPaperItem.rescale = {strokeWidth: 2}

API Documentation:

See the JSDoc documentation pages for information about how to use the library.

Tool and project events: Tools emit item-created, item-updated, and item-converted (and the project re-emits them). Subscribe on a tool or on the project to react to annotation creation and edits. See docs/tool-and-project-events.md.

CSS scoping (embedding in larger apps)

Annotation UI styles are scoped under .osd-paperjs-annotation so they do not style unrelated page chrome. AnnotationToolkit adds that class to viewer.element; official toolbar/layer UI from getToolbar() / getLayerUI() include a built-in scope wrapper. Custom DOM outside those roots may need the same class. See docs/css-scoping.md.

Demo pages:

See the Demo pages to try out the functionality.

Digital Slide Archive Annotator

View and annotate slides from any Digital Slide Archive instance. Enter the base URL for the DSA in the box and press the "Open DSA" button. Some archives may have publically available slides to view, but to save changes you will need to be logged in.

YOLO Reviewer for DSA

Customized version of the Digital Slide Archive Annotator that adds tools specifically for reviewing and modifying bounding boxes for AI training.

To do

  • BlankCanvasTileSource for OpenSeadragon -- Allow an empty/blank image to be used as a drawing background, rather than an actual image

Necessary packages -temp

One time guide for documentation task runner: Goto directory in command prompt Npm install -g jsdoc npm install --g gulp gulp-babel gulp-jsdoc3 chokidar webpack-stream del path url npm install -g webpack webpack-cli webpack-stream terser-webpack-plugin path url

Gulp Directions

Open command prompt and goto build directory

Gulp Updater : updates bundle.js and does documentation whenever you save a file Gulp DocUpdater: only updates documentation whenever you save a file Gulp PackUpdater: only updates bundle.js whenever you save a file Gulp webpack: updates bundle.js Gulp doc: updates documentation Gulp Demo: Launches the rotation control overlay demo on a local HTML address in your default browser