[go: up one dir, main page]

Skip to main content

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.

TopicStart here
Getting StartedInstall luma.gl and render your first triangle
Creating GPU ResourcesCreate a device, then work with buffers and textures
Computing on the GPURun GPU computations and schedule GPU graphs
RenderingBuild with the engine or follow the triangle tutorial
Materials and LightingWork with materials and physically based rendering
Writing ShadersCompose and customize shaders
Debugging and PerformanceDebug GPU applications, inspect command graphs, and profile execution
API ReferenceLook 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.