Skip to content

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. http://twitter.com/p5xjs

License

Notifications You must be signed in to change notification settings

Emmanueljn88/p5.js

 
 

Repository files navigation

npm version

Welcome! 👋👋🏿👋🏽👋🏻👋🏾👋🏼

p5.js is a JavaScript library for creative coding, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else! p5.js is free and open-source because we believe software, and the tools to learn it, should be accessible to everyone.

Using the metaphor of a sketch, p5.js has a full set of drawing functionality using the HTML5 canvas element. You’re not limited to the drawing canvas though. You can think of your whole browser page as your sketch, including HTML5 objects for text, input, video, webcam, and sound.

p5.js draws inspiration, wisdom, and guidance from its precursor Processing. However, it is a new interpretation, not an emulation or port. We don't aim to match Processing's set of functionality exactly, allowing ourselves space to deviate and grow in the context of the web.

The p5js.org website contains an extensive overview of the project, community, documentation, and examples. If you already know the basics of JavaScript or Processing, the p5.js overview wiki page is a good place to start.

Community

We are a community of, and in solidarity with, people from every gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, and background. We acknowledge that not everyone has the time, financial means, or capacity to actively participate, but we recognize and encourage involvement of all kinds. We facilitate and foster access and empowerment. We are all learners.

p5.js is a collaborative project created by many individuals, mostly volunteers, and you are invited to help. All types of involvement are welcome. See the community section to get started! You can also check out the contributor docs for more in-depth details about contributing to different areas of the project, including code, bug fixes, documentation, discussion, and more.

Learn more about our community and read our community statement and code of conduct. You can directly support our work with p5.js by donating to the Processing Foundation.

Get Started

Make your first sketch in the p5.js Editor! Learn more about sketching with p5.js on the Get Started and find everything you can do in the Reference.

To get the complete p5.js library on your own computer, you can download it here. If you are interested in the most recent, less stable version, or even simply in (new!) certain components of p5.js, you can clone this repository and run grunt from the command line to generate the library from source. See the contributor docs for more information about our build process.

Issues

If you have found a bug in the p5.js library, you can file it here under the “issues” tab. You can also request new features here. A set of templates for reporting issues and requesting features are provided to assist you (and us!). p5.js is maintained mostly by volunteers, so we thank you for your patience as we try to address your issues as soon as we can. Please post in the correct repository if you can:

Learning

Check out p5js.org for lots more! Here are some quick-links to get started learning p5.js.

  • 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!
  • The Coding Train p5.js Tutorials: A huge trove of tutorials created by Dan Shiffman and friends

Stewards

Stewards are contributors that are particularly involved, familiar, or responsive to certain areas of the project. Their role is to help provide context and guidance to others working on p5.js. If you have a question about contributing to a particular area, you can tag the listed steward in an issue or pull request. They may also weigh in on feature requests and guide the overall direction of their area, with the input of the community. You can read more about the organization of the project at contributor_docs/organization.md.

Anyone interested can volunteer to be a steward! There are no specific requirements for expertise, just an interest in actively learning and participating. If you’re familiar with one or more parts of this project, open an issue to volunteer as a steward!

Area Steward(s)
Overall @qianqianye
Accessibility @kungfuchicken, @cosmicbhejafry
Color @KleoP, @murilopolese, @aahdee, @paulaxisabel
Core/Environment/Rendering @limzykenneth, @davepagurek, @jeffawang
Data @kungfuchicken, @cosmicbhejafry
DOM @outofambit, @SarveshLimaye, @SamirDhoke
Events @limzykenneth
Image @stalgiag, @cgusb, @photon-niko, @KleoP
IO @limzykenneth
Math @limzykenneth, @jeffawang, @AdilRabbani
Typography @dhowe, @SarveshLimaye, @paulaxisabel
Utilities @kungfuchicken, @cosmicbhejafry
WebGL @stalgiag; GSoC 2022: @aceslowman(Contributor), @kjhollen(Mentor); @ShenpaiSharma(Contributor), @calebfoss(Mentor); @davepagurek; @jeffawang; @AdilRabbani
Build Process/Unit Testing @outofambit, @kungfuchicken
Internalization @outofambit, @almchung
Friendly Errors @outofambit, @almchung
Contributor Docs SoD 2022: @limzykenneth

