# @luma.gl/gltf

> Standards-first glTF rendering, physical materials, animation, and lossless asset interchange

Latest version **9.4.1** (published 2026-09-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install @luma.gl/gltf
pnpm add @luma.gl/gltf
yarn add @luma.gl/gltf
bun add @luma.gl/gltf
```

## Health

**Score 55/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 9.4.1 |
| Published | 2026-09-11 |
| First published | 2023-11-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2474 |
| Maintainers | pessimistress, ibgreen, felixpalmer, belom88, donmccurdy, kaapp, chrisgervang |
| Keywords | gltf, glb, webgpu, webgl, pbr, animation, 3d |

## Links

- npm: https://www.npmjs.com/package/@luma.gl/gltf
- Repository: https://github.com/visgl/luma.gl
- Homepage: https://github.com/visgl/luma.gl#readme
- Issues: https://github.com/visgl/luma.gl/issues
- npm.io page: https://npm.io/package/@luma.gl/gltf

## Alternatives

- [@luma.gl/experimental](https://npm.io/package/@luma.gl/experimental.md) — 77.1K weekly downloads
- [persona-harness](https://npm.io/package/persona-harness.md) — 4.7K weekly downloads
- [@tsparticles/effect-bubble](https://npm.io/package/@tsparticles/effect-bubble.md) — 4.6K weekly downloads
- [f3d](https://npm.io/package/f3d.md) — 730 weekly downloads
- [spark-html-motion](https://npm.io/package/spark-html-motion.md) — 298 weekly downloads

## Recent versions

- 9.4.1 (latest) — 2026-09-11
- 10.0.0-alpha.1 (beta) — 2026-09-17
- 9.1.10 (v9.1-latest) — 2025-09-26
- 9.1.0-beta.16 (v9.1-beta) — 2025-01-09
- 9.4.0 — 2026-09-05
- 9.4.0-beta.7 — 2026-09-03
- 9.4.0-beta.6 — 2026-09-02
- 9.4.0-beta.5 — 2026-09-02
- 9.4.0-beta.4 — 2026-08-30
- 9.4.0-beta.3 — 2026-08-24
- 9.4.0-beta.2 — 2026-08-21
- 9.4.0-beta.1 — 2026-08-21
- 9.4.0-alpha.4 — 2026-08-03
- 9.4.0-alpha.3 — 2026-08-02
- 9.4.0-alpha.2 — 2026-07-31
- … 105 more at https://npm.io/package/@luma.gl/gltf/versions

## README

<a href="https://www.khronos.org/gltf/">
  <img
    src="https://raw.githubusercontent.com/visgl/luma.gl/master/website/static/img/standards/gltf.svg"
    alt="glTF"
    width="180"
  />
</a>

# @luma.gl/gltf

Standards-first glTF assets with physically based materials, animated skeletons, morph deformation,
native animation pointers, and source-faithful `.gltf` / `.glb` interchange on WebGPU and WebGL.

```ts
import {load} from '@loaders.gl/core';
import {GLTFLoader, postProcessGLTF} from '@loaders.gl/gltf';
import {createScenegraphsFromGLTF, exportGLTF} from '@luma.gl/gltf';

const asset = await load('/models/model.glb', GLTFLoader);
const gltf = postProcessGLTF(asset);

const {scenes, animator, lights, modelBounds} = createScenegraphsFromGLTF(device, gltf, {
  useTangents: true,
  useByteColors: false
});

animator.setTime(performance.now());

const exportScene = {name: 'Exported scene', nodes: [{name: 'Root'}]};
const gltfDocument = exportGLTF(exportScene);
const binaryAsset = exportGLTF(exportScene, {binary: true});
```

The module preserves all 21 supported core/PBR-extension texture slots, sampler filters and
mipmaps, independent UV transforms and `TEXCOORD_1`, authored punctual lights, node transforms,
material/texture animation pointers, skin attributes, and animated morph targets. Generic
`exportGLTF()` descriptors also preserve hierarchy, skins, inverse bind matrices, morph targets,
animation clips, variants, GPU instancing, cameras, lights, and source-faithful accessors.

`@loaders.gl/gltf` owns `.gltf` / `.glb` parsing, linked buffers and images, Draco and
`EXT_meshopt_compression` decoding, Basis/KTX2 and supported WebP texture selection, typed
accessor postprocessing, feature/structural metadata decoding, and GLB container encoding.
`KHR_meshopt_compression` and automatic `EXT_texture_avif` source selection are not implemented
by the installed loader. Generic animation, scenegraph, and morph primitives remain in
`@luma.gl/engine`; shared PBR, lighting, and skinning shaders remain in `@luma.gl/shadertools`.

- [glTF API overview](https://luma.gl/docs/api-reference/gltf)
- [Materials, textures, and lighting](https://luma.gl/docs/api-reference/gltf/gltf-materials)
- [Animation and deformation](https://luma.gl/docs/api-reference/gltf/gltf-animation)
- [Asset interchange and GLB export](https://luma.gl/docs/api-reference/gltf/gltf-interchange)
- [glTF extension support](https://luma.gl/docs/api-reference/gltf/gltf-extensions)

---
_Source: https://npm.io/package/@luma.gl/gltf · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
