Skip to main content

Overview

From v10Experimental API

Apache Arrow utilities for luma.gl.

GitHub
Loading examplePreparing GPU resources…

Arrow Rendering​

These live examples exercise luma.gl's Arrow path, polygon, and text conversion and rendering stack through temporary deck.gl integration layers. They demonstrate progressive RecordBatch streaming, direct columnar inputs, constant and column styling, attribute rendering, and WebGPU storage rendering.

GitHub
Loading examplePreparing GPU resources…

API Reference​

Choose a column representation​

Scalar and fixed-size-list columns can map to vertex attributes. Variable-length lists need a model-specific conversion or storage path. See Supported Arrow types for the support matrix and Arrow conversion for path, color, matrix, and temporal conversion helpers.

GPU Table Interop​

@luma.gl/arrow adapts Apache Arrow objects into primitive @luma.gl/gpgpu/gpu-data objects and higher-level @luma.gl/experimental/gpu-tables objects:

  • makeGPUDataFromArrowData() uploads one Arrow Data chunk into a GPUData.
  • makeGPUVectorFromArrow() uploads one Arrow Vector into a GPUVector.
  • makeGPURecordBatchFromArrowRecordBatch() uploads one Arrow RecordBatch.
  • makeGPUTableFromArrowTable() uploads one Arrow Table while preserving source record batch boundaries.
  • makeGPUAnalyticsTableFromArrowTable() uploads renderer-independent numeric and dictionary columns into existing GPU tables while preserving source batches, validity masks, and category metadata for GPU dataframe execution.
  • makeArrowTableFromGPUAnalyticsTable() explicitly reads a GPU analytical result back into Arrow, reconstructing nullable numeric/dictionary columns and either preserved per-batch selection or explicitly requested global ordering. Combined with LuSQLContext from the separate @luma.gl/experimental/gpu-sql subpath, this provides an Arrow input → GPU dataframe execution → Arrow output workflow without adding Apache Arrow to generic table or SQL packages.
  • makeGPUSplatDataFromArrow() prepares independently owned Gaussian splat batches for @luma.gl/splats, decoding GraphDECO encodings without clamping or quantizing spherical-harmonic DC radiance.
  • makeGPUSplatDataFromArrowStream() progressively prepares Gaussian splat batches without concatenating Arrow tables or rebuilding previously uploaded GPU buffers. Both Gaussian conversion helpers accept structurally compatible Arrow objects from other installed Arrow versions, including those produced by loaders.gl 5 alpha.
  • ArrowInputSchema combines source resolution and conversion with final GPUInputSchema validation for model-specific prepared inputs.

The resulting table schema is GPUSchema, and each vector has a GPUVector.format memory-layout string such as float32x3, unorm8x4, or vertex-list<float32x3>. Arrow DataType metadata may still be retained by adapter/readback paths, but neither @luma.gl/gpgpu nor @luma.gl/experimental depends on apache-arrow.