Contributors

We recognize all types of contributions. This project follows the all-contributors specification. Instructions to add yourself or add contribution emojis to your name are here. You can also post an issue or comment with the text: @all-contributors please add @YOUR-USERNAME for THING(S) and our nice bot will add you.

Lauren McCarthy
Lauren McCarthy

Jason Sigal
Jason Sigal

Karen
Karen

Evelyn Eastmond
Evelyn Eastmond

Daniel Shiffman
Daniel Shiffman

Casey Reas
Casey Reas

Ben Fry
Ben Fry

Kenneth Lim
Kenneth Lim

🐛 💻 📖
kate hollenbach
kate hollenbach

Stalgia Grigg
Stalgia Grigg

Jerel Johnson
Jerel Johnson

Saksham Saxena
Saksham Saxena

saber khan
saber khan

Daniel Howe
Daniel Howe

Kevin Siwoff
Kevin Siwoff

Atul Varma
Atul Varma

Jess Klein
Jess Klein

uno seis tres
uno seis tres

susan evans
susan evans

Saskia Freeke
Saskia Freeke

Phoenix Perry
Phoenix Perry

jesse cahn-thompson
jesse cahn-thompson

Lee T
Lee T

Chelly Jin
Chelly Jin

L05
L05

DIYgirls
DIYgirls

lam802
lam802

Maya Man
Maya Man

Tega Brain
Tega Brain

luisaph
luisaph

AlM Chng
AlM Chng

aarón montoya-moraga
aarón montoya-moraga

Cassie Tarakajian
Cassie Tarakajian

Niklas Peters
Niklas Peters

📖
Mathura MG
Mathura MG

Yining Shi
Yining Shi

Jen Kagan
Jen Kagan

Jiashan Wu
Jiashan Wu

Marc Abbey
Marc Abbey

K.Adam White
K.Adam White

Eden Cridge
Eden Cridge

💻 🐛 👀 ⚠️
Michael Hadley
Michael Hadley

Todd H. Page
Todd H. Page

Jared Sprague
Jared Sprague

💻 📖 💡 💵 ⚠️ 🐛
evelyn masso
evelyn masso

Blaize Kaye
Blaize Kaye

Sanchit Kapoor
Sanchit Kapoor

Oliver Wright
Oliver Wright

Matthew Kaney
Matthew Kaney

Spongman
Spongman

Claire K-V
Claire K-V

R. Luke DuBois
R. Luke DuBois

Kevin Barabash
Kevin Barabash

codeanticode
codeanticode

Bob Holt
Bob Holt

Sarah Groff Hennigh-Palermo
Sarah Groff Hennigh-Palermo

Jordan Shaw
Jordan Shaw

brightredchilli
brightredchilli

Derek J. Kinsman
Derek J. Kinsman

harkirat singh
harkirat singh

GoToLoop
GoToLoop

Max Goldstein
Max Goldstein

XY Feng
XY Feng

Sparsh Paliwal
Sparsh Paliwal

Austin Cawley-Edwards
Austin Cawley-Edwards

📖 💡
taseenb
taseenb

Yannick Assogba
Yannick Assogba

John Pasquarello
John Pasquarello

💻
Kevin Workman
Kevin Workman

📖
gauini
gauini

David Wicks
David Wicks

Guillermo Montecinos
Guillermo Montecinos

Shawn Van Every
Shawn Van Every

Sinan Ascioglu
Sinan Ascioglu

Abe Pazos
Abe Pazos

Char
Char

Gene Kogan
Gene Kogan

Jason Mandel
Jason Mandel

Mark Russo
Mark Russo

Jonathan Dahan
Jonathan Dahan

Darius Morawiec
Darius Morawiec

Darby Rathbone
Darby Rathbone

