Falcon
Brushing and linking for big data
Install / Use
/learn @vega/FalconREADME
Falcon: Interactive Visual Analysis for Big Data
Crossfilter millions of records without latencies.
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}
}
This project was developed for the paper above. A lot of the functionality is now in the falcon-vis library, VegaFusion, and Mosaic.
Demos
- 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/

Usage
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.
Features
Zoom
You can zoom histograms. Falcon automatically re-bins the data.
<img src="images/zoom.gif" width="500">Show and hide unfiltered 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.
<img src="images/unfiltered.png" width="500">Without unfiltered data.
<img src="images/no_unfiltered.png" width="500">Circles or Color Heatmap
Heatmap with circles (default). Can show the data without filters.
<img src="images/circles.png" width="460">Heatmap with colored cells.
<img src="images/color.png" width="460">Vertical bar, horizontal bar, or text for counts
Horizontal bar.
<img src="images/hbar.png" width="300">Vertical bar.
<img src="images/vbar.png" height="300">Text only.
<img src="images/text.png" width="300">Timeline visualization
You can visualize the timeline of brush interactions in Falcon.
<img src="images/timeline.png" width="400">Falcon with 1.7 Billion Stars from the GAIA Dataset
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.
<img src="images/gaia.png">Developers
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.
Experiments
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.
Related Skills
node-connect
352.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
