Draw network graphs using WebGL and Canvas backup.



You can import grapher in a script tag, or build grapher into your application using Duo:

var Grapher = require('ayasdi/grapher');

Additional Modules

Need a specific feature? Create your own modules for Grapher! Here are some modules we've made:

  • center: Helpful functions for centering the graph.
  • palette: Set up custom palettes and set colors by palette indices.
  • target: Target a node or link, or find the nearest nodes and links.
  • zoom: Zoom adjusts Grapher's scale by ratio. Optionally target a point as the zoom center.


Here are a few examples:

  1. Simple
  2. Transforms
  3. Colors
  4. Drag
  5. Pan
  6. Force (using d3's force layout)

These examples can be also found in the examples folder.



Grapher uses Node.js. Install Node.js then run the following command:

sudo npm install

This will install the development dependencies that Grapher uses to run its various tasks.


To build Grapher, run make:


This will bundle modules/grapher.js with its dependencies and outputs the result to grapher.js and grapher-min.js in the build folder. This will also generate documentation files in the doc folder. If you want to avoid creating docs, run this instead:

make grapher.js

This will only build grapher.js and grapher-min.js.


Unit tests are run using Jasmine with this command:

make test

This will also make grapher.js. Test specs can be found in the spec folder.


Documentation is generated from the make command when building.


If you need to generate docs into the gh-pages branch, you can use:

make gh-pages

This will create a new branch off gh-pages named gh-pages-$(commit) which will contain the build and docs generated from the current HEAD. Please make sure to commit or stash any changes before running this command.


Grapher.js may be freely distributed under the Apache 2.0 license.