# 3d-tiles-renderer v0.5.3

Enables streaming and rendering of massive 3D datasets with adaptive level-of-detail for architecture and geospatial applications worldwide.

Source: https://github.com/NASA-AMMOS/3DTilesRendererJS

```bash
npm install 3d-tiles-renderer
```

## 3d-tiles-renderer/babylonjs

### Classes

- [B3DMLoader](/tools/docs/3d-tiles-renderer/babylonjs/B3DMLoader.md): Babylon.js loader for B3DM (Batched 3D Model) tile content. Parses the B3DM binary structure and delegates embedded GLB loading to GLTFLoader.
- [GLTFLoader](/tools/docs/3d-tiles-renderer/babylonjs/GLTFLoader.md): Babylon.js loader for GLTF and GLB tile content. Loads a buffer into a Babylon.js scene and applies an optional adjustment transform for coordinate-system correction.
- [TilesRenderer](/tools/docs/3d-tiles-renderer/babylonjs/TilesRenderer.md): Babylon.js implementation of the 3D Tiles renderer. Manages tile loading, caching, traversal, and scene management using the Babylon.js scene graph and camera APIs. Dispatches all events defined by TilesRendererBase via Babylon.js Observables.

## 3d-tiles-renderer/core

### Classes

- [B3DMLoaderBase](/tools/docs/3d-tiles-renderer/core/B3DMLoaderBase.md): Base loader for the B3DM (Batched 3D Model) tile format. Parses the B3DM binary structure and extracts the embedded GLB bytes along with batch and feature tables. Extend this class to integrate B3DM loading into a specific rendering engine.
- [BatchTable](/tools/docs/3d-tiles-renderer/core/BatchTable.md): Extends FeatureTable to provide indexed access to per-feature batch properties, as found in B3DM and PNTS tiles.
- [CMPTLoaderBase](/tools/docs/3d-tiles-renderer/core/CMPTLoaderBase.md): Base loader for the CMPT (Composite) tile format. Parses the CMPT binary structure and returns the individual inner tile buffers with their format types. Extend this class to integrate CMPT loading into a specific rendering engine.
- [DownloadPriorityQueue](/tools/docs/3d-tiles-renderer/core/DownloadPriorityQueue.md): Manages a lazily created PriorityQueue per server origin so the requests to every server are prioritized and limited independently, and a slow or saturated server can never delay the requests made to others. The items added without a url are managed as their own group.
- [FeatureTable](/tools/docs/3d-tiles-renderer/core/FeatureTable.md): Parses a 3D Tiles feature table from a binary buffer, providing access to per-feature properties stored as JSON scalars or typed binary arrays.
- [I3DMLoaderBase](/tools/docs/3d-tiles-renderer/core/I3DMLoaderBase.md): Base loader for the I3DM (Instanced 3D Model) tile format. Parses the I3DM binary structure and extracts the embedded GLB bytes (or fetches an external GLTF) along with batch and feature tables. Extend this class to integrate I3DM loading into a specific rendering engine.
- [LoaderBase](/tools/docs/3d-tiles-renderer/core/LoaderBase.md): Base class for all 3D Tiles content loaders. Handles fetching and parsing tile content.
- [LRUCache](/tools/docs/3d-tiles-renderer/core/LRUCache.md): Least-recently-used cache for managing tile content lifecycle. Tracks which items are in use each frame and evicts unused items when the cache exceeds its size limits.
- [PNTSLoaderBase](/tools/docs/3d-tiles-renderer/core/PNTSLoaderBase.md): Base loader for the PNTS (Point Cloud) tile format. Parses the PNTS binary structure and extracts the feature and batch tables containing point positions, colors, and normals. Extend this class to integrate PNTS loading into a specific rendering engine.
- [PriorityQueue](/tools/docs/3d-tiles-renderer/core/PriorityQueue.md): Priority queue for scheduling async work with a concurrency limit. Items are sorted by `priorityCallback` and dispatched up to `maxJobs` at a time.
- [Scheduler](/tools/docs/3d-tiles-renderer/core/Scheduler.md): Class used within TilesRenderer for scheduling requestAnimationFrame events and toggling between XRSession rAF and window rAF toggles.
- [TilesRendererBase](/tools/docs/3d-tiles-renderer/core/TilesRendererBase.md): Base class for 3D Tiles renderers. Manages tile loading, caching, traversal, and a plugin system for extending rendering behavior. Engine-specific renderers extend this class to add camera projection, scene management, and tile display.

