Skip to content

Interactive details-on-demand data visualizations at scale

License

Notifications You must be signed in to change notification settings

favour-nerrise/Covid19_Kyrix

 
 

Repository files navigation

Kyrix - Democratizing Pan/zoom Data Visualizations at Scale

Build status code style: prettier

About

Kyrix is a system that facilitates the creation of data visualizations with details-on-demand interactions (e.g. pan and zoom, see example demos above). In this paradigm, the user often starts at an overview of the dataset, zooms into a particular region of interest to see more details, zooms out then repeats. As demonstrated by early research, this interaction pattern is easily learnable and particularly effective in reducing users' burden when exploring large datasets, while also preserving their sense of position and context. Many of Pan/zoom visualizations are purpose-built (e.g. Google Maps) and are not easily extensible. Kyrix provides a general framework for easy creation of such visualizations.

In visualizations of such, the underlying dataset is often large. To deal with large data, Kyrix is focused on optimizing two goals: 1) usable declarative API library for visualization developers and 2) 500ms response time to user interactions, which is required to enable interactive browsing. See our EuroVis paper for more technical details.

We are working with users from MGH (30T data vis demo), Paradigm 4, Agero and Recorded Futures to get feedback from serious real-world applications. We look forward to your feedback as well. Take a look at the instructions below to get started and let us know what you think!

Installation instructions for the impatient

  1. Install Docker (e.g. on a Linux system run sudo apt update; sudo apt install -y docker.io docker-compose;).
  2. Run sudo ./run-kyrix.sh --nba in the root directory. You might need to make run-kyrix.sh executable, i.e. sudo chmod +x run-kyrix.sh.
  3. Wait a couple minutes, then point your browser at :8000 - remember that if you are using a cloud instance you may (probably) need to open your cloud provider's firewall for this port. If that sounds scary, you can create an SSH tunnel from your PC (e.g. Mac) using ssh -N <server ipaddr> -L 8000:<same ipaddr>:8000 to forward your laptop's port 8000 to the server via SSH tunneling.

note that you'll need to wait for a message saying Backend server started... like this:

Serving /project
New project definition coming...
There is diff that requires recomputing indexes. Shutting down server and recomputing...
Precomputing...
Done precomputing!
Completed recomputing indexes. Server restarting...
Backend server started...
*** done! Kyrix ready at: http:https://<host>:8000/

More information

About

Interactive details-on-demand data visualizations at scale

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 49.5%
  • Java 39.0%
  • Shell 7.3%
  • PLpgSQL 2.0%
  • HTML 1.5%
  • C++ 0.3%
  • Other 0.4%