Skip to main content

GPU data and compute capabilities

This matrix groups the GPU-resident data and analytical capabilities that compose across luma.gl. Return to the capabilities overview for rendering and visualization features.

GPU-native data, compute, and visualization

GPU-resident tables and columnar memory

FeatureStatusBackendPackageDetails
Owned or borrowed GPU chunksExperimentalWebGPU + WebGL2@luma.gl/gpgpu/gpu-dataEach GPUData object owns or borrows exactly one GPU buffer.
Typed GPU vectorsExperimentalWebGPU + WebGL2@luma.gl/gpgpu/gpu-dataGPUVector preserves an ordered list of independent data chunks.
Strided and child viewsExperimentalWebGPU + WebGL2@luma.gl/gpgpu/gpu-dataGPUDataView describes views and struct children without duplicating GPU storage.
GPU record batchesExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesGPURecordBatch groups aligned named columns without erasing batch identity.
Chunk-preserving tablesExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesGPUTable keeps streamed record batches instead of implicitly repacking them.
Constant valuesExperimentalWebGPU + WebGL2@luma.gl/gpgpu/gpu-dataGPUConstant represents scalar or row-level constant inputs.
Explicit vector formatsExperimentalWebGPU + WebGL2@luma.gl/gpgpu/gpu-dataGPUVectorFormat describes stored bytes independently of shader value types.
GPU schemasExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesGPUSchema and input schemas describe column names, formats, and bindings.
Shader binding synthesisExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesTable-aware helpers connect compatible columns to vertex attributes or storage.
Buffer budget planningExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesGPUTableBufferPlanner bounds bindings and respects available device limits.
Explicit packingExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesPacking is an explicit operation, never a hidden side effect of streaming.
Ownership-aware destructionExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesAggregate destruction does not release buffers borrowed from their original owners.
Table-backed renderingExperimentalWebGPU + WebGL2@luma.gl/experimental/gpu-tablesGPUTableModel and table geometry connect columnar data directly to drawing.
Table transform feedbackExperimentalWebGL2@luma.gl/experimental/gpu-tablesApply supported table transforms through WebGL transform feedback.
Table compute dispatchExperimentalWebGPU@luma.gl/experimental/gpu-tablesCompose typed GPU table inputs and outputs through WebGPU compute.

See GPU table structure and lifecycle.

Text and path models

FeatureStatusBackendPackageDetails
Text and glyph atlasesExperimentalWebGPU + WebGL2@luma.gl/textRender bitmap, SDF, or MSDF glyphs with supported Unicode layout, kerning, and clipping.
Dictionary-compressed labelsExperimentalWebGPU@luma.gl/textReuse repeated label values through WebGPU storage-based text strategies.
Animated path visualizationExperimentalWebGPU@luma.gl/experimental/modelsRender GPU-resident trips and variable-length paths through storage-backed models.

Portable data operations

FeatureStatusBackendPackageDetails
Portable data evaluationAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuEvaluate supported expressions against the most appropriate available execution backend.
Lazy vector evaluationAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuBuild deferred vector expressions and resolve them when values are needed.
Arithmetic operationsAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuApply addition, subtraction, multiplication, division, powers, and other supported operations.
Elementary mathAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuEvaluate supported sine, cosine, tangent, exponential, logarithm, and square-root functions.
Extent and vector reductionsAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuCalculate supported extents, dot products, lengths, and equality checks.
Gather and selectionAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuGather indexed values, select elements, and generate index sequences.
Segmented operationsAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuApply supported segmented mappings without losing source-vector structure.
Swizzle and interleaveAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuReorder vector components and combine compatible streams.
Result cachingAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuReuse evaluated values and clean up evaluator-owned temporary resources.
Dynamic backend loadingAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuSelect compatible implementations without requiring every execution adapter up front.
Custom operation handlersAvailableCPU + WebGPU + WebGL2@luma.gl/gpgpuExtend evaluator behavior through explicit backend-specific operation handlers.

See GPU operations and custom evaluation.

GPU dataframe analytics

