paper.js VS p5.js

Compare paper.js vs p5.js and see what are their differences.

paper.js

The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas. Created by @lehni & @puckey (by paperjs)

p5.js

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 — (by processing)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
paper.js p5.js
23 233
14,225 20,850
0.6% 0.9%
3.7 9.9
17 days ago 6 days ago
JavaScript JavaScript
GNU General Public License v3.0 or later GNU Lesser General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

paper.js

Posts with mentions or reviews of paper.js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-29.
  • How Framer/Figma is built?
    2 projects | /r/webdev | 29 May 2023
    I started with angular and paper.js: http://paperjs.org/
  • Polygon JS libraries
    1 project | /r/p5js | 11 Apr 2023
    In a thread in the Processing forum, Boolean operations in polygons , user ErraticGenerator suggests using g.js or Paper.js.
  • Looking for a javascript library with good wrapping support
    2 projects | /r/gis | 31 Mar 2023
    It is likely that paper.js provides the functionality needed. I will probably investigate it at some point since it appears to be the more popular library Compare paper.js & bezier.js.
  • Making YouTube video with React
    9 projects | dev.to | 25 Feb 2023
    To solve that issue, I searched for some solutions using canvas. I didn’t want to work with pure canvas so after doing some research, I settled with paper.js.
  • The Continuity of Splines – Video Essay by Freya Holmér
    1 project | news.ycombinator.com | 17 Dec 2022
    Ooh, the Chebyshev basis is neat. I hadn't seen exactly that before. It reminds me a lot of the "shape control" technique[1] which is also similar to a basis function approach but has a bit of linear solving. Essentially, you get one point (usually at t = 0.5), and also the direction but not magnitudes of the tangents at the endpoints (G1, not C1). This is one of the better-performing existing techniques for offset curve, though does have stability problems (in particular, nasty behavior for a symmetric "S" curve).

    Regarding collaboration with Freya, if she is open to it, please get in touch. I do have some ideas.

    [1]: A New Shape Control and Classification for Cubic Bézier Curves, Yang and Huang, 1993, PDF cache: https://github.com/paperjs/paper.js/files/752955/A.New.Shape...

  • which technology or framework is used to create geometry-draggable canvas like this?
    7 projects | /r/Frontend | 23 Oct 2022
    Paper.js - example (not interactive, just code)
  • Animating an svg
    1 project | /r/webdev | 29 Aug 2022
    Just remember you can do some SVG displacement with Paper.JS
  • Writing HTML sucks and No-code doesn't help
    3 projects | news.ycombinator.com | 9 May 2022
    > <p>Oh yeah, you reminded me of the template fatigue that was paper.js and it trying to reinvent scripting on the client side with <script type="text/paperscript"> templates that could use templates that could use templates... and so on. [0] I was wondering why people would go to such great lengths just to avoid having to script in the browser.<p>The way I saw it at the time was that I've rediscovered the same mistakes that PHP did back in the days. All the recurs(iv)ed templating problems, all the OOP fatigue that never worked out (magento and zend, anyone?), and all the inheritance based "reinventions" of existing web technologies like OOCSS [1].<p>I mean, at some point every engineer should be wise enough to give up on trying to predict the future. Especially in projects they cannot predict what features are going to be implemented, so I'd naturally assume that modularity and compositional or entity/component aspects will win in later revisions or refactor decisions. But I was wrong with that assumption, I guess :S<p>I also can kinda understand the general bias towards closure among functional folks. I guess that lots of people at the time (or nowadays) had high hopes for it allowing to go more "functional" in its approach, allowing compositional patterns to be useful on the web. But, honestly, JS itself is so flexible and can be used in all kinds of architectural patterns that I think closure's purpose is kind of void by its own concept.<p>When comparing closure with, say, typescript (which I also don't agree with, because "string" and "String" and "any" are pointless from any language design perspective): Typescript at least has the benefit of typed API docs and good IDE integrations (due to LSP) that can be used in large teams to reduce the overhead of getting started with working on foreignly-owned code - whereas closure doesn't have any unique selling point in my opinion. I mean, even scala.js has a unique selling point when being judged like that.<p>[0] <a href="https://github.com/paperjs/paper.js" rel="nofollow">https://github.com/paperjs/paper.js</a><p>[1] <a href="http://oocss.org/" rel="nofollow">http://oocss.org/</a>
  • Diagnosing RangeError: Maximum call stack size exceeded in React KeyEscapeUtils
    1 project | /r/codehunter | 5 May 2022
    Our webapp is written with React and Redux using the official react-redux bindings. Another primary library used in this web app is PaperJS. We recently transitioned this to being a Redux app, though it has used React for a while.
  • How to upload image into HTML5 canvas
    1 project | /r/codehunter | 23 Apr 2022
    I am currently using http://paperjs.org to create an HTML5 canvas drawing app. I want to let users upload images into the canvas. I know I need to make a login and signup but is there an easier way? I have seen the HTML5 drag and drop upload.

