What's New
v9.4 - In Development
Target Release Date: July 2026
Scope tracked in the v9.4 milestone.
WebGPU
- Added the WebGPU support matrix and migration roadmap, covering WebGL2 and WebGPU support by module and layer, upstream dependencies, and host integration limitations.
SkyboxLayer: validated the existing native WGSL and GLSL implementation with real WebGPU/WebGL2 device selection in the skybox example.BlockLayer: added native WGSL for instanced block fills, outlines, projection, opacity, and picking while preserving the existing WebGL2 shaders.FastTextLayer: added an upstream-informed WGSL compatibility shader for existing packed bitmap and signed-distance-field glyphs, font-atlas bindings, clipping, alignment, and WebGPU mipmaps.DependencyArrowLayer: added native WGSL for directional arrow-marker geometry, picking, and line-mode dependencies; path mode remains blocked on upstreamPathLayersupport.HorizonGraphLayer: added native WGSL and portabler32floatdata-texture bindings.MultiHorizonGraphLayer: made stacked horizon graphs portable by using dual-backendLineLayerdividers alongside the new horizon shaders.TraceGraphLayer,TracePreparedStateLayer, andTraceProcessLayer: ported trace backgrounds, binary span blocks, outlines, labels, overflow labels, separators, and straight dependencies by reusing dual-backend community layers.- Trace counter sparklines now preserve their full geometry using portable
LineLayersegments. - The website injects luma.gl-style device tabs into skybox, path and dependency-marker, information-visualization, horizon-graph, and trace examples, with independent managers, WebGPU preference, WebGL2 fallback, and real renderer switching; standalone examples remain free of device-management dependencies.
@deck.gl-community/layers
DependencyArrowLayer- NEW directional marker layer for dependency links with path, line, or arc routing.DependencyArrowLayermarker geometry now includes a native WGSL shader alongside its existing WebGL2 shader, including directional markers and picking; complete path-mode compatibility remains dependent on upstreamPathLayersupport.PathOutlineLayerandPathMarkerLayernow use deck.gl v9-native sublayers for outlined paths, dashed strokes, and pixel-sized directional markers, restoring the path outline and marker example.
@deck.gl-community/infovis-layers
- Added generic animation, block, fast-text, UTF8 Arrow string-view, view-layout, and viewport-bounds helpers for trace-style visualizations.
BlockLayernow provides paired WebGPU WGSL and WebGL2 GLSL shaders for instanced fills, outlines, projection, and picking.FastTextLayernow renders its existing packed glyphs and generated font atlases on WebGPU and WebGL2; optimized upstream text and Arrow renderers remain planned for luma.gl v10.
@deck.gl-community/timeline-layers
TimeAxisLayernow supports adaptive trace-style duration and timestamp grids plus exported tick formatting helpers.HorizonGraphLayerandMultiHorizonGraphLayercan render their floating-point data textures on WebGPU and WebGL2; stacked horizon dividers now use the upstream dual-backendLineLayer.
@deck.gl-community/trace-layers
- Trace graph data, layout, style, runtime-ref, Chrome trace, Perfetto trace, and Arrow ingestion APIs now ship from normalized
trace,layers,loaders, andreactpackage subpaths. TraceEnginenow owns mounted trace selection, collapse, layout, prepared scene, and diagnostics state below React;DeckTraceGraphrenders an engine instead of receiving the full controlled trace-view state directly.TraceChunkStorenow exposes source-owned graph-data materialization and retained-state diagnostics for incremental windows, whileTraceStoreLayercomposes that flow as a low-level deck layer.DeckTraceGraph, deck controllers/layers, trace loaders, and the Tracevis React surface now consume shared@deck.gl-community/panels,@deck.gl-community/widgets, and@deck.gl-community/infovis-layersAPIs instead of vendored upstream copies.- Main trace rendering, binary span geometry, straight dependency arrows, row separators, span borders, overflow labels, and counter sparklines now work on WebGPU and WebGL2 using shared portable layers.
- Managed trace viewers accept caller-owned rendering devices and backend-neutral GPU-timing callbacks.
- Added the website Tracevis example for exercising trace loading, selection, catalog, and Studio visualization settings workflows.
@deck.gl-community/react
<Panel />- NEW React component for rendering reusable@deck.gl-community/panelsdefinitions in React and MDX trees.
@deck.gl-community/widgets
PanelWidget- NEW generic deck adapter for any panel-ownedPanelComponent.- Thin named adapters now cover real panel containers plus specialized toolbar and toast components without duplicating panel rendering logic.
OmniBoxWidgetnow acceptsrenderResultsSummaryfor rendering a compact caller-provided summary above dropdown results.OmniBoxWidgetnow accepts shared command manager search prefixes for command-mode Tracevis integrations.ModalPanelWidgetinherits floating, draggable, custom-styled modal support fromModalPanelContainer.createStudioSettingsWidgetandupdateStudioSettingsWidgetnow host the shared Studio settings panel through deck widget chrome.
@deck.gl-community/panels (NEW module)
A new module for deck-independent panel composition and small application UI.
-
PanelManager- mount compatible panel-managed UI into a plainHTMLElement -
PanelComponent- NEW root lifecycle for mountable panel-owned UI. -
Panelnow inherits the sharedPanelComponentlifecycle, including direct mounting. -
Panel/container composition APIs extracted into a dedicated package
-
Stand-alone documentation and examples for panel composition outside deck.gl
-
Composite panels now accept ordered
Panel[]arrays, shell containers render directpanelinputs. -
ModalPanelContainernow supports floating non-blocking dialogs, draggable dialog handles, left placement, custom dialog/content styles, and content-rendered close controls. -
SplitterPanel- NEW composite panel for resizing two panel groups horizontally or vertically. -
BinaryDataPanel- NEW reusable panel for compact hex and ASCII previews of caller-supplied binary data. -
ArrowTablePanel- NEW reusable panel for bounded Apache Arrow table previews with row, column, batch, nested-list, matrix, temporal, and loaders.gl wrapper support. -
ArrowSchemaPanel- NEW reusable panel for Apache Arrow schema inspection, including schema, field, child, matrix, and temporal metadata with JSON metadata formatting. -
ArrowBatchesPanel- NEW reusable panel for inspecting Arrow record batches, row counts, cumulative row ranges, and column counts. -
StudioSettingsPanel- NEW schema-driven settings surface with grouped controls, compact navigation, and visual routing-shape controls. -
SettingsPanelnow rendersmulti-selectdescriptors through the shared searchable panel selector. -
SettingsPanelnumeric range inputs can apply descriptor-level trailing debounce viasliderDebounceMs. -
SettingsPanelandStudioSettingsPanelselect menus can render option descriptions and grow to fit long labels;StudioSettingsPanelalso acceptssettingRowLayout: 'fit-labels'when controls should claim width from short labels. -
ModalPanelContainerandSidebarPanelContainertrigger icons can render data/http(s) image URLs as CSS mask icons. -
CommandManager- NEW shared command registry for keyboard shortcuts, widgets, and host automation surfaces. -
SettingsManager- NEW UI-agnostic helper for settings snapshots, structured change descriptors, and descriptor-aware local storage persistence.
v9.3
Released: April 15, 2026
@deck.gl-community/geo-layers
SharedTile2DLayer- NEW experimental tiledCompositeLayerthat can share oneSharedTileset2Dacross multiple layer instances and multiple views.SharedTileset2D- NEW shared tile cache and loading engine for coordinated multi-view / multi-layer tile loading.TileGridLayer- NEW helper overlay for visualizing tile loading, tile bounds, and tile zoom depth while debugging tiled rendering.- New
SharedTile2DLayerexample showing one shared auto-tiled GeoJSONTableTileSourceand one sharedSharedTileset2Dfeeding multiple styled comparisons plus a minimap.
Highlights:
- deck.gl v9.3 compatibility
- Examples transitioned from React to "pure JavaScript" examples using deck.gl widget panels.
- Website and remaining React examples now build against React 19;
@deck.gl-community/reactaccepts both React 18 and React 19.
@deck.gl-community/layers
SkyboxLayer- NEW experimental layer for rendering a camera-centered cubemap background in deck.gl.- Supports
MapView,GlobeView,FirstPersonView, and other 3D-capable views. - Accepts either a cubemap manifest URL or an in-memory cubemap manifest.
- Includes cubemap normalization utilities for converting loaded cubemap faces into runtime texture data.
- Supports
Examples:
@deck.gl-community/basemap-layers (NEW module)
A new experimental basemap module for rendering style-defined basemaps directly with deck.gl.
BasemapLayer- NEWCompositeLayerthat loads a MapLibre / Mapbox style document and renders background, raster, vector, and label content using deck.gl sublayers.getBasemapLayers- Generate deck.gl sublayers from an already-resolved basemap style definition.getGlobeBaseLayers- Convenience helper for generating the globe-surface basemap layers.getGlobeTopLayers- Convenience helper for generating globe overlay layers such as atmosphere.- BasemapLayer MapView - Interactive flat-map control example with style switching and globe/flat runtime validation.
@deck.gl-community/basemap-layers/map-style - Utilities for loading and working with map styles available as a separate deck.gl independent sub-export:
MapStyleLoader- loaders.gl-compatible loader wrapper for resolving and validating style documents.BasemapSourceSchema,BasemapStyleLayerSchema,BasemapStyleSchema,ResolvedBasemapStyleSchema- Zod schemas for strongly typed style validation.parseProperties- Resolve style paint/layout properties for a given zoom level.filterFeatures- Apply Mapbox-style feature filters to decoded features.findFeaturesStyledByLayer- Inspect which features match a specific style layer.resolveBasemapStyle- Resolve style URLs, in-memory style objects, relative TileJSON references, and source URLs into a validated runtime style definition.
@deck.gl-community/three (NEW module)
New module for THREE.js integration experiments
TreeLayer- NEW layer for rendering 3D tree/forest datasets using Three.js instanced meshes.- 5 species / silhouettes: pine, oak, palm, birch, cherry.
- Organic canopy geometry with smooth low-frequency vertex jitter.
- Per-tree variety via position-derived random bearing and asymmetric XY scale.
- Season-driven canopy colours (spring / summer / autumn / winter).
- Pine tier density control (
getBranchLevels1–5) with per-tier drift. - Crop / fruit / flower visualisation (
getCrop) with live and dropped crop spheres. - Wild Forest example with 9 forest zones and interactive controls.
v9.2
Released: February 20, 2026
Highlights:
- deck.gl v9.2 compatibility
- Website: documentation improvements, search, and new gallery examples.
- Tests migrated from
jesttovitest. editable-layersnow uses turf.js 7 and official GeoJSON types.- New
@deck.gl-community/widgetsmodule with experimental deck.gl UI widgets. - New
@deck.gl-community/timeline-layersmodule for time-series visualization.
@deck.gl-community/widgets (NEW module)
A new module containing experimental widgets for deck.gl:
ZoomRangeWidget- NEW deck.glWidgetproviding a zoom slider.PanWidget- NEW deck.glWidgetproviding pan buttons for moving the viewport.
@deck.gl-community/timeline-layers (NEW module)
A new module providing time-series and timeline visualization layers (layers previously available in @deck.gl-community/infovis-layers):
HorizonGraphLayer- Compact time-series visualization using the horizon graph technique.MultiHorizonGraphLayer- Stack multiple horizon graphs with dividers.TimeAxisLayer- Dynamic tick-mark time axis for timeline views.VerticalGridLayer- Dynamic vertical grid lines that can sync with a time layer.
@deck.gl-community/editable-layers
DrawPolygonMode: AddedallowHolesconfiguration to enable drawing polygon holes within existing polygons.DrawPolygonMode: Enhanced hole creation with validation to prevent overlapping or nested holes.DrawPolygonMode: Added comprehensive edit types for hole operations (addHole,invalidHole).DeleteModeis now exported from the top-leveledit-modesentry point.- Fixed: rectangle corners can no longer be accidentally removed when
lockRectanglesis set. - Fixed: three-click polygon mode no longer misprocesses guide vertices.
Breaking Changes:
DrawPolygonMode:preventOverlappingLinesconfiguration renamed toallowSelfIntersection(with inverted logic).- Migration:
{preventOverlappingLines: false}→{allowSelfIntersection: true} - Migration:
{preventOverlappingLines: true}→{allowSelfIntersection: false}(or omit — this is now the default)
- Migration:
@deck.gl-community/leaflet
DeckLayerhas been renamed toDeckOverlayfor consistency with the deck.gl ecosystem.- Migration: replace all
DeckLayerimports and usages withDeckOverlay.
- Migration: replace all
@deck.gl-community/graph-layers
GraphLayerGraphLayerProps.data—GraphLayernow acceptsGraphEngine,Graph, or raw JSON via the newdataprop (including async URLs).
Graph Loaders:
- A common
GraphDataschema is defined and returned by all graph loaders. JSONGraphLoadernormalizes edge arrays or{nodes, edges}objects.DOTGraphLoader— load graphs from Graphviz DOT format, including remote URLs.ArrowGraph— load graphs from Arrow columnar format.
Graph Styling:
GraphLayerProps.stylesheet— unified stylesheet prop covering node, edge, and decorator styles.GraphStylesheet— NEW'arrow'edge decorator renders arrows on directional edges.GraphStylesheet— style constants can now be defined with simple string literals (e.g.'circle'instead ofNODE_TYPE.CIRCLE).
Graph Layouts:
-
D3DagLayout— NEWGraphLayoutfor DAGs (Directed Acyclic Graphs) with layering and collapse/expand support. -
RadialLayout— NEWGraphLayoutfor radial graph layouts. -
HivePlotLayout— NEWGraphLayoutfor hive plot graph layouts. -
D3MultiGraphLayout— NEWGraphLayoutfor multi-edge graph layouts. -
Graph events are now handled via callback props rather than
EventTarget. -
GraphViewerexample expanded to cover all new layouts with live UI controls for layout options. -
Significant updates and new content throughout.
v9.1
Released: July 8, 2025
Highlights
- deck.gl 9.1 compatility.
- Website fixes and example improvements.
@deck.gl-community/leaflet
- This module is published to npm.
- A working example is now up on the website.
@deck.gl-community/geo-layers (New module)
GlobalGridLayer- A new "generic" global grid layer that works against a pluggableGlobalGriddecoder.GlobalGrid- A small abstraction API for global grid decoders, making it easier to write visualizations / applications that can work with multiple global grids.A5Grid,H3Grid,S2Grid,GeohashGrid,QuadkeyGrid- Pre-defined global grid system "decoders" for some of the most popular global grids that can be used with theGlobalGridLayer
@deck.gl-community/timeline-layers (New module)
HorizonGraphLayer- New layer for compact time series.MultiHorizonGraphLayer- Stack multiple horizon graphs with dividers.TimeAxisLayer- Dynamic tick mark time axis for timeline views.VerticalGridLayer- Dynamic vertical grid lines that can sync with a time layer.
@deck.gl-community/infovis-layers (New module)
- Utilities for advanced deck.gl view management.
@deck.gl-community/graph-layers
- Code base has been partially modernized in an effort to simplify maintenance and contributions.
v9.0
Released: November 20, 2024.
Highlights
- Add deck.gl v9.0 support to selected modules
@deck.gl-community/editable-layers)
- This new layer pack is a fork of Uber's nebula.gl framework (which unfortunately no longer provides write access to maintainers).
- When drawing circles or ellipses properties of the created geometry are now stored in the vector's properties.
Pre v9.0 Updates
Released: December 22, 2023
@deck.gl-community/layers v0 - A new module intended to containing a collection of useful community layers. Initial layers are TileSourceLayer, DataDrivenTile3DLayer.
Released: April 14, 2023:
@deck-graph-layers - A new layer pack for rendering graphs (nodes and edges). Forked from Uber's archived graph.gl repo.