d3 VS paper.js

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

d3

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

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)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
d3 paper.js
277 23
107,634 14,225
0.3% 0.6%
8.0 3.7
17 days ago 15 days ago
Shell JavaScript
ISC License GNU General Public License v3.0 or later
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.

d3

Posts with mentions or reviews of d3. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-25.
  • A visual guide to Vision Transformer – A scroll story
    1 project | news.ycombinator.com | 16 Apr 2024
    Yes this was done with a combination of GSAP Scrolltrigger https://gsap.com/docs/v3/Plugins/ScrollTrigger/ and https://d3js.org/
  • Ask HN: Tips to get started on my own server
    19 projects | news.ycombinator.com | 25 Mar 2024
  • Full Stack Web Development Concept map
    11 projects | dev.to | 23 Mar 2024
    d3 - very power visualization library enabling dynamic visualizations. docs
  • Observable 2.0, a static site generator for data apps
    17 projects | news.ycombinator.com | 15 Feb 2024
    Yep, Evidence is doing good work. We were most directly inspired by VitePress; we spent months rewriting both D3’s docs (https://d3js.org) and Observable Plot’s docs (https://observablehq.com/plot) in VitePress, and absolutely loved the experience. But we wanted a tool focused on data apps, dashboards, reports — observability and business intelligence use cases rather than documentation. Compared to Evidence, I’d say we’re trying to target data app developers more than data analysts; we offer a lot of power and expressiveness, and emphasize custom visualizations and interaction (leaning on Observable Plot or D3), as well as polyglot programming with data loaders written in any language (Python, R, not just SQL).
  • Using Deno with Jupyter Notebook to build a data dashboard
    5 projects | dev.to | 17 Jan 2024
    D3.js: A robust library to visualize your data and create interactive data-driven visualizations.
  • What is the technology stack used to create these live charts?
    2 projects | /r/learnprogramming | 10 Dec 2023
    They are images so it could be any number of things, datawrapper, charts.js, d3.js to name a few options.
  • Animated map showing frequency and location of births around the world [OC]
    1 project | /r/dataisbeautiful | 5 Dec 2023
    I made this interactive visualization that attempts to show the real-time frequency and location of births around the world. A country’s annual births (i.e. the country’s population times its birthrate) were distributed across all of the populated locations in each country, weighted by the population distribution (i.e. more populated areas got a greater fraction of the births). Data Sources and Tools Population and birthrate data for 2023 was obtained from Wikipedia (Population and birth rates). Population distribution across the globe was obtained from Socioeconomic Data and Applications Center (sedac) at Columbia University. Data is processed and visualized at a 1 degree x 1 degree resolution, each of which has a different probability of a birth occurring in a specific time period. D3.js was used to create the map elements and html, css and javascript were used to create the user interface.
  • How do you implement library types?
    2 projects | /r/typescript | 3 Dec 2023
    When I go to the homepage of types/d3 the only hint for any kind of documentation is what seems to be the main github page of d3. It's highly possible I'm missing something here, so sorry if I am but I can't find any documentation of how you are supposed to type these library objects.
  • The top 11 React chart libraries for data visualization
    10 projects | dev.to | 5 Oct 2023
    Website: D3.js official site
  • Frontend development roadmap
    9 projects | /r/learnprogramming | 2 Oct 2023
    D3js

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.

What are some alternatives?

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

echarts - Apache ECharts is a powerful, interactive charting and data visualization library for browser

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

GoJS, a JavaScript Library for HTML Diagrams - JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.

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 —

vis

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

d4 - A friendly reusable charts DSL for D3

three.js - JavaScript 3D Library.

svg.js - The lightweight library for manipulating and animating SVG

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

sigma.js - A JavaScript library aimed at visualizing graphs of thousands of nodes and edges

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