Skip to main content

Experimental modules

Overview

@luma.gl/experimental publishes usable APIs that are still evolving. These modules let the project validate new GPU architecture, analytics, rendering, and simulation contracts before they are considered for stable packages.

Experimental APIsWebGPU features available

Install matching luma.gl package versions:

yarn add @luma.gl/gpgpu @luma.gl/experimental @luma.gl/core @luma.gl/engine @luma.gl/shadertools

When to use it

Use an experimental module when its current contract fits your application and you can absorb changes between releases. Prefer Core, Engine, Shadertools, or another stable package when they already provide the required capability.

Live example

This explicitly activated example compares A-buffer, weighted-blended, and ordinary alpha blending on the same scene. It demonstrates how an experimental renderer can still compose with stable Engine models and Shadertools passes.

GitHub

Module catalog

GPU data and analytics

ModuleUse it for
@luma.gl/gpgpu/gpu-dataPrimitive GPU chunks, views, vectors, constants, memory formats, and basic layout helpers.
@luma.gl/experimental/gpu-tablesRecord batches, tables, schemas, bindings, computations, and generic table planners.
@luma.gl/experimental/modelsPath and polygon rendering models, GPU input helpers, and model-specific planners.
GPU RasterValidity-aware raster overviews, statistics, filters, morphology, contours, and bounded residency.
LuCIMCuCIM-inspired dense 3D volume thresholding, morphology, connected components, and region measurements.
GPU ProjectAdaptive high-precision coordinate projection on WebGPU.
GPU TraceLarge GPU-resident trace scenes, interaction, aggregation, temporal indexing, comparison, and causal analysis.
GPU DataframeImmutable GPU-resident dataframe expressions, grouping, aggregation, sorting, indexes, and joins.
GPU SQLBounded SQL planning over registered GPU Dataframe inputs.
GPU CrossfilterLinked GPU filtering, histograms, aggregates, and rendering masks.
Geospatial kernelsProjection, distance, point-in-polygon, nearest-feature, and spatial-query operations.

Scene rendering and lighting

ModuleUse it for
SceneRendererRetained physically based forward rendering on WebGPU and WebGL 2.
DeferredSceneRendererG-buffer-based opaque lighting with forward fallbacks for unsupported materials.
PBR environmentsDiffuse irradiance, prefiltered specular cubemaps, and BRDF lookup textures.
GBufferStandard scene color, normal, roughness, velocity, and depth attachments.
Deferred lightingFullscreen lighting from G-buffer material targets.
Clustered lightingCompute-binned local lights for deferred shading.
Shadow mapsCascaded, spot-array, and point cube-array shadows with PCSS filtering.

Materials and transparency

ModuleUse it for
A-buffer rendererAccurate bounded per-pixel fragment storage, sorting, and compositing.
Weighted blended OITPortable approximate order-independent transparency without sorting.
Glass materialScreen-space refraction, Fresnel reflection, dispersion, and absorption.
Reflective materialLightweight glossy environment reflection.
Spectral causticsGeometry-derived multi-wavelength planar caustic lighting.
Comparison splitterAccessible before-and-after canvas comparisons.

Simulation and immersive input

ModuleUse it for
MLS-MPM fluidFixed-capacity two-dimensional particle/grid fluid simulation.
Spectral oceanDeterministic FFT-based ocean displacement and foam.
Volumetric fireGPU-resident volumetric combustion and rendering.
WebXRExperimental WebGPU/WebGL session, frame, and camera helpers.

Core concepts

Experimental modules follow the same ownership model as the rest of luma.gl: callers own the frame loop and command submission unless a reference explicitly says otherwise. GPU scheduling contributors declare work but do not submit it. Renderer and simulation references state which resources they own, borrow, cache, or expose.

Use the shared glossary for resource, ownership, binding, pipeline, pass, submission, data hazard, indirect work, and GPU residency terminology.

Limits and compatibility

Experimental APIs may change or be removed without the compatibility guarantees of stable packages. Many GPU scheduling and simulation modules require WebGPU; individual references state backend, feature, capacity, and memory requirements. Treat benchmark results as workload- and adapter- specific rather than universal performance claims.