p5.js

Posts with mentions or reviews of p5.js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-30.
  • P5.js: Online Canvas Programming
    1 project | news.ycombinator.com | 27 Feb 2024
  • Coming Home From the South Pole
    1 project | news.ycombinator.com | 10 Jan 2024
  • Turbo Pascal Turns 40
    8 projects | news.ycombinator.com | 30 Nov 2023
    Processing (P5) had this: you can select any string of text in its IDE anl search for it in the docs, and if it's one of the built-in functions or constants it will open the associated static html page that came installed with the software, so no internet nor server required. And despite being offline you can still navigate the docs too. This feels a lost basic skill in static site generation these days.

    It was the only creative coding framework that had complete, offline documentation like that at the time I might add. OpenFrameworks is still mostly autogenerated stubs for example.

    IMO it was one of the things that gave Processing an edge in educational contexts over all alternatives. I was pretty sad to see p5.js not fully continue that tradition and require that you go online to read the docs, and that it's not a static website but that text is rendered with javascript when you open it (still complete and with examples though).

    https://processing.org/

    https://p5js.org/

  • My Google Play Developer account has been terminated
    1 project | news.ycombinator.com | 15 Oct 2023
    I thought it could be funny to use the javascript version of it https://p5js.org/ in a web page and then wrap it in a Unity app, since Unity was and is the environment I use for making apps.
  • Repetition can make you loopy!: Intro to JavaScript Loops
    1 project | dev.to | 14 Aug 2023
    In this last section, I'll be creating some visual examples to show how helpful loops can be. I'll be using p5js, a JavaScript library with functionality for creative coding. That being said, I'll try to give a condensed version of the functions being utilized in the following examples.
  • G9.js: Automatically Interactive Graphics
    2 projects | news.ycombinator.com | 8 Aug 2023
    I was curious too, took a little bit of digging :)

    "the original domain of [P]rocessing was proce55ing.net, so people used to sometimes refer to processing as proce55ing or P5 or p5 for short. they still do sometimes. p5.js is a reference to that."

    from https://github.com/processing/p5.js/issues/2443

  • [OC] Monthly Performance of the S&amp;P 500: 94 Years in 1 Video.
    1 project | /r/dataisbeautiful | 27 Jun 2023
    Sketch.js - https://p5js.org/
  • Ask HN: How to teach a kid of 15 Linux and programming
    3 projects | news.ycombinator.com | 20 Jun 2023
    > how do I get him learning programming in a fun way?

    Processing / P5.js can be pretty fun to learn. You use a real programming language to create art and animations. With little code you can get a circle on the screen, then making it move, then following your mouse, then adding other shapes, then changing colour depending on some event… It’s conductive to experimentation and a way to gradually introduce concepts.

    https://processing.org/

    https://p5js.org/

    https://thecodingtrain.com/

  • [OC] I created a simple, free waveform and genre visualizer for your top ten Spotify songs, a few samples below and link to the tool in the comments!
    1 project | /r/dataisbeautiful | 8 Jun 2023
    Then I used p5js to create the 'art' itself, really user friendly coding framework with lots of resources online! If you want to get into coding, that is a really great entry point with Daniel Schiffman's coding train videos on YT!
  • Different texture types
    1 project | /r/p5js | 28 May 2023
    Posted an issue for it that u guys can check out here: https://github.com/processing/p5.js/issues/6166

What are some alternatives?

When comparing paper.js and p5.js you can also consider the following projects:

fabric.js - Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser

three.js - JavaScript 3D Library.

two.js - A renderer agnostic two-dimensional drawing api for the web.

d3 - Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada:

BabylonJS - Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.

Konva - Konva.js is an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.

heatmap.js - 🔥 JavaScript Library for HTML5 canvas based heatmaps

Snap.svg - The JavaScript library for modern SVG graphics.