Skip to main content

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.
  • PathOutlineLayer and PathMarkerLayer now 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

  • TimeAxisLayer now 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, and react package subpaths.
  • TraceEngine now owns mounted trace selection, collapse, layout, prepared scene, and diagnostics state below React; DeckTraceGraph renders an engine instead of receiving the full controlled trace-view state directly.
  • TraceChunkStore now exposes source-owned graph-data materialization and retained-state diagnostics for incremental windows, while TraceStoreLayer composes 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-layers APIs 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/panels definitions in React and MDX trees.

@deck.gl-community/widgets

  • PanelWidget - NEW generic deck adapter for any panel-owned PanelComponent.
  • Thin named adapters now cover real panel containers plus specialized toolbar and toast components without duplicating panel rendering logic.
  • OmniBoxWidget now accepts renderResultsSummary for rendering a compact caller-provided summary above dropdown results.
  • OmniBoxWidget now accepts shared command manager search prefixes for command-mode Tracevis integrations.
  • ModalPanelWidget inherits floating, draggable, custom-styled modal support from ModalPanelContainer.
  • createStudioSettingsWidget and updateStudioSettingsWidget now 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 plain HTMLElement

  • PanelComponent - NEW root lifecycle for mountable panel-owned UI.

  • Panel now inherits the shared PanelComponent lifecycle, 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 direct panel inputs.

  • ModalPanelContainer now 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.

  • SettingsPanel now renders multi-select descriptors through the shared searchable panel selector.

  • SettingsPanel numeric range inputs can apply descriptor-level trailing debounce via sliderDebounceMs.

  • SettingsPanel and StudioSettingsPanel select menus can render option descriptions and grow to fit long labels; StudioSettingsPanel also accepts settingRowLayout: 'fit-labels' when controls should claim width from short labels.

  • ModalPanelContainer and SidebarPanelContainer trigger 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 tiled CompositeLayer that can share one SharedTileset2D across 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 SharedTile2DLayer example showing one shared auto-tiled GeoJSON TableTileSource and one shared SharedTileset2D feeding multiple styled comparisons plus a minimap.
No React example UI initiative

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/react accepts 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.

Examples:

@deck.gl-community/basemap-layers (NEW module)

A new experimental basemap module for rendering style-defined basemaps directly with deck.gl.

  • BasemapLayer - NEW CompositeLayer that 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 (getBranchLevels 1–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 jest to vitest.
  • editable-layers now uses turf.js 7 and official GeoJSON types.
  • New @deck.gl-community/widgets module with experimental deck.gl UI widgets.
  • New @deck.gl-community/timeline-layers module for time-series visualization.

@deck.gl-community/widgets (NEW module)

A new module containing experimental widgets for deck.gl:

  • ZoomRangeWidget - NEW deck.gl Widget providing a zoom slider.
  • PanWidget - NEW deck.gl Widget providing 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):

@deck.gl-community/editable-layers

  • DrawPolygonMode: Added allowHoles configuration 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).
  • DeleteMode is now exported from the top-level edit-modes entry point.
  • Fixed: rectangle corners can no longer be accidentally removed when lockRectangles is set.
  • Fixed: three-click polygon mode no longer misprocesses guide vertices.

Breaking Changes:

  • DrawPolygonMode: preventOverlappingLines configuration renamed to allowSelfIntersection (with inverted logic).
    • Migration: {preventOverlappingLines: false}{allowSelfIntersection: true}
    • Migration: {preventOverlappingLines: true}{allowSelfIntersection: false} (or omit — this is now the default)

@deck.gl-community/leaflet

  • DeckLayer has been renamed to DeckOverlay for consistency with the deck.gl ecosystem.
    • Migration: replace all DeckLayer imports and usages with DeckOverlay.

@deck.gl-community/graph-layers

  • GraphLayer
    • GraphLayerProps.dataGraphLayer now accepts GraphEngine, Graph, or raw JSON via the new data prop (including async URLs).

Graph Loaders:

  • A common GraphData schema is defined and returned by all graph loaders.
  • JSONGraphLoader normalizes 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 of NODE_TYPE.CIRCLE).

Graph Layouts:

  • D3DagLayout — NEW GraphLayout for DAGs (Directed Acyclic Graphs) with layering and collapse/expand support.

  • RadialLayout — NEW GraphLayout for radial graph layouts.

  • HivePlotLayout — NEW GraphLayout for hive plot graph layouts.

  • D3MultiGraphLayout — NEW GraphLayout for multi-edge graph layouts.

  • Graph events are now handled via callback props rather than EventTarget.

  • GraphViewer example 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 pluggable GlobalGrid decoder.
  • 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 the GlobalGridLayer

@deck.gl-community/timeline-layers (New module)

@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.