HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
lmccart
p5.js
JavaScript2014–2014
lmccart / p5.js

p5.js

p5.js is a JS client-side library for creating graphic and interactive experiences, based on the core principles of Processing. http://twitter.com/p5xjs —

9Distinct people
9Mentions
0Explicit recommenders
15GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

p5.js is a JS client-side library for creating graphic and interactive experiences, based on the core principles of Processing. http://twitter.com/p5xjs —

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week9 dated mentions

Observed mentions: 2014-02-04 22:49:08 UTC to 2014-08-08 18:12:21 UTC. Weeks start Monday, UTC.

024682014-02-03 00:00:00 UTC to 2014-02-10 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsFeb 32014-02-10 00:00:00 UTC to 2014-02-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-02-17 00:00:00 UTC to 2014-02-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-02-24 00:00:00 UTC to 2014-03-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-03 00:00:00 UTC to 2014-03-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-10 00:00:00 UTC to 2014-03-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-17 00:00:00 UTC to 2014-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-24 00:00:00 UTC to 2014-03-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-03-31 00:00:00 UTC to 2014-04-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-07 00:00:00 UTC to 2014-04-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-14 00:00:00 UTC to 2014-04-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-21 00:00:00 UTC to 2014-04-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-04-28 00:00:00 UTC to 2014-05-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-05 00:00:00 UTC to 2014-05-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 52014-05-12 00:00:00 UTC to 2014-05-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-19 00:00:00 UTC to 2014-05-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-26 00:00:00 UTC to 2014-06-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-02 00:00:00 UTC to 2014-06-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-09 00:00:00 UTC to 2014-06-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-16 00:00:00 UTC to 2014-06-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-23 00:00:00 UTC to 2014-06-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-06-30 00:00:00 UTC to 2014-07-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-07 00:00:00 UTC to 2014-07-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-14 00:00:00 UTC to 2014-07-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-21 00:00:00 UTC to 2014-07-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-07-28 00:00:00 UTC to 2014-08-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-08-04 00:00:00 UTC to 2014-08-11 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 commentsAug 4

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 32014-02-03 00:00:00 UTC2014-02-10 00:00:00 UTC110
Feb 102014-02-10 00:00:00 UTC2014-02-17 00:00:00 UTC000
Feb 172014-02-17 00:00:00 UTC2014-02-24 00:00:00 UTC000
Feb 242014-02-24 00:00:00 UTC2014-03-03 00:00:00 UTC000
Mar 32014-03-03 00:00:00 UTC2014-03-10 00:00:00 UTC000
Mar 102014-03-10 00:00:00 UTC2014-03-17 00:00:00 UTC000
Mar 172014-03-17 00:00:00 UTC2014-03-24 00:00:00 UTC000
Mar 242014-03-24 00:00:00 UTC2014-03-31 00:00:00 UTC000
Mar 312014-03-31 00:00:00 UTC2014-04-07 00:00:00 UTC000
Apr 72014-04-07 00:00:00 UTC2014-04-14 00:00:00 UTC000
Apr 142014-04-14 00:00:00 UTC2014-04-21 00:00:00 UTC000
Apr 212014-04-21 00:00:00 UTC2014-04-28 00:00:00 UTC000
Apr 282014-04-28 00:00:00 UTC2014-05-05 00:00:00 UTC000
May 52014-05-05 00:00:00 UTC2014-05-12 00:00:00 UTC000
May 122014-05-12 00:00:00 UTC2014-05-19 00:00:00 UTC000
May 192014-05-19 00:00:00 UTC2014-05-26 00:00:00 UTC000
May 262014-05-26 00:00:00 UTC2014-06-02 00:00:00 UTC000
Jun 22014-06-02 00:00:00 UTC2014-06-09 00:00:00 UTC000
Jun 92014-06-09 00:00:00 UTC2014-06-16 00:00:00 UTC000
Jun 162014-06-16 00:00:00 UTC2014-06-23 00:00:00 UTC000
Jun 232014-06-23 00:00:00 UTC2014-06-30 00:00:00 UTC000
Jun 302014-06-30 00:00:00 UTC2014-07-07 00:00:00 UTC000
Jul 72014-07-07 00:00:00 UTC2014-07-14 00:00:00 UTC000
Jul 142014-07-14 00:00:00 UTC2014-07-21 00:00:00 UTC000
Jul 212014-07-21 00:00:00 UTC2014-07-28 00:00:00 UTC000
Jul 282014-07-28 00:00:00 UTC2014-08-04 00:00:00 UTC000
Aug 42014-08-04 00:00:00 UTC2014-08-11 00:00:00 UTC808

What Hacker News says

9 sources
If you like processing, checkout p5.js[0] (released on HN yesterday) which is a pure javascript port with some other differences[1]. The main goal of Processing.js is to execute Processing files in HTML5, but not necessarily to write native HTML5. It supports a mixed syntax of Processing and JavaScript, where the JavaScript is not really meant to be consumed by the end-user. Processing.js is a port of Processing to JS, using regex to convert Java into JS. It is a good tool for those that want to run simple sketches on the web, however, it is quite opaque. It can be difficult for someone to understand how it works, how to fix things when it doesn't work, or how to modify or extend the library. As Processing.js says on their website, "it's not magic, but almost." [0] - http://p5js.org/ [1] - https://github.com/lmccart/p5.js#how-is-this-diff
Read the rest
In Painting in Clojure
I totally agree. On top of that I think that its much more rewarding to learn the actual technology / language and not just a framework that represents one opinion about how things should get done. When trying to learn some c++ and opengl, i totally see the need for good libraries, which abstract some of the initial verbose window and shader setup, its good to directly jump into manipulating vertices and stuff. They are needed because they hide the initially complex setup. But in case of Javascript I really dont see why there needs to be another abstraction layer. The language itself is so easy, setting up a canvas is already handled well, and drawing to it is documented extensively. Also in regards to the goals of p5.js (https://github.com/lmccart/p5.js#how-is-this-different-than-...): "It is easy to translate a sketch from Processing t
Read the rest
o p5 and the process of doing so begins to teach people the basics of JS" I dont really see how it would help teaching the basics of js, when the 'framework' itself introduces stuff like global functions, constants and so, which are considered evil in js. On top of that i think that if you try to teach someone js by porting code from java, you have to teach the fact that js itself is total different beast. Just like u said, no classes in a traditional sense, where have all the types gone?... That fact that js is so perfect for 'creative coding' is because of its dynamicness, the same reason why bindings for scripting languages are so popular in lower languages, you can just express an idea much faster and see changes immediatly. Yes a good framework can help with that, but I think that when learning js as a first language you have to be aware of its advantages right from the beginning, and not by translating it from another language. I just love paper.js way of dealing with javascripts dynamicness, paperscript introduces some neat additions to the language like operators http://scratchdisk.com/posts/operator-overloading I could totally imagine p5.js going the same way, accepting that the environment changed, not trying to port one opinion from another language to js, but instead think about the way javascript and its advantages can be used to create a new tool.
In P5.js: Processing for today’s web
Asked the same question myself. P5 to Processing. The differences give you an insight to the advantages. "... 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. ..." ~ https://github.com/lmccart/p5.js#how-is-this-different-than-... The differences b/w P5 and ProcessingJS isn't enough if P5 isn't as stable or compatible.
In P5.js: Processing for today’s web

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.