deck.gl
WebGL2 powered visualization framework
Framework for rendering millions of data points as interactive visual layers on maps and 3D views in the browser, using the GPU so large data sets stay smooth and responsive.
deck.gl is a framework for drawing large data sets on screen as interactive visuals, written mainly in TypeScript. It uses WebGL2 and WebGPU, which are browser technologies that let a web page draw graphics using the computer's graphics chip (the GPU). Using the GPU is what allows it to show very large amounts of data smoothly, where ordinary drawing would slow down.
The core idea, as the README explains it, is to take your data, usually a list of records in JSON form, and turn it into a stack of visual layers. A layer might be icons, polygons, or text placed on a map. You then look at those layers through a chosen view, such as a flat map, a first-person view, or a straight-on orthographic view. By combining ready-made layers, the README says, you can get impressive results with little effort, and you can also extend the system for custom needs.
deck.gl handles several common problems on its own. It renders and updates big data sets quickly, supports interaction like clicking on an item, highlighting it, or filtering, and deals with map projections and connecting to major basemap providers. It also ships with a catalog of tested layers.
There are several ways to use it. You can drop in a single script tag in an HTML page, install it as an npm module for plain JavaScript or React projects, or use a Python version called pydeck through pip. The README also lists third-party add-ons for other languages and tools, including R, C++, and Vega.
The remaining sections point to learning resources such as API documentation, demos, an interactive playground, and a Slack community, along with contribution guidelines and a list of companies and sponsors that support the project, which is part of the vis.gl effort under the OpenJS Foundation.
Where it fits
- Visualize thousands of GPS tracks or geographic data points on an interactive web map with click and hover interactions
- Build a real-time data dashboard with multiple filterable layers, icons, polygons, and heatmaps, on top of a basemap
- Create a 3D population density or traffic visualization in a Jupyter notebook using the Python pydeck library