### Functions

- [getUrlExtension](/tools/docs/3d-tiles-renderer/core/functions.md): Returns the file extension of the path component of a URL

### Constants

- [FAILED](/tools/docs/3d-tiles-renderer/core/constants.md): Tile content failed to load. Sorted first for eviction by the LRU cache.
- [LOADED](/tools/docs/3d-tiles-renderer/core/constants.md): Tile content has been parsed and is ready to display.
- [LOADING](/tools/docs/3d-tiles-renderer/core/constants.md): Tile content is currently downloading.
- [PARSING](/tools/docs/3d-tiles-renderer/core/constants.md): Tile content has been downloaded and is being parsed.
- [QUEUED](/tools/docs/3d-tiles-renderer/core/constants.md): Tile content is queued for download.
- [UNLOADED](/tools/docs/3d-tiles-renderer/core/constants.md): Tile content has not been requested.
- [WGS84_FLATTENING](/tools/docs/3d-tiles-renderer/core/constants.md): WGS84 ellipsoid flattening factor. See `ellipsoid flattening`.
- [WGS84_HEIGHT](/tools/docs/3d-tiles-renderer/core/constants.md): WGS84 ellipsoid height offset (difference between equatorial and polar radii) in meters.
- [WGS84_RADIUS](/tools/docs/3d-tiles-renderer/core/constants.md): WGS84 ellipsoid semi-major axis radius in meters. See the `WGS84 specification`.

### Types

- [Tile](/tools/docs/3d-tiles-renderer/core/Tile.md): A 3D Tiles tile with both spec fields (from tileset JSON) and renderer-managed state.
- [TileInternalData](/tools/docs/3d-tiles-renderer/core/TileInternalData.md): Internal renderer state added to each tile during preprocessing.
- [Tileset](/tools/docs/3d-tiles-renderer/core/Tileset.md): A loaded 3D Tiles tileset JSON object.
- [TileTraversalData](/tools/docs/3d-tiles-renderer/core/TileTraversalData.md): Per-frame traversal state updated on each tile during `TilesRendererBase.update`.

## 3d-tiles-renderer/core/plugins

### Classes

- [CesiumIonAuth](/tools/docs/3d-tiles-renderer/core/plugins/CesiumIonAuth.md): Authentication helper for Cesium Ion. Fetches and caches a bearer token from the Cesium Ion endpoint and injects it into outgoing requests. Supports optional automatic token refresh on 4xx responses.
- [CesiumIonAuthPlugin](/tools/docs/3d-tiles-renderer/core/plugins/CesiumIonAuthPlugin.md): Plugin for authenticating requests to Cesium Ion. Handles token refresh, asset endpoint resolution, and attribution collection. Automatically registers a GoogleCloudAuthPlugin when the resolved asset is an external Google photorealistic tileset.
- [EnforceNonZeroErrorPlugin](/tools/docs/3d-tiles-renderer/core/plugins/EnforceNonZeroErrorPlugin.md): Plugin that ensures every tile has a non-zero geometric error. Tiles with a geometric error of zero are assigned a derived value based on the nearest ancestor with a non-zero error, halved once per level of depth below that ancestor.
- [GoogleCloudAuth](/tools/docs/3d-tiles-renderer/core/plugins/GoogleCloudAuth.md): Authentication helper for Google Cloud Maps APIs. Manages session-token creation and renewal for both the Photorealistic 3D Tiles API and the 2D Map Tiles API, injecting the API key and session token into outgoing requests.
- [GoogleCloudAuthPlugin](/tools/docs/3d-tiles-renderer/core/plugins/GoogleCloudAuthPlugin.md): Plugin for authenticating requests to the Google Cloud Maps APIs, including the Photorealistic 3D Tiles and 2D Map Tiles APIs. Handles session-token management, per-tile attribution collection, and optional logo attribution.
- [ImplicitTilingPlugin](/tools/docs/3d-tiles-renderer/core/plugins/ImplicitTilingPlugin.md): Plugin that adds support for 3D Tiles 1.1 implicit tiling. Intercepts tiles that carry an `implicitTiling` field and expands them by loading and parsing `.subtree` files, generating child tiles according to the implicit subdivision scheme.
- [QuantizedMeshLoaderBase](/tools/docs/3d-tiles-renderer/core/plugins/QuantizedMeshLoaderBase.md): Base loader for quantized-mesh terrain tiles. Parses the binary quantized-mesh format into structured vertex, index, edge, and extension data. Sets the required `Accept` header automatically. Subclasses should implement geometry construction from the parsed result.