FeatureStatusBackendPackageDetails
GPU-resident dataframesExperimentalWebGPU@luma.gl/experimental/gpu-dataframeGPUDataFrame wraps typed GPU tables without taking implicit ownership of borrowed source buffers.
Immutable query plansExperimentalWebGPU@luma.gl/experimental/gpu-dataframeBuild reusable filter, projection, aggregation, histogram, and ordering plans without eagerly dispatching GPU work.
Chunk-preserving source tablesExperimentalWebGPU@luma.gl/experimental/gpu-dataframeRetain source record-batch boundaries, row identities, ownership, and compatible dictionary metadata.
Typed column expressionsExperimentalWebGPU@luma.gl/experimental/gpu-dataframeCompose supported numeric, comparison, boolean, literal, and parameter expressions over named columns.
Reusable query parametersExperimentalWebGPU@luma.gl/experimental/gpu-dataframeRe-encode compatible parameterized filters and derived computations without rebuilding the source dataframe.
Null-aware filteringExperimentalWebGPU@luma.gl/experimental/gpu-dataframeApply filter() predicates with explicit validity masks and supported null checks.
Column projectionExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse select() to project ordered source columns without silently copying or repacking their GPU buffers.
Nullable derived columnsExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse withColumn() to evaluate compatible GPU-resident arithmetic while propagating source validity.
Dense grouped aggregationExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse groupBy() with dense unsigned categories and dictionary or explicit cardinality; aggregate compatible floating-point values.
Global dataframe reductionsExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse aggregate() for non-nullable row counts and validity-aware sums, extrema, and means.
Null-aware dataframe histogramsExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse histogram() with compatible numeric columns, explicit domains, irregular edges, and source validity.
Batch-preserving dataframe inner joinsExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse innerJoin() with unique-right unsigned keys, stable source-row identifiers, preserved batches, and explicit bounded overflow.
Source-aligned dataframe lookupsExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse lookup() to publish compatible right-row identifiers and match masks without compacting or repacking left rows.
Stable dataframe sortingExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse sortBy() independently within each source batch with explicit numeric ordering and null/NaN placement.
Per-batch top-K selectionExperimentalWebGPU@luma.gl/experimental/gpu-dataframeUse topK() to retain a bounded number of stably ordered rows per source batch without flattening independent inputs.
Reusable query executionExperimentalWebGPU@luma.gl/experimental/gpu-dataframeCompile compatible dataframe plans into reusable GPU work while preserving explicit command submission.

The @luma.gl/experimental/gpu-dataframe entry point is experimental; its GPU-native operations are implemented, but non-unique, outer, or multi-key joins, temporal windows, and cross-batch global ordering remain opportunities. See the reusable higher-level APIs.

GPU raster and satellite analysis

