human-nature-lab / breadboard

Breadboard is a software platform for developing and conducting human interaction experiments on networks. It allows researchers to rapidly design experiments using a flexible domain-specific language and provides researchers with immediate access to a diverse pool of online participants.
http://breadboard.yale.edu
MIT License
29 stars 2 forks source link

Consider using vivagraph.js for force directed graph algorithm #147

Open disperse opened 6 years ago

disperse commented 6 years ago

http://marvl.infotech.monash.edu/webcola/

disperse commented 6 years ago

However, according to their homepage: it may be less scalable to very large graphs.

wyattis commented 6 years ago

Since we can track when changes are being made to the graph it might be in our best interest to control the simulation manually using simulation.stop. This way we can reduce CPU usage when we know nothing is changing in the graph.

If we limit graph access to custom methods we could optimize this further by only running the simulation when a real change happens to the graph. We could only run the simulation if it's nodes or edges being added or removed and not run the simulation if the colors or other properties are changing.

Furthermore, we could move the graph simulation to a web worker and avoid blocking the UI while the CPU intensive calculations are happening.

wyattis commented 6 years ago

Here's a list I found of graph visualization libraries.

Here's a notable example of a graphing library that has very high performance