p5.dom lets you interact with HTML5 objects beyond the canvas, including video, audio, webcam, input, and text.
p5.sound extends p5 with Web Audio functionality including audio input, playback, analysis and synthesis.
p5.accessibility makes the p5 canvas more accessible to people who are blind and visually impaired.
p5.asciiart is a simple and easy to use image - to - ASCII art converter for p5js. Created by Pawel Janicki.
With p5.bots you can interact with your Arduino (or other microprocessor) from within the browser. Use sensor data to drive a sketch; use a sketch to drive LEDs, motors, and more! Created by Sarah Groff-Palermo.
p5.collide2D provides tools for calculating collision detection for 2D geometry with p5.js. Created by Ben Moren.
Create animation loops with noise and GIF exports in one line of code. Created by Peter Hayman.
Extensive library for p5.js that adds additional event-listening functionality for creating canvas-based web applications. Created by Felix Meichelböck.
p5.func is a p5 extension that provides new objects and utilities for function generation in the time, frequency, and spatial domains. Created by R. Luke DuBois.
p5.geolocation provides techniques for acquiring, watching, calculating, and geofencing user locations for p5.js. Created by Ben Moren.
p5.gibber provides rapid music sequencing and audio synthesis capabilities. Created by Charlie Roberts.
grafica.js lets you add simple but highly configurable 2D plots to your p5.js sketches. Created by Javier Graciá Carpio.
p5.gui generates a graphical user interface for your p5.js sketches. Created by Martin Schneider.
Mappa provides a set of tools for working with static maps, tile maps, and geo-data. Useful when building geolocation-based visual representations. Created by Cristóbal Valenzuela.
The Particle and Fountain objects can be used to create data-driven effects that are defined through user structures or JSON input and user-draw functions. Created by Robert Cook.
p5.play provides sprites, animations, input and collision functions for games and gamelike applications. Created by Paolo Pedercini.
RiTa.js provides a set of natural language processing objects for generative literature. Created by Daniel C. Howe.
p5.SceneManager helps you create sketches with multiple states / scenes. Each scene is a like a sketch within the main sketch. Created by Marian Veteanu.
Draw 2D primitives in a sketchy look. Created by Janneck Wullschleger, based on a port of the original Processing library handy.
p5.speech provides simple, clear access to the Web Speech and Speech Recognition APIs, allowing for the easy creation of sketches that can talk and listen. Created by R. Luke DuBois.
Vida is a simple library that adds camera (or video) based motion detection and blob tracking functionality to p5js. Created by Pawel Janicki.
p5.voronoi provides a set of tools to draw and utilize voronoi diagrams in your p5.js sketches. Created by Francisco Moreira.
Using a library
To include a library in your sketch, link it into your HTML file, after you have linked in p5.js. An example HTML file might look like this:
<!doctype html> <html> <head> <script src="p5.js"> <script src="p5.sound.js"> <script src="sketch.js"> </head> <body> </body> </html>
Create Your Own
p5.js welcomes libraries contributed by others! Check out the libraries tutorial for more specifics about how to create one. If you have created a library and would like to have it included on this page, submit this form!