FeatureStatusBackendPackageDetails
GPU-resident raster bandsExperimentalWebGPU@luma.gl/experimental/gpu-rasterGPURaster describes compatible raster dimensions, bands, metadata, coordinate systems, and ownership.
Application-owned raster tile sourcesExperimentalWebGPU@luma.gl/experimental/gpu-rasterValidate caller-owned raster source, transport, decoding, and submission contracts before optional framework-managed upload and caching.
Source-provided raster overviewsExperimentalWebGPU@luma.gl/experimental/gpu-rasterSelect compatible source windows, source-provided overview levels, coordinate metadata, and cancellable tile requests.
Bounded raster tile residencyExperimentalWebGPU@luma.gl/experimental/gpu-rasterGPURasterTileCache controls independently bounded decoded CPU tiles, uploaded GPU buffers, and compatible compiled graphs.
Deterministic raster tile evictionExperimentalWebGPU@luma.gl/experimental/gpu-rasterReuse cache hits and evict eligible unpinned raster tiles and graphs within explicit byte and entry-count budgets.
Cancellation-safe raster tile requestsExperimentalWebGPU@luma.gl/experimental/gpu-rasterDeduplicate compatible in-flight source requests without canceling other waiting callers.
Fence-protected raster tile leasesExperimentalWebGPU@luma.gl/experimental/gpu-rasterPin raster tiles and reusable graphs until an application-owned post-submission completion fence resolves.
Compiled raster graph reuseExperimentalWebGPU@luma.gl/experimental/gpu-rasterReuse shape-compatible compiled analysis graphs while rebinding the current tile's borrowed GPU buffers.
Seam-safe cross-tile raster halosExperimentalWebGPU@luma.gl/experimental/gpu-rasterAssemble real neighboring samples on the GPU, preserve cumulative receptive fields, and publish each half-open tile core exactly once.
Nodata-aware analytical overviewsExperimentalWebGPU@luma.gl/experimental/gpu-rasterGenerate calibrated, valid-sample-weighted floating means with explicit sums, counts, masks, and odd-edge coverage.
Exact categorical raster overviewsExperimentalWebGPU@luma.gl/experimental/gpu-rasterPreserve native signed and unsigned class identifiers with deterministic nearest or valid-label mode policies.
Dataset-wide tiled raster statisticsExperimentalWebGPU@luma.gl/experimental/gpu-rasterMerge valid tile counts, calibrated sums, and extrema into explicitly initialized GPU-resident global accumulators.
Stable-domain global histogram replayExperimentalWebGPU@luma.gl/experimental/gpu-rasterReplay every owned tile core against the finalized dataset-wide value domain before merging compatible bins.
GPU global percentiles and thresholdsExperimentalWebGPU@luma.gl/experimental/gpu-rasterDerive histogram-estimated global percentiles and consistent Otsu thresholds without downloading raster samples.
Overflow-aware global raster reductionsExperimentalWebGPU@luma.gl/experimental/gpu-rasterSaturate global counts and bins, expose sticky overflow flags, and invalidate unsafe percentile results.
Buffer and texture conversionExperimentalWebGPU@luma.gl/experimental/gpu-rasterConvert supported raster bands between GPU buffers and textures without downloading source pixels.
Calibrated raster band mathExperimentalWebGPU@luma.gl/experimental/gpu-rasterCombine supported numeric bands while applying explicit scale, offset, validity, and nodata contracts.
GPU vegetation indexExperimentalWebGPU@luma.gl/experimental/gpu-rasterCompute normalized-difference vegetation index (NDVI) from compatible red and near-infrared bands.
Nodata-aware raster statisticsExperimentalWebGPU@luma.gl/experimental/gpu-rasterCalculate supported valid-pixel counts, sums, means, extrema, and scalar summaries.
Raster histogramsExperimentalWebGPU@luma.gl/experimental/gpu-rasterDerive valid-pixel distributions with supported explicit or GPU-inferred histogram domains.
Automatic Otsu thresholdsExperimentalWebGPU@luma.gl/experimental/gpu-rasterSelect supported image thresholds from GPU-resident histogram distributions.
Raster threshold classificationExperimentalWebGPU@luma.gl/experimental/gpu-rasterClassify compatible pixel values against explicit thresholds without CPU-side source traversal.
Raster contrast adjustmentExperimentalWebGPU@luma.gl/experimental/gpu-rasterApply supported contrast remapping while preserving raster validity and domain semantics.
Neighborhood convolutionExperimentalWebGPU@luma.gl/experimental/gpu-rasterEvaluate bounded kernels with supported raster borders and nodata-aware neighborhood policies.
Gaussian and box smoothingExperimentalWebGPU@luma.gl/experimental/gpu-rasterSmooth compatible raster bands without implicitly filling invalid neighboring pixels.
Sobel and Scharr gradientsExperimentalWebGPU@luma.gl/experimental/gpu-rasterEvaluate supported directional derivatives and edge responses from GPU-resident raster neighborhoods.
Gradient magnitude and LaplacianExperimentalWebGPU@luma.gl/experimental/gpu-rasterDerive gradient magnitude and compatible second-order edge information from valid raster pixels.
Binary and grayscale morphologyExperimentalWebGPU@luma.gl/experimental/gpu-rasterProcess supported binary masks or grayscale raster bands with explicit structuring elements, borders, and nodata policies.
Raster dilation and erosionExperimentalWebGPU@luma.gl/experimental/gpu-rasterExpand or contract compatible raster features through bounded square or Manhattan-diamond neighborhoods.
Raster opening and closingExperimentalWebGPU@luma.gl/experimental/gpu-rasterCompose supported erosion/dilation sequences to remove small features or close compatible raster gaps.
Deterministic raster connected componentsExperimentalWebGPU@luma.gl/experimental/gpu-rasterAssign sparse minimum-root foreground labels with explicit four/eight-neighbor connectivity while preserving valid background and nodata barriers.
Convergence-gated raster component labelsExperimentalWebGPU@luma.gl/experimental/gpu-rasterPublish GPU convergence and optional actual iteration counts; clear all labels and validity when a bounded graph cannot prove convergence.
Dense raster component identifiersExperimentalWebGPU@luma.gl/experimental/gpu-rasterCompact converged sparse representatives into deterministic contiguous row-major region IDs without losing valid background.
Bounded raster region counts and overflowExperimentalWebGPU@luma.gl/experimental/gpu-rasterPublish exact required and capacity-clamped component populations, invalidate truncated foreground, and expose per-execution overflow.
Masked per-region intensity statisticsExperimentalWebGPU@luma.gl/experimental/gpu-rasterPublish separate exact geometric and valid-intensity populations with calibrated floating sums, minima, maxima, and means.
Region centroids and affine areasExperimentalWebGPU@luma.gl/experimental/gpu-rasterRetain mergeable local pixel moments, preserve double-precision world translation, and report area in square CRS coordinate units.
Marching-squares contoursExperimentalWebGPU@luma.gl/experimental/gpu-rasterClassify bounded raster cells and generate supported vector contour segments directly on the GPU.
Indirect contour overlaysExperimentalWebGPU@luma.gl/experimental/gpu-rasterDraw GPU-generated contour geometry without downloading or rebuilding every segment on the CPU.
Device-aware raster dispatchExperimentalWebGPU@luma.gl/experimental/gpu-rasterPlan bounded dispatch stripes against the selected device's actual compute limits.

