Skip to main content

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.gl 9.4.0-alpha.2, and luma.gl 9.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.
  • PathOutlineLayer and PathMarkerLayer: use the upstream dual-backend PathLayer and add a local WGSL dash plugin until PathStyleExtension gains 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-backend LineLayer dividers 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.
  • WindLayer and DelaunayCoverLayer: 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 require float32-filterable.
  • RoundedRectangleLayer, PathEdgeLayer, and EdgeArrowLayer: 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, and TraceProcessLayer: 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 LineLayer segments.
  • GlobalGridLayer, TileGridLayer borders, 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 DeviceTabsWidget from 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.
  • ParticleLayer advances 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.
  • WindLayer renders interpolated, speed-colored wind arrows; ElevationLayer restores smooth, vertically exaggerated image-based mountain terrain.
  • DelaunayCoverLayer exposes the weather-station mesh, while DelaunayInterpolation provides backend-independent explicit weather sampling and rasterization.
  • WindLayer arrows and DelaunayCoverLayer station 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.
  • DependencyArrowLayer marker geometry includes native WGSL alongside its existing WebGL2 shader; line, path, and arc routing are supported on both backends.
  • 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.
  • BlockLayer now provides paired WebGPU WGSL and WebGL2 GLSL shaders for instanced fills, outlines, projection, and picking.
  • FastTextLayer now 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.
  • TimeDeltaLayer now renders interval guides and headers using portable lines and fast text.

@deck.gl-community/timeline-layers

  • TimeAxisLayer now supports adaptive trace-style duration and timestamp grids plus exported tick formatting helpers.
  • HorizonGraphLayer and MultiHorizonGraphLayer can render their floating-point data textures on WebGPU and WebGL2; stacked horizon dividers now use the upstream dual-backend LineLayer.
  • VerticalGridLayer is 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, 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.
  • 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/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.