### Types

- [ParsedBitstream](/tools/docs/3d-tiles-renderer/core/plugins/ParsedBitstream.md)

## 3d-tiles-renderer/r3f

### Components

- [AnimatedSettledObject](/tools/docs/3d-tiles-renderer/r3f/AnimatedSettledObject.md): A SettledObject that smoothly interpolates its position as the query result updates. Must be a descendant of SettledObjects.
- [CameraTransition](/tools/docs/3d-tiles-renderer/r3f/CameraTransition.md): Manages transitions between perspective and orthographic cameras. Wraps CameraTransitionManager and integrates with R3F's camera state. All CameraTransitionManager properties can be set as props.
- [CanvasDOMOverlay](/tools/docs/3d-tiles-renderer/r3f/CanvasDOMOverlay.md): Creates a DOM overlay positioned absolutely over the canvas. Children are rendered into a separate React root. Remaining props are passed to the root div element.
- [CompassGizmo](/tools/docs/3d-tiles-renderer/r3f/CompassGizmo.md): Renders a compass overlay that rotates to indicate north based on the camera orientation relative to the tileset ellipsoid. Must be a child of TilesRenderer. Remaining props are passed to the root group element.
- [EastNorthUpFrame](/tools/docs/3d-tiles-renderer/r3f/EastNorthUpFrame.md): Creates a group positioned and oriented at a geographic coordinate on the tileset ellipsoid. Must be a child of TilesRenderer. Does not modify the tileset transform.
- [EnvironmentControls](/tools/docs/3d-tiles-renderer/r3f/EnvironmentControls.md): Wraps the three.js EnvironmentControls class. Automatically attaches to the R3F camera, scene, and canvas. All EnvironmentControls properties can be set as props.
- [GlobeControls](/tools/docs/3d-tiles-renderer/r3f/GlobeControls.md): Wraps the three.js GlobeControls class. Must be a child of TilesRenderer to receive ellipsoid context. All GlobeControls properties can be set as props.
- [SettledObject](/tools/docs/3d-tiles-renderer/r3f/SettledObject.md): Positions a component on the surface of the tileset at a lat/lon coordinate or along a ray. Must be a descendant of SettledObjects.
- [SettledObjects](/tools/docs/3d-tiles-renderer/r3f/SettledObjects.md): Manages raycasting queries against the tileset for positioning child SettledObject components. Must be a child of TilesRenderer. All QueryManager properties can be set as props.
- [TilesAttributionOverlay](/tools/docs/3d-tiles-renderer/r3f/TilesAttributionOverlay.md): Displays attributions collected from the loaded tileset. Must be a child of TilesRenderer. Remaining props are passed to the underlying CanvasDOMOverlay element.
- [TilesPlugin](/tools/docs/3d-tiles-renderer/r3f/TilesPlugin.md): Registers a plugin on the nearest parent TilesRenderer. Must be a child of TilesRenderer. All properties on the plugin instance can be set as props directly. Note that some plugin properties cannot be changed after construction.
- [TilesRenderer](/tools/docs/3d-tiles-renderer/r3f/TilesRenderer.md): Wrapper for the three.js TilesRenderer class. All properties on the TilesRenderer instance can be set as props using dot-notation for nested properties (e.g. `lruCache-minSize`). Events are registered with a camel-cased `on` prefix (e.g. `onLoadModel`).

