Crossfilter millions of records without latencies. This project is work in progress and not documented yet. Please get in touch if you have questions.
The largest experiments we have done so far is 10M flights in the browser, 33M flights in the browser with DuckDB, and ~180M flights or ~1.7B stars when connected to OmniSciDB (formerly known as MapD).
We have written a paper about the research behind Falcon. Please cite us if you use Falcon in a publication.
@inproceedings{moritz2019falcon,
doi = {10.1145/3290605},
year = {2019},
publisher = {{ACM} Press},
author = {Dominik Moritz and Bill Howe and Jeffrey Heer},
title = {Falcon: Balancing Interactive Latency and Resolution Sensitivity for Scalable Linked Visualizations},
booktitle = {Proceedings of the 2019 {CHI} Conference on Human Factors in Computing Systems - {CHI} {\textquotesingle}19}
}
- 1M flights in the browser: https://vega.github.io/falcon/flights/
- 10M flights in the browser with DuckDB-WASM: https://vega.github.io/falcon/flights-duckdb/
- 7M flights in OmniSci Core: https://vega.github.io/falcon/flights-mapd/
- 500k weather records: https://vega.github.io/falcon/weather/
Install with yarn add falcon-vis
. You can use two query engines. First ArrowDB
reading data from Apache Arrow. This engine works completely in the browser and scales up to ten million rows. Second, MapDDB
, which connects to OmniSci Core. The indexes are created as ndarrays. Check out the examples to see how to set up an app with your own data. More documentation will follow.
You can zoom histograms. Falcon automatically re-bins the data.
The original counts without filters, can be displayed behind the filtered counts to provide context. Hiding the unfiltered data shows the relative distribution of the data.
With unfiltered data.
Without unfiltered data.
Heatmap with circles (default). Can show the data without filters.
Heatmap with colored cells.
Horizontal bar.
Vertical bar.
Text only.
You can visualize the timeline of brush interactions in Falcon.
The GAIA spacecraft measured the positions and distances of stars with unprecedented precision. It collected about 1.7 billion objects, mainly stars, but also planets, comets, asteroids and quasars among others. Below, we show the dataset loaded in Falcon (with OmniSci Core). There is also a video of me interacting with the dataset through Falcon.
Install the dependencies with yarn
. Then run yarn start
to start the flight demo with in memory data. Have a look at the other script
commands in package.json
.
First version that turned out to be too complicated is at https://github.com/vega/falcon/tree/complex and the client-server version is at https://github.com/vega/falcon/tree/client-server.