Create a new model loader
Configuration options
Optionalrenderer: WebGLRendererLoad a model from a URL. Automatically detects format from file extension.
URL to load from
OptionalmaterialOverrides: Material | MaterialPropertiesOptional material property overrides
OptionalonProgress: ProgressCallbackOptional progress callback
Promise resolving to load result
Load a model from an ArrayBuffer.
ArrayBuffer containing the model data
File format ('ply', 'gltf', 'glb', 'nxs', or 'nxz')
OptionalmaterialOverrides: Material | MaterialPropertiesOptional material property overrides
Optionalurl: stringOptional URL for streaming formats like NXS
Promise resolving to load result
Detect file format from filename or URL
Filename or URL
Detected format
PrivateparseParse PLY format buffer
ArrayBuffer containing PLY data
OptionalmaterialOverrides: Material | MaterialPropertiesOptional material overrides
OptionalbaseDir: stringOptional base directory for resolving relative texture paths
Promise resolving to Three.js Mesh
PrivateparseParse GLTF/GLB format buffer
ArrayBuffer containing GLTF/GLB data
OptionalmaterialOverrides: Material | MaterialPropertiesOptional material overrides
Promise resolving to Three.js Group
PrivateparseParse Nexus (NXS/NXZ) format from URL Nexus is a multiresolution format that streams data incrementally
URL to the .nxs or .nxz file
OptionalmaterialOverrides: Material | MaterialPropertiesPromise resolving to Nexus3D
PrivateapplyApply material property overrides to an existing material
Three.js material to modify
Properties to override
PrivatemergeMerge material properties, with overrides taking precedence
Default properties
Optionaloverrides: MaterialPropertiesOverride properties
Merged properties
Get the current configuration
Update the Draco decoder path
New path to Draco decoder
Clean up resources
ModelLoader
Behavior summary:
parsePLY: returns a THREE.Mesh created from PLY geometry. By default, PLY geometry is not normalized or re-centered; set
autoComputeNormalsto true to compute vertex normals. The returned mesh preserves the geometry's original coordinates.parseGLTF / parseGLB: returns a THREE.Group containing cloned meshes from the GLTF scene. Materials can be overridden via
materialOverrides. The loader does not normalize or re-center GLTF models — transforms defined in the file are preserved as-is.parseNexus (NXS / NXZ): Nexus is a streaming, multi-resolution format. This loader returns a Promise that resolves once the Nexus
onLoadevent has fired (initial model data available). The loader DOES NOT mutate the Nexus object's transform (no auto-scaling or centering). The loader will populategeometry.boundingSphereandgeometry.boundingBoxfrom Nexus's reportedboundingSphereononLoadandonUpdateso scene-level bounding computations (Box3.setFromObject) work correctly.General: Model transforms (position, rotation, scale) are not applied by the ModelLoader; those are applied by the caller (e.g., ThreePresenter.applyTransforms()) after loading. This keeps model loading and scene presentation responsibilities separate.