Implement web workers in an open-source javascript visualisation library

Closed Posted 7 years ago Paid on delivery
Closed Paid on delivery

IMPORTANT:

To do this project you need to know Javascript (ES 6), and be familiar with Web Workers, Gulp, and git. You are expected to be confident with development, and how to design a JS apps, and can understand what needs to be done without function-per-function spec (eg. if you do not know how a web worker works, you are expected to go to the official HTML5 documentation).

CONTEXT:

[url removed, login to view] ([url removed, login to view]) is an open-source library to draw charts and 2D network graphs. To render such 2D graph networks, coordinates of a set of points have to be computed using a graph layout algorithm.

If you have no idea what this is, here is an example: [url removed, login to view]

These kind of algorithms are very CPU intensive, a problem in web browsers where Javascript programs are single threaded unless you use web workers: when computing a large graph in [url removed, login to view], other JS functions will freeze.

GOAL:

The goal of this project is to modify the open-source [url removed, login to view] library to run its graph layout algorithms (priority for the "force atlas" layout) in the background by wrapping then in a web worker.

This web worker should communicate with the main rendering thread (the web page) through the web worker API, and only transmit the strict minimum: the coordinates of points that have been computed.

If the data model changes (eg. new nodes are added or deleted) the web worker shoudl be updated as well.

DELIVRABLE:

The expected deliverable is a zip folder published on Freelancer, containing a version of [url removed, login to view] that supports graph layout running in a web worker, effectively improving the performance of the rendering.

You will release your code under the same licence as the original [url removed, login to view] project (dual licence Apache 2.0 and MIT).

The first user will be me (I am using [url removed, login to view] in a project), but you are *strongly* encouraged to also put your branch on GitHub and submit a Pull Request to the original [url removed, login to view] project so that everybody can benefit from it!

TO HELP YOU:

To implement the web worker system, you can have a look at some old code of a previous attempt:

- here: [url removed, login to view]

- and here: [url removed, login to view]

You can also take inspiration from this other open-source library:

[url removed, login to view]

Here are the some of steps that you may have to follow:

- fork the “develop” branch of [url removed, login to view] from GitHub

- understand how graph layout work through the documentation / source of [url removed, login to view]

- modify the code so that the graph layout algorithm can run from a web worker

- allow some control over performances, if it makes sense (for instance a refresh frequency parameter)

- make sure existing unit tests pass with your changes

- finally, you are encouraged to publish your code on github and submit a Pull Request to the original [url removed, login to view] project to share with the community! (see [url removed, login to view])

JavaScript Visualization

Project ID: #12814644

About the project

6 proposals Remote project Active 7 years ago

6 freelancers are bidding on average €191 for this job

abdulghaffar11

Hello, DON'T AWARD PROJECT BEFORE DISCUSSION, am understand almost your project but I have few questions to ask, knock me for further discussion, we have 5 years experience in this skills thank you!

€100 EUR in 3 days
(27 Reviews)
5.0
novaemp

Hi. I have reread your job description with care and I can do this job on time because I have much experience of Javascript for 10+ years and most notably visualizing data using it. Personally you give much contents More

€200 EUR in 3 days
(10 Reviews)
4.0
samarthbuch

Hello, We have pool of dedicated team consisting of certified developers capable enough to handle your project exactly according to requirements and within said time frame. As per shared project description we More

€155 EUR in 3 days
(4 Reviews)
2.1