sigma.js is a free, open source business intelligence & reporting project written in TypeScript and released under MIT. It has 12,167 GitHub stars, 1,620 forks and 12 open issues, and was last pushed 38 hours ago. On this registry it ranks #13 of 34 tracked projects in Business Intelligence & Reporting, with 5 head-to-head comparisons available.

What is sigma.js?

Sigma.js is an open-source JavaScript and TypeScript library for rendering graphs of thousands of nodes and edges in the browser using WebGL, released under the MIT licence and built on top of graphology.

What it is

Sigma.js is a graph-drawing framework published as the npm package sigma. It is written in TypeScript and lives in the browser ecosystem, where it renders interactive network diagrams into a DOM container element. Data comes from graphology: the README shows importing Graph from "graphology" and Sigma from "sigma", adding nodes and edges with attributes such as label, x, y, size and color, and passing the resulting graph instance to new Sigma(graph, document.getElementById("container")). Development is led by @jacomyal and @Yomguithereal.

The concrete problem it addresses is scale. Drawing a network of thousands of nodes and edges through ordinary browser rendering paths becomes slow or unusable, so Sigma.js puts the rendering work on WebGL instead. A development team that would otherwise write and maintain its own WebGL graph renderer, hit-testing layer and camera logic can take the library as a dependency and focus on the data and the surrounding application. The library sits inside a project rather than standing beside it as a service.

Key capabilities

  • WebGL rendering targeted at graphs of thousands of nodes and edges, which is the stated purpose of the library.
  • Sigma constructor that takes a graphology graph instance plus a target container element and mounts the visualization there.
  • Node attributes including label, x, y, size and color, and edge attributes including size and color.
  • First-class TypeScript support, with the package used from both JavaScript and TypeScript files.
  • Documentation site built with Docusaurus at sigmajs.org/docs, plus a Storybook at sigmajs.org/storybook.
  • A full-featured React-based demo application at sigmajs.org/demo.
  • Monorepo tooling: npm run createPackage copies packages/template and updates buildable package lists in tsconfig.json and package.json.

Who uses it and how

  • Web application teams that add sigma and graphology as npm dependencies and embed a graph view inside an existing JavaScript or TypeScript front end.
  • Product teams that want a reference for a full application built around the library, using the React-based demo as a starting point.
  • Developers evaluating rendering behavior before committing, using the Storybook examples and the public demo as a live preview.
  • Contributors to the library itself, who clone the repository, run npm install and npm run start to open a live-reloading Storybook, then submit issue tickets and pull requests after tests and linting pass.
  • Maintainers extending the monorepo with new packages through npm run createPackage.

Getting started

Install the library and its graph dependency with npm install sigma graphology, then import Graph from "graphology" and Sigma from "sigma" and construct a Sigma instance against your container element. To work on the library locally, clone the repository, run npm install and npm run start to launch Storybook.

How it compares

No comparable or paid products are named in the facts provided for this entry, so Sigma.js stands alone in this registry.

When to use it — and when not to

Sigma.js is a rendering library and nothing more: it ships no backend, database, storage layer or hosted interface, so anyone adopting it must already operate the application that serves it and the pipeline that supplies graph data. Rendering depends on WebGL being available in the target browser, which is a hard constraint to check before committing. Version 4 is currently an alpha release available through v4.sigmajs.org and the v4 branch, so teams needing a settled API should stay on the documented stable line, and teams wanting a turnkey analytics dashboard rather than a library to build against should look elsewhere.

project readme (upstream, from github) — read inline

Build Status


Sigma.js

Website | Documentation | Storybook | Mastodon

[!NOTE] Sigma v4 is now available as an alpha release. See v4.sigmajs.org for the website, or the v4 branch for the source code.


Sigma.js is an open-source JavaScript library aimed at visualizing graphs of thousands of nodes and edges using WebGL, mainly developed by @jacomyal and @Yomguithereal, and built on top of graphology.

How to use in your project

To integrate sigma into your project, follow these simple steps:

  1. Installation: Add sigma and graphology to your project by running the following command:

    npm install sigma graphology
    
  2. Usage: Import sigma into your JavaScript or TypeScript file:

    import Graph from "graphology";
    import Sigma from "sigma";
    

    Then, create a new Sigma instance with your graph data and target container:

    const graph = new Graph();
    graph.addNode("1", { label: "Node 1", x: 0, y: 0, size: 10, color: "blue" });
    graph.addNode("2", { label: "Node 2", x: 1, y: 1, size: 20, color: "red" });
    graph.addEdge("1", "2", { size: 5, color: "purple" });
    
    const sigmaInstance = new Sigma(graph, document.getElementById("container"));
    

How to develop locally

To run the Storybook locally:

git clone [email protected]:jacomyal/sigma.js.git
cd sigma.js
npm install
npm run start

This will open the Storybook in your web browser, which live reloads when you modify the stories or the package sources.

Resources

  • GitHub Project: The source code and collaborative development efforts for Sigma.js are hosted on GitHub.
  • Website: The official website, sigmajs.org, kindly designed by Robin de Mourat from the Sciences-Po médialab team, showcases the library's capabilities.
  • Documentation: A detailed documentation, built with Docusaurus, is available at sigmajs.org/docs. It provides extensive guides and API references for users.
  • Storybook: Interactive examples can be found at sigmajs.org/storybook.
  • Demo: A comprehensive demo, available at sigmajs.org/demo, features a full-featured React-based web application utilizing Sigma.js.

How to contribute

You can contribute by submitting issues tickets and proposing pull requests. Make sure that tests and linting pass before submitting any pull request.

You can also browse the related documentation here.

How to start a new package

Run npm run createPackage from the project root. It will:

  • Ask you the new package name
  • Copy the packages/template folder
  • Update the new package package.json entries (name, description, exports)
  • Update various other files (buildable packages list in tsconfig.json, Preconstruct compatible packages list in package.json...)

Frequently asked questions

Is sigma.js free to use?

sigma.js is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does sigma.js do?

A JavaScript library aimed at visualizing graphs of thousands of nodes and edges

What is sigma.js written in?

sigma.js is primarily written in TypeScript. Its source is publicly available at https://github.com/jacomyal/sigma.js, and it has 12,167 GitHub stars.