Skip to main content

Overview

luma.gl combines published, composable npm modules with private experimental packages under active development. Applications can choose the rendering, compute, and visualization functionality they need while checking the maturity of each package.

Use the API reference when you want the class-by-class reference pages for a specific module. If you are looking for conceptual guides or an introduction to how the pieces fit together, start in the API Guide and then come back here for the detailed type and method docs.

If you are looking for Model, start with @luma.gl/engine. The Model class lives in the engine module and is one of the main entry points for rendering in luma.gl.

ModuleUsageDescription
@luma.gl/coreRequiredThe "Abstract" Device API (implemented by both the webgpu and webgl modules).
@luma.gl/webglRequired *Device adapter implemented using the WebGL API. Enables creation of WebGL resources.
@luma.gl/webgpuRequired *Device adapter implemented using the WebGPU API. Enables creation of WebGPU resources.
@luma.gl/engineRecommendedA set of WebGPU/WebGL independent core 3D engine style classes built on top of @luma.gl/core.
@luma.gl/anariExperimental / PrivateANARI-inspired retained scene objects, instanced rendering, lights, materials, and HDR.
@luma.gl/shadertoolsRecommendedReusable shader modules, portable shader assembly, and application-defined shader hooks.
@luma.gl/effectsOptionalComposable post-processing effects, screen-space lighting, and reusable shader-pass pipelines.
@luma.gl/gpgpuOptionalPortable GPU data evaluation, vector operations, and backend-aware compute workflows.
@luma.gl/tablesOptionalGPU-resident table primitives, batching, table-backed rendering, and table-oriented compute.
@luma.gl/arrowExperimental / PrivateApache Arrow adapters for GPU layouts and GPU table objects from Arrow data.
@luma.gl/textExperimental / PrivateTextRenderer facade and caller-owned GPU text data.
@luma.gl/splatsExperimental / PrivateGaussian splat rendering and caller-owned prepared GPU splat data.
@luma.gl/experimentalExperimental / PrivateExperimental v10 APIs, including WebGPU/WebGL WebXR and WebGL raw camera helpers.
@luma.gl/gltfOptionalStandards-first glTF assets, physical materials, character animation, and lossless interchange.
@luma.gl/test-utilsOptionalTest setups, in particular support for rendering and comparing images.

* At least one backend, either WebGL or WebGPU, must be installed to enable GPU resource creation.

Start Here

  • @luma.gl/engine for Model, AnimationLoop, scenegraph helpers, and compute-oriented utilities.
  • @luma.gl/anari for experimental, private ANARI-inspired declarative scenes, retained rendering, and instancing.
  • @luma.gl/core for Device, buffers, textures, shaders, render passes, and RenderPipeline.
  • @luma.gl/shadertools for shader modules and shader assembly.
  • @luma.gl/effects for reusable image processing, bloom, and supported screen-space effects.
  • @luma.gl/gpgpu for portable GPU data evaluation and vector-oriented computation.
  • @luma.gl/tables for GPUData, GPUVector, GPURecordBatch, and GPUTable.
  • @luma.gl/text for TextRenderer and GPU text data; use @luma.gl/arrow for Arrow conversion.
  • @luma.gl/splats for experimental Gaussian splat rendering and caller-owned prepared GPU data.
  • @luma.gl/experimental for v10 work-in-progress APIs, including experimental WebXR frame, view, and raw camera helpers.
  • @luma.gl/gltf for standards-first glTF assets, physical materials, character animation, native extensions, and source-faithful .gltf/.glb interchange.
  • @luma.gl/webgl and @luma.gl/webgpu for backend adapters used by @luma.gl/core.
  • @luma.gl/webgl/constants when you need raw numeric WebGL enums.