hrishit
hrishit

Chiun Hau You
Chiun Hau You

Francesco Bigiarini
Francesco Bigiarini

Fabian Morón Zirfas
Fabian Morón Zirfas

Mike Anderson
Mike Anderson

Mikael Lindqvist
Mikael Lindqvist

Chris
Chris

Max Segal
Max Segal

Tyler Stefanich
Tyler Stefanich

Dave
Dave

Xavier Snelgrove
Xavier Snelgrove

Gareth Battensby
Gareth Battensby

Taeyoon Choi
Taeyoon Choi

AKASH RAJ
AKASH RAJ

Kevin Ho
Kevin Ho

Harsh Agrawal
Harsh Agrawal

Luca Damasco
Luca Damasco

Sam Lavigne
Sam Lavigne

Epic Jefferson
Epic Jefferson

Caroline Record
Caroline Record

Christine de Carteret
Christine de Carteret

Chris Hallberg
Chris Hallberg

David Newbury
David Newbury

piinthecloud
piinthecloud

Paolo Pedercini
Paolo Pedercini

Jason Alderman
Jason Alderman

Jennifer Jacobs
Jennifer Jacobs

Sepand Ansari
Sepand Ansari

Val Head
Val Head

Emily Chen
Emily Chen

Ben Moren
Ben Moren

Rune Skjoldborg Madsen
Rune Skjoldborg Madsen

Scott Murray
Scott Murray

Scott Garner
Scott Garner

b2renger
b2renger

Craig Pickard
Craig Pickard

mxchelle
mxchelle

Zach Rispoli
Zach Rispoli

Liu Chang
Liu Chang

Cristóbal Valenzuela
Cristóbal Valenzuela

Miles Peyton
Miles Peyton

Golan Levin
Golan Levin

feedzh
feedzh

Shahriar Rahman Rubayet
Shahriar Rahman Rubayet

Chiciuc Nicușor
Chiciuc Nicușor

Ken Miller
Ken Miller

Chandler McWilliams
Chandler McWilliams

Jaymz Rhime
Jaymz Rhime

Niels Joubert
Niels Joubert

Utkarsh Tiwari
Utkarsh Tiwari

Arihant Parsoya
Arihant Parsoya

Brad Buchanan
Brad Buchanan

Johan Karlsson
Johan Karlsson

Andy Timmons
Andy Timmons

zacharystenger
zacharystenger

Brian Boucheron
Brian Boucheron

sortasleepy
sortasleepy

Kyle McDonald
Kyle McDonald

Antonio Jesús Sánchez Padial
Antonio Jesús Sánchez Padial

💻
Brad Smith
Brad Smith

Vítor Galvão
Vítor Galvão

Devon Rifkin
Devon Rifkin

Emily Xie
Emily Xie

Boris Bucha
Boris Bucha

Petr Brzek
Petr Brzek

Ramin
Ramin

Arsenije Savic
Arsenije Savic

Luke Burgess-Yeo
Luke Burgess-Yeo

Sun Lifei
Sun Lifei

naoyashiga
naoyashiga

Jimish Fotariya
Jimish Fotariya

Jorge Moreno
Jorge Moreno

🐛 💻 📖
Steven Green
Steven Green

Marcus Parsons
Marcus Parsons

Nick Yahnke
Nick Yahnke

Anthony Su
Anthony Su

kroko / Reinis Adovičs
kroko / Reinis Adovičs

Robyn Overstreet
Robyn Overstreet

Ben Hinchley
Ben Hinchley

Max Kolyanov
Max Kolyanov

Zeno Zeng
Zeno Zeng

Seth
Seth

plural
plural

Lionel Ringenbach
Lionel Ringenbach

Harshil Goel
Harshil Goel

Joshua Storm Becker
Joshua Storm Becker

maxdevjs
maxdevjs

trych
trych

Alejandra Trejo
Alejandra Trejo

Prashant Gupta
Prashant Gupta

Kai-han Chang
Kai-han Chang

