Atlaslog
Atlaslog / deck.gl / API / ScenegraphLayer
deck.gl · API reference

ScenegraphLayer

Quick answer

The ScenegraphLayer renders a number of instances of a complete glTF scenegraph.

Last verified 2026-11-03 · deck.gl 9.0 · Cite this page
Runnable examplesChinese noteAll API topics

The ScenegraphLayer renders a number of instances of a complete glTF scenegraph.

import {Deck} from '@deck.gl/core';
import {ScenegraphLayer} from '@deck.gl/mesh-layers';

const layer = new ScenegraphLayer({
id: 'ScenegraphLayer',
data: 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/bart-stations.json',

getPosition: d => d.coordinates,
getOrientation: d => [0, Math.random() * 180, 90],
scenegraph: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/BoxAnimated/glTF-Binary/BoxAnimated.glb',
sizeScale: 500,
_animations: {
'*': {speed: 5}
},
_lighting: 'pbr',
pickable: true
});

new Deck({
initialViewState: {
longitude: -122.4,
latitude: 37.74,
zoom: 11
},
controller: true,
getTooltip: ({object}) => object && object.name,
layers: [layer]
});

Installation​

To install the dependencies from NPM:

npm install deck.gl
# or
npm install @deck.gl/core @deck.gl/mesh-layers
import {ScenegraphLayer} from '@deck.gl/mesh-layers';
import type {ScenegraphLayerProps} from '@deck.gl/mesh-layers';

new ScenegraphLayer<DataT>(...props: ScenegraphLayerProps<DataT>[]);

To use pre-bundled scripts:

<script src="https://unpkg.com/deck.gl@^9.0.0/dist.min.js"></script>
<!-- or -->
<script src="https://unpkg.com/@deck.gl/core@^9.0.0/dist.min.js"></script>
<script src="https://unpkg.com/@deck.gl/mesh-layers@^9.0.0/dist.min.js"></script>
new deck.ScenegraphLayer({});

Properties​

Inherits from all Base Layer properties.

Mesh​

scenegraph (string | object | Promise)​

The geometry to render for each data object. Can be a URL of an object. You need to provide the fetch function to load the object. Can also be a luma.gl ScenegraphNode, or a Promise that resolves to one. The layer calls delete() on scenegraph when a new one is provided or the layer is finalized.

loadOptions (object, optional)​

On top of the default options, also accepts options for the following loaders:

Render Options​

sizeScale (number, optional) ​

Multiplier to scale each geometry by.

_animations (object, optional)​

An object used to configure animations playing. keys can be one of the following:

getScene (Function, optional)​

If you have multiple scenes you can select the scene you want to use. Only triggers when scenegraph property changes.

getAnimator (Function, optional)​

Return null to disable animation or provide your custom animator. Only triggers when scenegraph property changes.

_lighting (string, optional)​

Experimental lighting support, can be:

Only read when scenegraph property changes. Uses global light configuration from deck.

_imageBasedLightingEnvironment (Function | GLTFEnvironment, optional)​

Experimental Can be:

Only read when scenegraph property changes.

Data Accessors​

getPosition (Accessor<Position>, optional) ​

Method called to retrieve the center position for each object in the data stream.

getColor (Accessor<Color>, optional) ​

The rgba color is in the format of [r, g, b, [a]]. Each channel is a number between 0-255 and a is 255 if not supplied. Only used if texture is empty.

getOrientation (Accessor<number[3]>, optional)​

Object orientation defined as a vec3 of Euler angles, [pitch, yaw, roll] in degrees. This will be composed with layer's modelMatrix.

getScale (Accessor<number[3]>, optional)​

Scaling factor on the mesh along each axis.

getTranslation (Accessor<number[3]>, optional)​

Translation of the mesh along each axis. Offset from the center position given by getPosition. [x, y, z] in meters.

getTransformMatrix (Accessor<number[16]>, optional)​

Explicitly define a 4x4 column-major model matrix for the mesh. If provided, will override getOrientation, getScale, getTranslation. This will be composed with layer's modelMatrix.

sizeMinPixels (number, optional)​

The minimum size in pixels for one unit of the scene.

sizeMaxPixels (number, optional)​

The maximum size in pixels for one unit of the scene.

Source​

modules/mesh-layers/src/scenegraph-layer

TutorialsAPI index
English reference text adapted from the official deck.gl documentation, © vis.gl contributors, licensed under MIT.
Original page: https://deck.gl/docs/api-reference/mesh-layers/scenegraph-layer · Chinese note: /deckgl/api/scenegraph-layer.html
Cite this page

Atlaslog (2026). ScenegraphLayer. https://www.jingweizhi.com/en/deckgl/api/scenegraph-layer.html (accessed 2026-11-03).