## 3d-tiles-renderer/three

### Classes

- [B3DMLoader](/tools/docs/3d-tiles-renderer/three/B3DMLoader.md): Loader for the legacy 3D Tiles Batched 3D Model (b3dm) format. Parses the b3dm container and returns a GLTF result with `batchTable` and `featureTable` attached to the resolved scene object.
- [CameraTransitionManager](/tools/docs/3d-tiles-renderer/three/CameraTransitionManager.md): Manages an animated transition between a perspective and an orthographic camera. During the transition a blended `transitionCamera` is used. Fires events for the transition lifecycle and the active camera change.
- [CMPTLoader](/tools/docs/3d-tiles-renderer/three/CMPTLoader.md): Loader for the legacy 3D Tiles Composite (cmpt) format. Parses a cmpt container that bundles multiple b3dm, i3dm, and pnts tiles, returning a scene Group containing all sub-tile scenes.
- [Ellipsoid](/tools/docs/3d-tiles-renderer/three/Ellipsoid.md): Represents a triaxial ellipsoid defined by three semi-axis radii. Used to model planet-scale surfaces such as the Earth (see `WGS84_ELLIPSOID`). All geographic coordinates use latitude and longitude in radians.
- [EnvironmentControls](/tools/docs/3d-tiles-renderer/three/EnvironmentControls.md): Camera controls for exploring a 3D environment. Supports drag-to-pan, scroll-to-zoom, right-click-to-rotate, and optional damping/inertia. Works with any Three.js scene.
- [GlobeControls](/tools/docs/3d-tiles-renderer/three/GlobeControls.md): Camera controls for navigating a globe-shaped tileset. Extends EnvironmentControls with ellipsoid-aware rotation, globe inertia, and automatic near/far plane adjustment.
- [I3DMLoader](/tools/docs/3d-tiles-renderer/three/I3DMLoader.md): Loader for the legacy 3D Tiles Instanced 3D Model (i3dm) format. Parses the i3dm container and returns instanced meshes with `batchTable` and `featureTable` attached to the resolved scene object.
- [PNTSLoader](/tools/docs/3d-tiles-renderer/three/PNTSLoader.md): Loader for the legacy 3D Tiles Point Cloud (pnts) format. Parses the pnts container and returns a three.js Points object with `batchTable` and `featureTable` attached to the resolved scene object.
- [TilesRenderer](/tools/docs/3d-tiles-renderer/three/TilesRenderer.md): Three.js implementation of a 3D Tiles renderer. Extends `TilesRendererBase` with camera management, three.js scene integration, and GPU-accelerated tile loading. Add `tiles.group` to your scene and call `tiles.update()` each frame.

### Functions

- [decodeOctNormal](/tools/docs/3d-tiles-renderer/three/functions.md): Decode an octahedron-encoded normal (as a pair of 8-bit unsigned numbers) into a Vector3.

### Constants

- [CAMERA_FRAME](/tools/docs/3d-tiles-renderer/three/constants.md): Frame constant for a camera-convention frame relative to the ENU frame, oriented with "+Y" up and "-Z" forward (matching three.js camera conventions).
- [ENU_FRAME](/tools/docs/3d-tiles-renderer/three/constants.md): Frame constant for the East-North-Up (ENU) coordinate frame, with X pointing east, Y pointing north, and Z pointing up (away from the ellipsoid surface).
- [OBJECT_FRAME](/tools/docs/3d-tiles-renderer/three/constants.md): Frame constant for an object-convention frame relative to the ENU frame, oriented with "+Y" up and "+Z" forward (matching three.js object conventions).