kjav
kjav

maddy
maddy

Christopher Coleman
Christopher Coleman

Boaz
Boaz

Yasai
Yasai

📝
Jay Gupta
Jay Gupta

Nitish Bansal
Nitish Bansal

Caroline Hermans
Caroline Hermans

💡 📖
Faith Wuyue Yu
Faith Wuyue Yu

Aatish Bhatia
Aatish Bhatia

📖 🐛
Mislav Milicevic
Mislav Milicevic

💻 🐛
Yuting Lu
Yuting Lu

📖
Adil Rabbani
Adil Rabbani

💻 🐛 💡
Pierre Krafft
Pierre Krafft

🐛 💻 📖 💡 👀 ⚠️ 🔧
Zoë Ingram
Zoë Ingram

📖
Aidan Nelson
Aidan Nelson

🐛 💻 📖
Cameron Yick
Cameron Yick

📖
Tanvi Kumar
Tanvi Kumar

🐛 💻 📖 💡
Katsuya Endoh
Katsuya Endoh

Kevin Bradley
Kevin Bradley

📖
Justin Kim
Justin Kim

📖
Federico Grandi
Federico Grandi

💻 📖
Freddie Rawlins
Freddie Rawlins

💻 📖
Luc de wit
Luc de wit

💻 🐛
Mark Nikora
Mark Nikora

💻
Louis Demange
Louis Demange

🐛
Sanket Singh
Sanket Singh

💻 🐛 📖 💡
Oren Shoham
Oren Shoham

💻
Abhinav Sagar
Abhinav Sagar

💻
Jonathan Heindl
Jonathan Heindl

💻 💡 🤔 📖
Hirad Sab
Hirad Sab

💻 🐛 📖 💡
Vishal Singh
Vishal Singh

📖 💻
Corey Gouker
Corey Gouker

💻 📖 🐛
Lisa Mabley
Lisa Mabley

📖 💡
Adam Ferriss
Adam Ferriss

💻 📖 🐛 💡
Joshua Marris
Joshua Marris

📖 💻 📢
Erica Pramer
Erica Pramer

📖
Vasu Goel
Vasu Goel

💻 ⚠️
Tokini Irene Fubara
Tokini Irene Fubara

📖
Dhruv Sahnan
Dhruv Sahnan

💻 📖
Jon Kaufman
Jon Kaufman

📖
Nico Finkernagel
Nico Finkernagel

🚇 👀
ashu8912
ashu8912

💻
ffd8
ffd8

💻
Sona Lee
Sona Lee

💻
Ryan Slade
Ryan Slade

💻
Mann Shah
Mann Shah

Juraj Onuska
Juraj Onuska

ANURAG GUPTA
ANURAG GUPTA

📖
Sagar Arora
Sagar Arora

Rajiv Ranjan Singh
Rajiv Ranjan Singh

Fenil Gandhi
Fenil Gandhi

📖 💡
Akshay Padte
Akshay Padte

💻 🐛 ⚠️
Satyam Kulkarni
Satyam Kulkarni

📖
Shirou
Shirou

💻 🐛
Sarthak Saxena
Sarthak Saxena

💻
Nick McIntyre
Nick McIntyre

🔌 🐛
Amey Bhavsar
Amey Bhavsar

🐛 💡
Minjun Kim
Minjun Kim

🐛 🌍
Fisher Diede
Fisher Diede

💻
karinaxlpz
karinaxlpz

🌍
Samuel Alarco Cantos
Samuel Alarco Cantos

🌍
DIVYANSHU RAJ
DIVYANSHU RAJ

💻 🐛 📖
sm7515
sm7515

📖
Aditya Rachman Putra
Aditya Rachman Putra

📖
shaharyarshamshi
shaharyarshamshi

🌍
Ayush Jain
Ayush Jain

🌍
Summer Rizzo
Summer Rizzo

📖
Aierie
Aierie

💻 🐛
Mateusz Swiatkowski
Mateusz Swiatkowski

💻 🐛
XingZiLong
XingZiLong

