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 "Abstract" Device API (implemented by both the webgpu and webgl modules). |
@luma.gl/webgl | Required * | Device adapter implemented using the WebGL API. Enables creation of WebGL resources. |
@luma.gl/webgpu | Required * | 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/effects | Optional | Composable post-processing effects, screen-space lighting, and reusable shader-pass pipelines. |
@luma.gl/gpgpu | Optional | Portable GPU data evaluation, vector operations, and backend-aware compute workflows. |
@luma.gl/tables | Optional | GPU-resident table primitives, batching, table-backed rendering, and table-oriented compute. |
@luma.gl/arrow | Experimental / Private | Apache Arrow adapters for GPU layouts and GPU table objects from Arrow data. |
@luma.gl/text | Experimental / Private | 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 | Experimental v10 APIs, including WebGPU/WebGL WebXR and WebGL raw camera helpers. |
@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. |
* At least one backend, either WebGL or WebGPU, must be installed to enable GPU resource creation.
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/effectsfor reusable image processing, bloom, and supported screen-space effects.@luma.gl/gpgpufor portable GPU data evaluation and vector-oriented computation.@luma.gl/tablesforGPUData,GPUVector,GPURecordBatch, andGPUTable.@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 v10 work-in-progress 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/webgland@luma.gl/webgpufor backend adapters used by@luma.gl/core.@luma.gl/webgl/constantswhen you need raw numeric WebGL enums.