Coder Social home page Coder Social logo

cadomani / sigma.js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jacomyal/sigma.js

1.0 0.0 0.0 16.01 MB

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

Home Page: https://www.sigmajs.org

License: MIT License

JavaScript 0.22% TypeScript 22.34% TypeScript 22.64% TypeScript 22.64% TypeScript 25.01% CSS 1.02% HTML 1.76% GLSL 1.06% GLSL 1.06% GLSL 1.06% GLSL 1.20%

sigma.js's Introduction

Build Status

Sigma.js

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

Overview

Architecture

Since version v2, sigma.js focuses on the management of graph display: rendering, interaction... The graph model is managed in a separate library called graphology, which is packed with convenience methods to manage graph data structures, and a lot of satellite libraries to handle various graph-related problems (metrics, community detection, layout algorithms...).

Graphology website offers a list of these libraries. Most of them can help you solve problems in your sigma.js based web applications.

Rendering

Sigma.js uses WebGL to render graphs. This makes it good at rendering medium to larger graphs in web pages (thousands of nodes and edges or more). It is also possible to customize rendering, but it is harder than it would be with SVG or Canvas based solutions.

Each way to draw a node or an edge is implemented as a program. You can develop your own, or use the owns provided by sigma. You can check this example to see how to use multiple programs. Also, you can check the list of available programs here.

Installation

You can install sigma (and graphology which is required for sigma to work) in your JavaScript or TypeScript project using npm:

npm install graphology sigma

Examples

The examples folder contains a series of self-contained TypeScript projects that you can either browse and edit on CodeSandbox or install locally likewise:

git clone [email protected]:jacomyal/sigma.js.git
cd sigma.js
npm install
cd examples
npm start --example=load-gexf-file # Change this to the desired example

List of available examples

Also, a more realistic sigma.js based web application is available in the demo folder. It aims to show a real-world usecase, and is the main showcase of sigma.js website.

Website

The current website is a simple manually crafted single-page website. It is located in the website folder. It also showcases the React.js based demo available in the demo folder in an iframe. The website itself does not need any build step, though the demo does.

It has been kindly designed by Robin de Mourat from the Sciences-Po médialab team.

Development

To start a dev server that will reload the webpage when the code is updated, run:

npm run website:watch

Then, open localhost:8080 in your browser. When any file in the website directory is saved (including the demo bundle), the page will be reloaded.

Build

To simply build the demo and copy the bundle in the website folder, just run:

npm run website:all

Contributing

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.

sigma.js's People

Contributors

yomguithereal avatar jacomyal avatar sim51 avatar sheymann avatar qinfchen avatar josemazo avatar ssidorchik avatar mef avatar patrickmarabeas avatar yaph avatar jacomyma avatar mattcg avatar apitts avatar avenzi avatar paulgirard avatar raibaz avatar ameliepelle avatar computermacgyver avatar totetmatt avatar tjdett avatar styu avatar rpeleg1970 avatar mattgu74 avatar luca avatar 3ch01c avatar mdamien avatar anirvan avatar alextsg avatar a---- avatar orlade avatar

Stargazers

Midas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.