🌍
ov
ov

🌍
Kyle James
Kyle James

💻
Abhi Gulati
Abhi Gulati

📖
Jeremy Tuloup
Jeremy Tuloup

📖
Luis Morales-Navarro
Luis Morales-Navarro

️️️️♿️
Yuki
Yuki

🌍
cedarfall
cedarfall

📖
Isaac Durazo
Isaac Durazo

🌍
İsmail Namdar
İsmail Namdar

💻 ⚠️
skyperx
skyperx

💻
Joseph Aronson
Joseph Aronson

💻 🐛
Haider Ali Punjabi
Haider Ali Punjabi

💻
Swapnil-2001
Swapnil-2001

📖
Takuma Kira
Takuma Kira

🐛 💻 ⚠️
Mohammad Hussain Nagaria
Mohammad Hussain Nagaria

🐛
Tushar Choudhari
Tushar Choudhari

📖 💻
Nakul Shahdadpuri
Nakul Shahdadpuri

💻
Jacques P. du Toit
Jacques P. du Toit

💻
surajsurajsuraj
surajsurajsuraj

🐛
Connie Liu
Connie Liu

💻 🎨
Zeke Sikelianos
Zeke Sikelianos

📖
Ramon Jr. Yniguez
Ramon Jr. Yniguez

💻
Benoît Bouré
Benoît Bouré

📖
Hitesh Kumar
Hitesh Kumar

💻
Sampo Rapeli
Sampo Rapeli

💡
Nick Müller
Nick Müller

🔌
Keith Tan
Keith Tan

📖
Berke Özgen
Berke Özgen

🐛
Musab Kılıç
Musab Kılıç

💻 ⚠️
Nicholas Marino
Nicholas Marino

📖
Greg Sadetsky
Greg Sadetsky

💻
Priya-Pathak
Priya-Pathak

💡
Daniel Michel
Daniel Michel

💻
Nisar Hassan Naqvi
Nisar Hassan Naqvi

💻
Joshua Noble
Joshua Noble

📖
Liam Piesley
Liam Piesley

💻
Rishabh Taparia
Rishabh Taparia

💻 📖
Daniel Sarno
Daniel Sarno

💡
Kunal Kumar Verma
Kunal Kumar Verma

📖 🐛 💻
Bharath Kumar R
Bharath Kumar R

💻
Aditya Mohan
Aditya Mohan

💻
Arijit Kundu
Arijit Kundu

🐛 💻 📖
Tanner Dolby
Tanner Dolby

💻
sam delong
sam delong

💻
Zhao Xin
Zhao Xin

💻 👀
Sivaram D
Sivaram D

📖 💻
Pragya
Pragya

💻
Jonathan-David Schröder
Jonathan-David Schröder

🤔 💻
Shubham Kumar
Shubham Kumar

💻
Jean Pierre Charalambos
Jean Pierre Charalambos

💻 🔧
Sai Bhushan
Sai Bhushan

💻 📖
Long Phan
Long Phan

💻
Jean-Michaël Celerier
Jean-Michaël Celerier

🐛
So Sun Park
So Sun Park

📖
Daniel Adams
Daniel Adams

💻 📖
Aloneduckling
Aloneduckling

📖
Mohana Sundaram S
Mohana Sundaram S

💻
TwoTicks
TwoTicks

💻 📖 💡
Kathryn Isabelle Lawrence
Kathryn Isabelle Lawrence

💻 🤔
Joonas Jokinen
Joonas Jokinen

🎨
Ajaya Mati
Ajaya Mati

💻
Suhas CV
Suhas CV

📖
Sanjay Singh Rajpoot
Sanjay Singh Rajpoot

📖
Chris P.
Chris P.

📖
Thomas Herlea
Thomas Herlea

🐛 💻 📖
Simranjeet Singh
Simranjeet Singh

💻 📢 🎨 👀
Rahul Mohata
Rahul Mohata

📖
Dave Pagurek
Dave Pagurek

💻 ⚠️
Leo Kamwathi
Leo Kamwathi

