Introduction
luma.gl is a TypeScript toolkit for high-performance GPU rendering and compute on the web. It provides one application-facing API with pluggable WebGPU and WebGL2 backends, plus higher-level building blocks for models, animation, shader composition, and GPU data processing.
Explore the documentation
Follow a topic based on what you want to build. Start with the higher-level APIs and use the package reference when you need a specific class, method, or option.
| Topic | Start here |
|---|---|
| Getting Started | Install luma.gl and render your first triangle |
| Creating GPU Resources | Create a device, then work with buffers and textures |
| Computing on the GPU | Run GPU computations and schedule GPU graphs |
| Rendering | Build with the engine or follow the triangle tutorial |
| Materials and Lighting | Work with materials and physically based rendering |
| Writing Shaders | Compose and customize shaders |
| Debugging and Performance | Debug GPU applications, inspect command graphs, and profile execution |
| API Reference | Look up packages and APIs |
Packages
Start with @luma.gl/core and @luma.gl/engine, then add the modules your application needs.
WebGPU and WebGL2 adapters are included in core and imported through their own entry points.
Browse the packages to explore primary packages, smaller packages, and exploratory modules.
Why luma.gl?
- Low Level Access - luma.gl offers a thin abstraction layer over the underlying graphics API.
- Portable GPU API — write against luma.gl resources and select WebGPU, WebGL2, or both at application startup.
- Composable shaders — package shader functions, typed inputs, hooks, and injections into reusable modules and plugins.
- Visualization-scale data — luma.gl is the rendering foundation for deck.gl and includes dedicated support for GPU tables and Apache Arrow workflows.
A WebGPU-style API
Core follows WebGPU resource and command concepts while supporting a WebGL 2 backend. See Design philosophy for the design goals.
Three Key APIs
1. Core API
The Core API exposes low level GPU resources such as devices, buffers, textures, shaders, bindings, pipelines, and
render or compute passes. @luma.gl/core/webgpu and @luma.gl/core/webgl provide the concrete
backends.
2. Engine API
The Engine API provides Model, AnimationLoop, geometry, scenegraph, dynamic texture,
and GPU transformation helpers. It is the recommended starting point for applications.
3. Shader API
Shaders assembles WGSL and GLSL from reusable shader modules and application-defined hooks. It is used by luma.gl, deck.gl, and custom renderers.
Contributors and credits
See Attributions and Credits for upstream implementation credits, research citations, and example asset notices.
Next steps
Ready for your first Hello Triangle? Proceed to Getting Started.