📄 threejs/Addons/Utils/SceneOptimizer

File: SceneOptimizer.md | Updated: 11/15/2025


title: SceneOptimizer category: Addons layout: docs

SceneOptimizer

This class can be used to optimized scenes by converting individual meshes into BatchedMesh. This component is an experimental attempt to implement auto-batching in three.js.

Import

SceneOptimizer is an addon, and must be imported explicitly, see Installation#Addons.

import { SceneOptimizer } from 'three/addons/utils/SceneOptimizer.js';

Constructor

new SceneOptimizer( scene : Scene, options : SceneOptimizer~Options )

Constructs a new scene optimizer.

scene | The scene to optimize.
---|---
options | The configuration options.

Methods

.disposeMeshes( meshesToRemove : Set.<Mesh> )

Removes the given array of meshes from the scene.

meshesToRemove | The meshes to remove.
---|---

.removeEmptyNodes( object : Object3D )

Removes empty nodes from all descendants of the given 3D object.

object | The 3D object to process.
---|---

.toBatchedMesh() : Scene

Performs the auto-baching by identifying groups of meshes in the scene that can be represented as a single BatchedMesh. The method modifies the scene by adding instances of BatchedMesh and removing the now redundant individual meshes.

Returns: The optimized scene.

.toInstancingMesh() : Scene (abstract)

Performs the auto-instancing by identifying groups of meshes in the scene that can be represented as a single InstancedMesh. The method modifies the scene by adding instances of InstancedMesh and removing the now redundant individual meshes.

This method is not yet implemented.

Returns: The optimized scene.

Type Definitions

.Options

Constructor options of SceneOptimizer.

debug
boolean | Whether to enable debug mode or not. Default is false.
---|---

Source

examples/jsm/utils/SceneOptimizer.js