The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×

    A JS client-side library for creating graphic and interactive experiences, based on the core principles of Processing. —
    Filed under  › 

    • 🔾86%Overall
    • 6,157
    • 12 hours
    • 🕩867
    • 👥16

    Build Status npm version


    Hello! p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today's web.

    Using the original metaphor of a software sketchbook, p5.js has a full set of drawing functionality. However, you're not limited to your drawing canvas, you can think of your whole browser page as your sketch! For this, p5.js has addon libraries that make it easy to interact with other HTML5 objects, including text, input, video, webcam, and sound.

    p5.js is a new interpretation, not an emulation or port, and it is in active development. An official editing environment is coming soon, as well as many more features!

    If you already know the basics of JS or Processing, the p5.js overview wiki page is a good place to start. The frequently asked questions might also be helpful.

    If you have found a bug in the p5.js library, you can file it here under the “issues” tab.

    p5.js library

    To use p5.js, you can download the p5.js library here. If you are interested in the most recent, less stable version, you can clone this repository and run grunt from the command line to generate the library from source. See the development wiki for more information about our build process.


    Please post bugs in the proper repository:


    Check out for lots more! Here are some quick-links:

    • Get Started — Create and run your first sketch!
    • p5.js overview — An overview of the main features and functionality of p5.js.
    • Reference — The functionality supported by p5.js.
    • Learn — Tutorials and short, prototypical examples exploring the basics of p5.js.
    • Forum — Ask and answers questions about how to make things with p5.js here.
    • Libraries — Extend p5 functionality to interact with HTML, manipulate sound, and more!
    • FAQ

    Get Involved

    p5.js is a collaborative project created by many individuals, and you are invited to help. All types of involvement are welcome. See the community section to get started!

    Developers, check out the development wiki page for more in-depth details about contributing code, bug fixes, and documentation.

    Show All