What's New
v9.4 - In Planning
Scope tracked in the v9.4 milestone.
@deck.gl-community/layers
DependencyArrowLayer- NEW directional marker layer for dependency links with path, line, or arc routing.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.
@deck.gl-community/timeline-layers
TimeAxisLayernow supports adaptive trace-style duration and timestamp grids plus exported tick formatting helpers.
@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.- 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.