Giter Site home page Giter Site logo

scarlettz98 / kyrix Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tracyhenry/kyrix

0.0 1.0 0.0 47.13 MB

Interactive pan/zoom data visualizations at scale

Java 37.48% PLpgSQL 2.83% Shell 9.56% JavaScript 47.28% C++ 0.43% CSS 0.34% HTML 1.95% Python 0.12%

kyrix's Introduction

Kyrix - Easy Creation of 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 docker-compose up in the root directory.
  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:

kyrix_1  | Serving /project
kyrix_1  |  New project definition coming...
kyrix_1  | There is diff that requires recomputing indexes. Shutting down server and recomputing...
kyrix_1  | Precomputing...
kyrix_1  | *** done! Kyrix ready at: http://<host>:8000/  (may need a minute to recompute indexes - watch this log for messages)
kyrix_1  | Done precomputing!
kyrix_1  | Completed recomputing indexes. Server restarting...
kyrix_1  | Backend server started...

More information

kyrix's People

Contributors

tracyhenry avatar asah avatar xiaoyu4321 avatar yediwang avatar houxinli avatar brettgurman-real avatar peterg17 avatar

Watchers

James Cloos 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.