What's New
v9.4 - In Development
Target Release Date: July 2026
Scope tracked in the v9.4 milestone.
- Development now targets community
9.4.0-alpha.0, deck.gl9.4.0-alpha.2, and luma.gl9.4.0-alpha.1; the Turf 7 and mjolnir.js 3.1 beta baselines keep editable and event-driven layers compatible with the 9.4 toolchain.
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.TimeDeltaLayer: uses portable line guides and native-WGSL fast-text labels on WebGPU while preserving WebGL2 label backgrounds.DependencyArrowLayer: added native WGSL for directional arrow-marker geometry and picking; line, arc, and path routing are browser-verified on both backends with deck.gl 9.4 alpha.2.PathOutlineLayerandPathMarkerLayer: use the upstream dual-backendPathLayerand add a local WGSL dash plugin untilPathStyleExtensiongains native WGSL.HorizonGraphLayer: added native WGSL and baseline-compatible WebGPU integer data textures that preserve the original float bits.MultiHorizonGraphLayer: made stacked horizon graphs portable by using dual-backendLineLayerdividers alongside the new horizon shaders.VerticalGridLayer: validated viewport-driven timeline ticks and grid lines on both graphics backends.TimelineLayer: validated track, clip, scrubber, and line geometry with the upstream WebGPU polygon and line layers; text labels and interactions remain in progress.WindLayerandDelaunayCoverLayer: render filled directional arrows and station-triangulated surfaces using native WebGL2/WebGPU triangle shaders.ParticleLayer: restored the historical wind showcase's GPU-resident particle advection using WebGL2 transform feedback and native WebGPU compute, with no production particle readbacks and support for up to one million animated particles; native point rendering preserves simulation buffer ownership and defers resource cleanup until submitted GPU work completes. WebGPU weather textures preserve float data in integer textures so baseline adapters do not requirefloat32-filterable.RoundedRectangleLayer,PathEdgeLayer, andEdgeArrowLayer: replaced WebGL-only graph primitives with CPU-tessellated polygons and browser-verified upstream path rendering.- GeoArrow column, heatmap, path, point-cloud, polygon, scatterplot, and solid-polygon layers now
have browser coverage for Arrow binary attributes on WebGL2 and WebGPU. The compatibility matrix
records the remaining baseline vertex-buffer limit in
GeoArrowArcLayer. EditableGeoJsonLayer: browser-verified polygon, path, and edit-handle rendering on WebGPU, including its picking-width shader customization.TraceGraphLayer,TracePreparedStateLayer, andTraceProcessLayer: ported trace backgrounds, binary span blocks, outlines, labels, overflow labels, separators, and straight and curved dependencies by reusing dual-backend community layers.- Trace counter sparklines now preserve their full geometry using portable
LineLayersegments. GlobalGridLayer,TileGridLayerborders, and the wind showcase's state boundaries now have local-data browser coverage on WebGL2 and WebGPU.- Every website gallery example and live layer-reference example now receives a standalone
DeviceTabsWidgetfrom the shared imperative host, with an independent device manager, WebGPU preference, WebGL2 fallback, renderer remounting, and preserved view state. - Every documentation page now displays a generated WebGPU compatibility badge linked to the support matrix. Verified and blocked layer pages override their package-level status, and backend-neutral data, grid-adapter, layout, loader, mode, and trace-model APIs are marked not applicable.
@deck.gl-community/geo-layers
- Added the work-in-progress reusable wind showcase, ported from Nicolas Belmonte's original deck.gl example and the original 72-hour United States station forecast.
ParticleLayeradvances up to one million GPU-resident particles with WebGL2 transform feedback or WebGPU compute; its production animation does not read particle buffers back to the CPU.WindLayerrenders interpolated, speed-colored wind arrows;ElevationLayerrestores smooth, vertically exaggerated image-based mountain terrain.DelaunayCoverLayerexposes the weather-station mesh, whileDelaunayInterpolationprovides backend-independent explicit weather sampling and rasterization.WindLayerarrows andDelaunayCoverLayerstation terrain now use native GLSL/WGSL triangle geometry; image-based mountain terrain remains dependent on upstream WebGPU support.- Added public weather data, field, measurement, bounds, sample, triangle, and field-options types, including robust Delaunay station triangulation for skinny station hulls.
- Added a complete wind showcase guide, six reference pages with inline live examples, documented WebGPU limitations, migration guidance, and public API TSDoc.
- The Wind Map includes original forecast data, three-dimensional mountains, tilt-and-rotate camera controls, and a 1,000-to-1,000,000-particle density slider.
@deck.gl-community/layers
DependencyArrowLayer- NEW directional marker layer for dependency links with path, line, or arc routing.DependencyArrowLayermarker geometry includes native WGSL alongside its existing WebGL2 shader; line, path, and arc routing are supported on both backends.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.TimeDeltaLayernow renders interval guides and headers using portable lines and fast text.
@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.VerticalGridLayeris browser-verified on both graphics backends.
@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 and curved 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.