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!
- Install Docker (e.g. on a Linux system run
sudo apt update; sudo apt install -y docker.io docker-compose;
). - Run
sudo ./run-kyrix.sh --nba
in the root directory. You might need to makerun-kyrix.sh
executable, i.e.sudo chmod +x run-kyrix.sh
. - 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: https://<host>:8000/