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.
Module catalog
GPU data and analytics
| Module | Use it for |
|---|---|
@luma.gl/gpgpu/gpu-data | Primitive GPU chunks, views, vectors, constants, memory formats, and basic layout helpers. |
@luma.gl/experimental/gpu-tables | Record batches, tables, schemas, bindings, computations, and generic table planners. |
@luma.gl/experimental/models | Path and polygon rendering models, GPU input helpers, and model-specific planners. |
| GPU Raster | Validity-aware raster overviews, statistics, filters, morphology, contours, and bounded residency. |
| LuCIM | CuCIM-inspired dense 3D volume thresholding, morphology, connected components, and region measurements. |
| GPU Project | Adaptive high-precision coordinate projection on WebGPU. |
| GPU Trace | Large GPU-resident trace scenes, interaction, aggregation, temporal indexing, comparison, and causal analysis. |
| GPU Dataframe | Immutable GPU-resident dataframe expressions, grouping, aggregation, sorting, indexes, and joins. |
| GPU SQL | Bounded SQL planning over registered GPU Dataframe inputs. |
| GPU Crossfilter | Linked GPU filtering, histograms, aggregates, and rendering masks. |
| Geospatial kernels | Projection, distance, point-in-polygon, nearest-feature, and spatial-query operations. |
Scene rendering and lighting
| Module | Use it for |
|---|---|
| SceneRenderer | Retained physically based forward rendering on WebGPU and WebGL 2. |
| DeferredSceneRenderer | G-buffer-based opaque lighting with forward fallbacks for unsupported materials. |
| PBR environments | Diffuse irradiance, prefiltered specular cubemaps, and BRDF lookup textures. |
| GBuffer | Standard scene color, normal, roughness, velocity, and depth attachments. |
| Deferred lighting | Fullscreen lighting from G-buffer material targets. |
| Clustered lighting | Compute-binned local lights for deferred shading. |
| Shadow maps | Cascaded, spot-array, and point cube-array shadows with PCSS filtering. |
Materials and transparency
| Module | Use it for |
|---|---|
| A-buffer renderer | Accurate bounded per-pixel fragment storage, sorting, and compositing. |
| Weighted blended OIT | Portable approximate order-independent transparency without sorting. |
| Glass material | Screen-space refraction, Fresnel reflection, dispersion, and absorption. |
| Reflective material | Lightweight glossy environment reflection. |
| Spectral caustics | Geometry-derived multi-wavelength planar caustic lighting. |
| Comparison splitter | Accessible before-and-after canvas comparisons. |
Simulation and immersive input
| Module | Use it for |
|---|---|
| MLS-MPM fluid | Fixed-capacity two-dimensional particle/grid fluid simulation. |
| Spectral ocean | Deterministic FFT-based ocean displacement and foam. |
| Volumetric fire | GPU-resident volumetric combustion and rendering. |
| WebXR | Experimental 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.