Skip to main content

Introduction

These docs are for  
Looking for an old version?    

deck.gl is designed to simplify high-performance, WebGPU/WebGL2 based visualization of large data sets. Users can quickly get impressive visual results with minimal effort by composing existing layers, or leverage deck.gl's extensible architecture to address custom needs.

deck.gl maps data (typically in the form of arrays of JSON objects or binary data columns) into a stack of visual layers - e.g. icons, polygons, texts; and lets the application render these through various views: e.g. map, first-person, orthographic.

deck.gl handles a number of challenges out of the box:

  • Performant rendering of large data sets
  • Interactive event handling such as picking, highlighting and filtering
  • Cartographic projections and integration with major basemap providers including Maplibre, Google Maps, Mapbox, and Esri ArcGIS
  • A catalog of proven, well-tested layers

deck.gl is designed to be highly customizable. All layers come with flexible APIs to allow programmatic control of each aspect of the rendering. All core classes are easily extendable by the users to address custom use cases.

Flavors

Script Tag

<script src="https://unpkg.com/deck.gl@latest/dist.min.js"></script>

NPM Module

npm install deck.gl

Pure JS

React

Python

pip install pydeck

Ecosystem

deck.gl is the core framework in the vis.gl framework suite. To prevent the deck.gl code base from becoming an unmaintainable monolith, deck.gl relies on other official vis.gl companion frameworks for important functional areas such as data loading, low-level GPU access, and geospatial math:

FrameworkDescription
react-map-glA React wrapper around Mapbox GL which works seamlessly with deck.gl. There are two integration modes to choose from depending on which features you need, see Using With Mapbox for details.
react-google-mapsA React wrapper around Google Maps which works seamlessly with deck.gl.
loaders.glSuite of framework-independent loaders for file formats focused on visualization of big geospatial data.
luma.glA general purpose WebGPU/WebGL2 library designed to be interoperable with other WebGPU/WebGL2 libraries. luma.gl can work with WebGL contexts created by other libraries.
math.glA 3D + geospatial math library.

Community Add-Ons

A source of "semi-official" extension modules for deck.gl can be found in the deck.gl-community repository, including experimental layer packs such as editable layers and graph layers, additional base map integrations, etc.

Third-Party Bindings

The following is a list of third-party bindings of deck.gl to other languages. Note the project maintainers may not always keep up with the latest deck.gl releases.

LanguageProject URL
Rmapdeck
C++deck.gl-native
Vegavega-deck.gl
PythonLonboard

Governance

deck.gl is part of the OpenJS Foundation, and is a leading framework in OpenJS's Open Visualization collaboration space, with a strong community of contributors and users.

  • Find our Technical Charter and Community Governance Guidelines here.
  • Join our Slack workspace for learning and discussions.
  • Our bi-weekly meetings and yearly collaborator summits are open to everyone and are announced in the slack channel.