### Types

- [Frames](/tools/docs/3d-tiles-renderer/three/Frames.md)

## 3d-tiles-renderer/three/plugins

### Classes

- [BaseRegion](/tools/docs/3d-tiles-renderer/three/plugins/BaseRegion.md): Abstract base class for `LoadRegionPlugin` regions. Subclass and override `intersectsTile` to define custom load regions.
- [BatchedTilesPlugin](/tools/docs/3d-tiles-renderer/three/plugins/BatchedTilesPlugin.md): Plugin that uses three.js `BatchedMesh` to limit the number of draw calls required and improve performance. The `BatchedMesh` geometry and instance size are automatically resized and optimized as new geometry is added and removed. Note that the `renderer` field is required. Requires Three.js r170 or later.
- [CesiumIonAuthPlugin](/tools/docs/3d-tiles-renderer/three/plugins/CesiumIonAuthPlugin.md): Plugin for authenticating requests to Cesium Ion. Handles token refresh, asset endpoint resolution, and attribution collection. Auto-registration of terrain and imagery plugins via `assetTypeHandler` is deprecated — provide a custom handler instead.
- [CesiumIonOverlay](/tools/docs/3d-tiles-renderer/three/plugins/CesiumIonOverlay.md): Overlay that streams imagery from a Cesium Ion asset. Supports Ion-hosted TMS assets as well as external asset types (Google 2D Maps, Bing Maps) that Ion proxies.
- [DebugTilesPlugin](/tools/docs/3d-tiles-renderer/three/plugins/DebugTilesPlugin.md): Plugin that adds visual debugging aids to a `TilesRenderer`: bounding-volume helpers (box, sphere, region), tile color modes based on depth/error/distance/load order, and an unlit rendering mode. Color modes are available via the static `ColorModes` property.
- [DeepZoomOverlay](/tools/docs/3d-tiles-renderer/three/plugins/DeepZoomOverlay.md): Plugin that renders a Deep Zoom Image (DZI) as a tiled overlay. Only a single embedded "Image" is supported. See the `Deep Zoom specification` and `OpenSeadragon`.
- [GeneratedSurfacePlugin](/tools/docs/3d-tiles-renderer/three/plugins/GeneratedSurfacePlugin.md): Plugin that generates tiled surface geometry from a tiling scheme, optionally loading image overlay data.
- [GeoJSONOverlay](/tools/docs/3d-tiles-renderer/three/plugins/GeoJSONOverlay.md): Overlay that rasterizes a GeoJSON dataset onto 3D tile geometry. Features are drawn using the Canvas 2D API at the tile's native resolution. Per-feature style overrides can be provided via the `strokeStyle`, `fillStyle`, `strokeWidth`, and `pointRadius` properties on each GeoJSON feature's `properties` object.
- [GLTFCesiumRTCExtension](/tools/docs/3d-tiles-renderer/three/plugins/GLTFCesiumRTCExtension.md): GLTF loader plugin that applies the `CESIUM_RTC` extension, which offsets the scene position by the RTC center defined in the GLTF JSON. Register with a `GLTFLoader` via `loader.register( () => new GLTFCesiumRTCExtension() )`.
- [GLTFExtensionsPlugin](/tools/docs/3d-tiles-renderer/three/plugins/GLTFExtensionsPlugin.md): Plugin for automatically adding common extensions and loaders for 3D Tiles to the `GLTFLoader` used for parsing tile geometry. A `DRACOLoader` can be provided to support loading Draco-compressed point cloud files.
- [GLTFMeshFeaturesExtension](/tools/docs/3d-tiles-renderer/three/plugins/GLTFMeshFeaturesExtension.md): GLTF loader plugin that parses the `EXT_mesh_features` extension and attaches a `MeshFeatures` instance to `mesh.userData.meshFeatures` on each primitive. Register with a `GLTFLoader` via `loader.register( () => new GLTFMeshFeaturesExtension() )`.
- [GLTFStructuralMetadataExtension](/tools/docs/3d-tiles-renderer/three/plugins/GLTFStructuralMetadataExtension.md): GLTF loader plugin that parses the `EXT_structural_metadata` extension and attaches a `StructuralMetadata` instance to `scene.userData.structuralMetadata` (and to each primitive mesh). Register with a `GLTFLoader` via `loader.register( () => new GLTFStructuralMetadataExtension() )`.
- [GoogleMapsOverlay](/tools/docs/3d-tiles-renderer/three/plugins/GoogleMapsOverlay.md): Overlay that streams Google Maps 2D tile imagery on top of 3D tile geometry using the Google Maps Tile API.
- [ImageOverlay](/tools/docs/3d-tiles-renderer/three/plugins/ImageOverlay.md): Base class for all image overlays. Provides the interface that `ImageOverlayPlugin` uses to fetch, lock, and release overlay textures.
- [ImageOverlayPlugin](/tools/docs/3d-tiles-renderer/three/plugins/ImageOverlayPlugin.md): Plugin that composites one or more tiled image overlays onto 3D tile geometry by generating per-tile textures from image sources (XYZ, TMS, WMTS, WMS, GeoJSON, etc.). Image sources are added via `addOverlay()` and removed via `deleteOverlay()`.
- [LoadRegionPlugin](/tools/docs/3d-tiles-renderer/three/plugins/LoadRegionPlugin.md): Plugin that restricts tile loading and traversal to one or more geometric regions (`SphereRegion`, `RayRegion`, `OBBRegion`). Only tiles that intersect an active region are loaded and refined. Regions marked as masks additionally prevent tiles outside them from loading.
- [MeshFeatures](/tools/docs/3d-tiles-renderer/three/plugins/MeshFeatures.md): Provides access to `EXT_mesh_features` feature ID data for a single mesh primitive. Instances are created by `GLTFMeshFeaturesExtension` and attached to `mesh.userData.meshFeatures`. Use `getFeatures()` or `getFeaturesAsync()` to read feature IDs at a point on the mesh surface.
- [MVTAnnotationsDriver](/tools/docs/3d-tiles-renderer/three/plugins/MVTAnnotationsDriver.md): Bundles the callbacks the "MVTAnnotationsPlugin" needs into a single object. Subclass and override the methods to customize which features become annotations, their placement priority, per-character sizing, the displayed text, and how visibility changes are rendered. By default all points of interest are rendered as circles and labels are rendered as white text with a black outline. Custom implementations can be used for more sophisticated text rendering, variable font weights based on properties, and custom icons.
- [MVTAnnotationsPlugin](/tools/docs/3d-tiles-renderer/three/plugins/MVTAnnotationsPlugin.md): Plugin that extracts point features from an MVT overlay and manages their screen-space occupation, preventing label crowding via a hierarchical lock system and raycasted depth placement. Rendering is left entirely to the caller via the driver's `onPointsUpdate` / `onLabelsUpdate`.
- [MVTGlyphAtlasTexture](/tools/docs/3d-tiles-renderer/three/plugins/MVTGlyphAtlasTexture.md): A canvas texture that manages a grid of fixed-size slots, each holding a rendered glyph or icon. Slots are addressed by string key and can be drawn with text, images, or paths.
- [MVTGlyphs](/tools/docs/3d-tiles-renderer/three/plugins/MVTGlyphs.md): Base object that renders a batch of glyphs from a shared `MVTGlyphAtlasTexture`, fading each item in and out. Manages the geometry and two child draws sharing it: an opaque pass and a transparent "draw through" pass, combined per `drawMode`.
- [MVTIconGlyphs](/tools/docs/3d-tiles-renderer/three/plugins/MVTIconGlyphs.md): Renders one icon glyph per point annotation. Each item's atlas key comes from `getKind`, or `fallback` when that key isn't in the atlas.
- [MVTLabelGlyphs](/tools/docs/3d-tiles-renderer/three/plugins/MVTLabelGlyphs.md): Renders text labels one glyph per character, laid out along each annotation's path. Characters are rasterized into the atlas on demand, so a label's text may change at any time.
- [MVTOverlay](/tools/docs/3d-tiles-renderer/three/plugins/MVTOverlay.md): Overlay that renders XYZ-template MVT vector tiles on top of 3D tile geometry. See the `Mapbox Vector Tile specification`.
- [OBBRegion](/tools/docs/3d-tiles-renderer/three/plugins/OBBRegion.md): An oriented bounding-box load region. Only tiles that intersect `obb` are loaded.
- [PMTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/PMTilesOverlay.md): Overlay that renders PMTiles vector or raster data on top of 3D tile geometry. Projection and zoom levels are read automatically from the PMTiles archive header.
- [PointCloudEffectsPlugin](/tools/docs/3d-tiles-renderer/three/plugins/PointCloudEffectsPlugin.md): Plugin that applies display settings and eye dome lighting to loaded point content. Eye dome lighting renders the points to a depth target first so each point can compare itself against its neighbors as it rasterizes, shading silhouettes and creases.
- [PotreePlugin](/tools/docs/3d-tiles-renderer/three/plugins/PotreePlugin.md): Plugin that adds support for Potree point cloud datasets (v1.x and v2.0).
- [QuantizedMeshPlugin](/tools/docs/3d-tiles-renderer/three/plugins/QuantizedMeshPlugin.md): Plugin that adds support for the Cesium quantized-mesh terrain format. Fetches the `layer.json` descriptor from the tileset root and dynamically generates 3D Tiles tile content from quantized-mesh buffers.
- [RayRegion](/tools/docs/3d-tiles-renderer/three/plugins/RayRegion.md): A ray-based load region. Only tiles that intersect `ray` are loaded.
- [ReorientationPlugin](/tools/docs/3d-tiles-renderer/three/plugins/ReorientationPlugin.md): Plugin for automatically re-orienting and re-centering the tileset to make it visible near the origin and facing the right direction. If `lat`/`lon` are provided the tileset is placed at that geographic location; otherwise the plugin tries to determine if the tileset is on the globe surface and estimates the coordinates. If no coordinates can be determined the tileset is oriented so the given `up` axis aligns to three.js' +Y.
- [SphereRegion](/tools/docs/3d-tiles-renderer/three/plugins/SphereRegion.md): A spherical load region. Only tiles that intersect `sphere` are loaded.
- [StructuralMetadata](/tools/docs/3d-tiles-renderer/three/plugins/StructuralMetadata.md): Provides access to `EXT_structural_metadata` property tables, property textures, and property attributes for a GLTF scene or primitive. Instances are created by `GLTFStructuralMetadataExtension` and attached to `scene.userData.structuralMetadata` and `mesh.userData.structuralMetadata`.
- [TerrainRGBMeshPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TerrainRGBMeshPlugin.md): Generates terrain tiles from raster Terrain-RGB elevation tiles. Each elevation texture is shared by multiple layers of sub tiles that displace a smooth surface mesh on the GPU with a subview of the texture, so elevation scale and seam updates only require texture changes.
- [TerrariumMeshPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TerrariumMeshPlugin.md): `TerrainRGBMeshPlugin` for the Terrarium encoding.
- [TileCompressionPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TileCompressionPlugin.md): Plugin that processes tile geometry buffer attributes into smaller data types on load and disables texture mipmaps to save memory. Can reduce geometry memory footprint by more than half and texture memory by around a third. Note that the default attribute size when compression is enabled is fairly aggressive and may cause visual artifacts.
- [TiledImageOverlay](/tools/docs/3d-tiles-renderer/three/plugins/TiledImageOverlay.md): Base class for overlays backed by a tiled image source (XYZ, TMS, WMS, WMTS, etc.). Manages a `TiledImageSource` and a `RegionImageSource` that handles compositing multiple source tiles into a single texture per 3D tile region.
- [TileFlatteningPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TileFlatteningPlugin.md): Plugin that flattens tile geometry vertices onto the surface of one or more mesh "shapes", useful for placing flat terrain overlays or cutting roads into terrain. Shapes are added via `addShape()` and removed via `deleteShape()` or `clearShapes()`.
- [TilesetValidationPlugin](/tools/docs/3d-tiles-renderer/three/plugins/TilesetValidationPlugin.md): Plugin that validates tile geometry containment on load. For each loaded tile it checks that all mesh vertices lie within the tile's bounding volume and within the parent tile's bounding volume, logging a warning for any violations. Intended for debugging only.
- [TilesFadePlugin](/tools/docs/3d-tiles-renderer/three/plugins/TilesFadePlugin.md): Plugin that overrides material shaders to fade tile geometry in and out as tile LODs change, preventing pop-in. Dispatches `fade-change`, `fade-start`, and `fade-end` events on the `TilesRenderer` during animation — use these when doing on-demand rendering. Works alongside `BatchedTilesPlugin` when present.
- [TMSTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/TMSTilesOverlay.md): Overlay that renders TMS (Tile Map Service) image tiles on top of 3D tile geometry. See the `TMS specification`.
- [UnloadTilesPlugin](/tools/docs/3d-tiles-renderer/three/plugins/UnloadTilesPlugin.md): Plugin that unloads geometry, textures, and materials of any given tile when its visibility changes to non-visible, freeing GPU memory. The model data still exists on the CPU until it is completely removed from the cache, allowing it to be re-uploaded without re-fetching.
- [UpdateOnChangePlugin](/tools/docs/3d-tiles-renderer/three/plugins/UpdateOnChangePlugin.md): Plugin that skips `TilesRenderer.update()` calls when nothing has changed — no camera movement, no new tiles loaded, and no explicit `needsUpdate` flag set. Useful for event-driven renderers that only render on demand.
- [WMSCapabilitiesLoader](/tools/docs/3d-tiles-renderer/three/plugins/WMSCapabilitiesLoader.md): Loader that fetches and parses a WMS `GetCapabilities` XML document into a structured JavaScript object. The result can be used to configure `WMSImageSource`.
- [WMSTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/WMSTilesOverlay.md): Overlay that renders WMS (Web Map Service) image tiles on top of 3D tile geometry. See the `WMS specification`.
- [WMTSCapabilitiesLoader](/tools/docs/3d-tiles-renderer/three/plugins/WMTSCapabilitiesLoader.md): Loader that fetches and parses a WMTS `GetCapabilities` XML document into a structured JavaScript object. The result can be used to configure `WMTSImageSource`.
- [WMTSTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/WMTSTilesOverlay.md): Overlay that renders WMTS (Web Map Tile Service) image tiles on top of 3D tile geometry. Pass a parsed capabilities object from `WMTSCapabilitiesLoader` or provide a URL template directly. See the `WMTS specification`.
- [XYZTilesOverlay](/tools/docs/3d-tiles-renderer/three/plugins/XYZTilesOverlay.md): Overlay that renders XYZ/Slippy-map image tiles (e.g. OpenStreetMap) on top of 3D tile geometry. See the `Slippy map tilenames specification`.

### Types

- [FeatureInfo](/tools/docs/3d-tiles-renderer/three/plugins/FeatureInfo.md)
- [MVTDrawModeEnum](/tools/docs/3d-tiles-renderer/three/plugins/MVTDrawModeEnum.md)
- [VectorTileStyle](/tools/docs/3d-tiles-renderer/three/plugins/VectorTileStyle.md)
- [WMTSTileMatrix](/tools/docs/3d-tiles-renderer/three/plugins/WMTSTileMatrix.md)
