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.
| Module | Usage | Description |
|---|---|---|
@luma.gl/core | Required | The portable Device API, shader types, and WebGPU and WebGL2 implementations. |
@luma.gl/core/webgl | Core subpath | Device adapter implemented using the WebGL API. Enables creation of WebGL resources. |
@luma.gl/core/webgpu | Core subpath | Device adapter implemented using the WebGPU API. Enables creation of WebGPU resources. |
@luma.gl/engine | Recommended | A set of WebGPU/WebGL independent core 3D engine style classes built on top of @luma.gl/core. |
@luma.gl/anari | Experimental / Private | ANARI-inspired retained scene objects, instanced rendering, lights, materials, and HDR. |
@luma.gl/shadertools | Recommended | Reusable shader modules, portable shader assembly, and application-defined shader hooks. |
@luma.gl/slang | Experimental (v10) | Optional TypeScript transpilation of a documented Slang shader subset to GLSL and WGSL. |
@luma.gl/effects | Optional | Composable post-processing effects, screen-space lighting, and reusable shader-pass pipelines. |
@luma.gl/gpgpu | Optional | Portable GPU evaluation plus experimental gpu-data, gpu-core, and gpu-graph subpaths. |
@luma.gl/arrow | Experimental / Private | Apache Arrow adapters for GPU layouts and GPU table objects from Arrow data. |
@luma.gl/text | Experimental | TextRenderer facade and caller-owned GPU text data. |
@luma.gl/splats | Experimental / Private | Gaussian splat rendering and caller-owned prepared GPU splat data. |
@luma.gl/experimental | Experimental / Private | Incubating APIs, including gpu-tables, rendering models, WebXR, and GPU analytics. |
@luma.gl/gltf | Optional | Standards-first glTF assets, physical materials, character animation, and lossless interchange. |
@luma.gl/test-utils | Optional | Test setups, in particular support for rendering and comparing images. |
Select at least one adapter from the core backend subpaths when creating a device.
Start Here
@luma.gl/engineforModel,AnimationLoop, scenegraph helpers, and compute-oriented utilities.@luma.gl/anarifor experimental, private ANARI-inspired declarative scenes, retained rendering, and instancing.@luma.gl/coreforDevice, buffers, textures, shaders, render passes, andRenderPipeline.@luma.gl/shadertoolsfor shader modules and shader assembly.@luma.gl/slangfor experimental Slang shader authoring on WebGL 2 and WebGPU, available from v10.@luma.gl/effectsfor reusable image processing, bloom, and supported screen-space effects.@luma.gl/gpgpufor portable GPU evaluation, plus its experimentalgpu-data,gpu-core, andgpu-graphsubpaths.- GPGPU data for primitive
GPUData/GPUVectorAPIs, and Experimental GPU Tables for privateGPURecordBatch/GPUTableAPIs. @luma.gl/textforTextRendererand GPU text data; use@luma.gl/arrowfor Arrow conversion.@luma.gl/splatsfor experimental Gaussian splat rendering and caller-owned prepared GPU data.@luma.gl/experimentalfor incubating v10 APIs, including experimental WebXR frame, view, and raw camera helpers.@luma.gl/gltffor standards-first glTF assets, physical materials, character animation, native extensions, and source-faithful.gltf/.glbinterchange.@luma.gl/core/webgland@luma.gl/core/webgpufor backend adapters used by@luma.gl/core.@luma.gl/core/webgl-constantswhen you need raw numeric WebGL enums.