Projects

Open Source Data Visualization Project deck.gl v9 Released


WebGPU enablement combines with new community-based features that include improved GPU-based data filtering, more intuitive first-person views, and a new flexible widget system.

Today, the deck.gl team has released v9! deck.gl, a GPU-powered framework for visual exploratory data analysis of large datasets in the browser. deck.gl is a hosted project at the OpenJS Foundation. deck.gl is part of Open Visualization (“OpenVis”), Collaboration Space forum within the OpenJS Foundation that neutrally governs kepler.gl, deck.gl, and the vis.gl suite of frameworks, a comprehensive and widely adopted set of visualization libraries based on JavaScript and Web GPU standards. 

“Data visualization is a critical technology in multiple industries, and improved visualization tools are key to pushing JavaScript forward in fields like geospatial analysis, data-driven mapping, self-driving cars, and more,” said Robin Ginn, executive director, OpenJS Foundation. “Many congrats to the contributors for this new release and all their recent progress from deck.gl and luma.gl. It’s amazing to see how stunning deck.gl visualizations are. It shows the power of JavaScript.”

Both Foursquare and CARTO are covering the release with further information available.

“deck.gl continues to improve, based on feedback and direct contributions from the greater community. It’s great to see the power of open source and JavaScript in data-heavy visual analytics applications,” said Felix Palmer, Principal Rendering Engineer at CARTO. “I’d like to give sincere thanks for all the focus, energy, and effort put into this release by our contributors and our community. It’s incredible to be part of this process.” 

Key Features of deck.gl v9

  • WebGPU ready - deck.gl is now based on luma.gl v9 which brings WebGPU support. This will allow deck.gl to start running on WebGPU.
  • deck.gl is now written ground-up in TypeScript providing best-in-class developer experience in terms of type safety, type hints etc.
  • Category filtering in DataFilterExtension - The DataFilterExtension extends the GPU-based data filtering functionality in deck.gl to support categorical data columns. It allows the layer to show and hide objects (row) based on the value of categorical fields.
  • Better FirstPersonView - The FirstPersonView class is a subclass of View that describes a camera placed at a provided location, looking towards the direction and orientation specified by viewState. The new behavior is similar to that of a first-person game.
  • Widgets - A new widget API enables developers to create reusable HTML widgets that can access and control deck.gl state. The initial set of widgets includes compass, navigation controls etc.

deck.gl is designed to simplify high-performance, WebGL-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 tabular data (either traditional JSON arrays or) into a stack of visual layers - e.g. icons, polygons, texts; which can then be visualized with views: e.g. map, first-person, orthographic. 

luma.gl v9

The biggest change in today’s release is under the hood: deck.gl is now based on luma.gl v9. luma.gl v9 is a major release that adds WebGPU support. The luma.gl  core API is now portable and no longer WebGL-specific and can support bothWebGL 2 and WebGPU. It is worth noting that luma.gl v9 drops WebGL 1 support to help focus future development efforts towards WebGPU. A full list of new luma.gl v9 features, general improvements, new module structure, and more is available here.

Recent deck.gl Case Study

University of Florida researcher Changjie Chen recently built a deck.gl app for coastal resilience funded by the Florida Department of Environmental Protection (FDEP). Chen is part of the Florida Institute for Built Environment Resilience (FIBER) which focuses on local community resilience in Florida. Chen’s use of deck.gl is an example of using visualizing data to communicate complex topics. Chen says that deck.gl elevated their efforts to talk to the community and engaging. It also shows the accessibility of deck.gl. Chen is an urban planner, statistician, and is self-taught using JavaScript and deck.gl. Chen usually codes in Python and R. See deck.gl in action here: https://resilientcedarkey.web.app/viewer/housing Chen’s presentation to the Open Visualization Bi-weekly Community Meeting (March 14, 2024) is here: https://youtu.be/G96RwtT3dtw?si=RTSdA5A_d2xkwXqX&t=265 

OpenVis and deck.gl Resources

OpenJS Resources

To learn more about participate in the evolution of OpenJS: https://openjsf.org/about/join/