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

p5-animation

v1.3.0

Published

A lightweight library which offers prebuild anaimation functions for your P5 sketches

Readme

p5-animation

NPM Version NPM License npm downloads test workflow

A lightweight library which offers prebuild animation functions for your P5 sketches

Install

yarn add p5-animation

Quick start

import p5 from "p5";
import animation, { ease } from "p5-animation";

// Define general animation properties
const { play, inProgress, progress } = animation({
  // Choose an easing function for animation
  // Refer to the `Animation functions` section for details
  animation: ease,
  // Set the duration of the animation in milliseconds
  duration: 1000,
});

let x = 0;

const sketch = (p5: p5) => {
  p5.setup = (p5: p5) => {
    p5.createCanvas(500, 500);
  };

  p5.draw = () => {
    p5.background("#fff");

    // Update the x value using the animation progress
    // The parameter of `progress` is the default value
    // returned when the animation is not in progress
    // Call `progress` each frame to animate smoothly
    x = progress(x);
    p5.rect(x, 0, 100, 100);
  };

  // Initiate animation on mouse click
  p5.mousePressed = () => {
    // Ensure that another animation is not already in progress
    if (!inProgress()) {
      // Define the start and end values for the animation
      // You can override previously defined general properties
      play({
        from: x,
        to: x + 100,
      });
    }
  };
};

// use the sketch
new p5(sketch);

When you call play function, it returns a promise which resolves when animation is finished, you can use await based on your logic

Animation Properties

These properties can be applied either as general settings or tailored for a specific animation, giving you flexibility in defining animations.

If you choose to provide these properties at a general level, they will serve as default values for all animations unless specified otherwise.

Required Properties

You must define these properties either as general settings, or if omitted, they must be specified each time you initiate an animation.

| Property | Type | | --------- | --------------------- | | duration | number | | animation | (x: number) => number |

Optional Properties

Enhance your animation control by utilizing these optional properties.

| Property | Type | | -------- | ------ | | delay | number |

Animation functions

Easing functions specify the rate of change of a parameter over time.

We have some build in animation functions, but you can build your own functions

Build in functions:

  • ease
  • easeInSine
  • easeOutSine
  • easeInOutSine
  • easeInCubic
  • easeOutCubic
  • easeInOutCubic
  • easeInQuint
  • easeOutQuint
  • easeInQuad
  • easeOutQuad
  • easeInOutQuad
  • easeInOutQuint
  • easeInCirc
  • easeOutCirc
  • easeInOutCirc
  • easeInQuart
  • easeOutQuart
  • easeInOutQuart
  • easeInExpo
  • easeOutExpo
  • easeInOutExpo

Check out cheat sheet for easing functions