Start with the GPURaster concepts and execution guide, read the GPURaster API reference, or experiment with the Satellite Raster Lab.

Applied visualization, geospatial, and interaction

FeatureStatusBackendPackageDetails
Linked crossfilteringExperimentalWebGPU@luma.gl/experimental/gpu-crossfilterMaintain linked scalar ranges and two-dimensional brushes over GPU-resident data.
Self-excluding histogramsExperimentalWebGPU@luma.gl/experimental/gpu-crossfilterRecalculate brush histograms without counting the active dimension against itself.
Stable selected row IDsExperimentalWebGPU@luma.gl/experimental/gpu-crossfilterPreserve row identity for linked charts and renderable selection masks.
High-precision projectionExperimentalWebGPU@luma.gl/experimental/gpu-projectBuild local error-bounded projection patches from compatible CPU projection providers.
Binary64 coordinate transportExperimentalWebGPU@luma.gl/experimental/gpu-projectTransport 64-bit source coordinates as integer words and subtract a local origin.
Web Mercator supportExperimentalWebGPU@luma.gl/experimental/gpu-projectProject supported geospatial coordinates while retaining local precision.
Geographic distanceExperimentalWebGPU@luma.gl/experimental/geospatialEvaluate supported Haversine, point, segment, and linestring distances.
Polygon containmentExperimentalWebGPU@luma.gl/experimental/geospatialTest supported polygon boundary and containment relationships.
Hierarchical trace viewsExperimentalWebGPU@luma.gl/experimental/gpu-traceFilter, project, and render supported process, thread, and dependency hierarchies.
GPU-driven timeline pickingExperimentalWebGPU@luma.gl/experimental/gpu-traceLink trace visibility, indirect timeline draws, and GPU-aware picking.
Chunk-aware trace dependenciesExperimentalWebGPU@luma.gl/experimental/gpu-traceRoute visible dependency endpoints across supported independent source-span batches.
Bounded dataset residencyExperimentalWebGPUApplication-owned exampleStream large source corpora with an application-managed bounded GPU-resident working set.
Portable path and polygon modelsExperimentalWebGPU + WebGL2@luma.gl/experimental/modelsRender table-backed paths and polygons using compatible attribute-driven strategies.
Storage-backed path modelsExperimentalWebGPU@luma.gl/experimental/modelsProcess compatible path, polygon, and trip columns directly through storage buffers.

Try Million-Row Crossfilter, Billion-Point Spatial Atlas, GPU data analysis, and GPU sorting. Billion-scale figures describe source corpora; the GPU-resident working set remains bounded.