💻
David Weiss
David Weiss

💻 📢 👀 📖
Chris Thomson
Chris Thomson

💻 🐛
mainstreamdev
mainstreamdev

🐛
Aaron George
Aaron George

🐛
Alex Lyons
Alex Lyons

📖
Tyler Jordan
Tyler Jordan

📖
Ghales
Ghales

🎨 💻 🔧
JetStarBlues
JetStarBlues

📖 💻
Avelar
Avelar

📖
Oliver Steele
Oliver Steele

📖
MiniPear
MiniPear

📖
Paul Wheeler
Paul Wheeler

💻
Nitin Rana
Nitin Rana

📖
Annie McKinnon
Annie McKinnon

🐛 💻
Jiwon Park (hanpanic)
Jiwon Park (hanpanic)

💻
truemaxdh
truemaxdh

🐛 💻
Katie
Katie

💻
Guilherme Silveira
Guilherme Silveira

📖
Camille Roux
Camille Roux

💻
reejuBhattacharya
reejuBhattacharya

📖 💻
Akshat Nema
Akshat Nema

💻
Anshuman Maurya
Anshuman Maurya

🐛
Himanshu Malviya
Himanshu Malviya

🐛
Samuel Cho
Samuel Cho

🐛
Théodore Orfèvres
Théodore Orfèvres

🐛
Jyotiraditya Pradhan
Jyotiraditya Pradhan

📖
Zearin
Zearin

📖
pifragile
pifragile

🐛
Jstodd
Jstodd

🐛
Jens Axel Søgaard
Jens Axel Søgaard

📖 🐛
oleboleskole3
oleboleskole3

🐛
A Welles
A Welles

🐛
andrei antonescu
andrei antonescu

🐛
Fun Planet
Fun Planet

🐛
Stig Møller Hansen
Stig Møller Hansen

🐛
Derek Enlow
Derek Enlow

💻
Will Martin
Will Martin

🤔
Beau Muylle
Beau Muylle

📖
Ivy Feraco
Ivy Feraco

🐛
Gareth Williams
Gareth Williams

💻
Ikko Ashimine
Ikko Ashimine

📖
Jonas Rinke
Jonas Rinke

🐛
MATSUDA, Kouichi
MATSUDA, Kouichi

🐛
stampyzfanz
stampyzfanz

📖
tae
tae

🐛
Divyansh013
Divyansh013

🌍
rinkydevi
rinkydevi

🌍
Coding for the Arts
Coding for the Arts

🐛
Dan
Dan

🐛
Liz Peng
Liz Peng

🎨 💻 🔧
koolaidkrusade
koolaidkrusade

📖
smilee
smilee

💻
CommanderRoot
CommanderRoot

💻
Philip Bell
Philip Bell

📖
tapioca24
tapioca24

🔌
Qianqian Ye
Qianqian Ye

💻 🎨 📖 📋 👀 🌍
Adarsh
Adarsh

🌍
kaabe1
kaabe1

🎨 📋
Seb Méndez
Seb Méndez

🌍
Ryuya
Ryuya

🐛 👀 💻
LEMIBANDDEXARI
LEMIBANDDEXARI

🌍
Vivek Tiwari
Vivek Tiwari

🌍
Kevin Grajeda
Kevin Grajeda

💻
anniezhengg
anniezhengg

💻 🎨
Seung-Gi Kim(David)
Seung-Gi Kim(David)

🌍
Ike Bischof
Ike Bischof

💻
Ong Zhi Zheng
Ong Zhi Zheng

🔌
bsubbaraman
bsubbaraman

🔌
Jenna deBoisblanc
Jenna deBoisblanc

🔌
manpreet
manpreet

📖 💻 ⚠️
TetroGem
TetroGem

🤔
ggorlen
ggorlen

💻
raclim
raclim

💻

Thanks goes to these wonderful people (emoji key)!

About

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. http://twitter.com/p5xjs

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.8%
  • HTML 3.1%
  • Other 1.1%