File: Rhino3dmLoader.md | Updated: 11/15/2025
A loader for Rhinoceros 3D files and objects.
Rhinoceros is a 3D modeler used to create, edit, analyze, document, render, animate, and translate NURBS curves, surfaces, breps, extrusions, point clouds, as well as polygon meshes and SubD objects. rhino3dm.js is compiled to WebAssembly from the open source geometry library openNURBS. The loader currently uses rhino3dm.js 8.4.0.
const loader = new Rhino3dmLoader();
loader.setLibraryPath( 'https://cdn.jsdelivr.net/npm/rhino3dm@8.0.1' );
const object = await loader.loadAsync( 'models/3dm/Rhino_Logo.3dm' );
scene.add( object );
Rhino3dmLoader is an addon, and must be imported explicitly, see Installation#Addons.
import { Rhino3dmLoader } from 'three/addons/loaders/3DMLoader.js';
Constructs a new Rhino 3DM loader.
manager | The loading manager.
---|---
Prints debug messages to the browser console.
Decodes the 3DM asset data with a Web Worker.
buffer | The raw 3DM asset data as an array buffer.
---|---
url | The asset URL.
Returns: A Promise that resolved with the decoded 3D object.
Frees internal resources. This method should be called when the loader is no longer required.
Starts loading from the given URL and passes the loaded 3DM asset to the onLoad() callback.
url | The path/URL of the file to be loaded. This can also be a data URI.
---|---
onLoad | Executed when the loading process has been finished.
onProgress | Executed while the loading is in progress.
onError | Executed when errors occur.
Overrides: Loader#load
Parses the given 3DM data and passes the loaded 3DM asset to the onLoad() callback.
data | The raw 3DM asset data as an array buffer.
---|---
onLoad | Executed when the loading process has been finished.
onError | Executed when errors occur.
Overrides: Loader#parse
Path to a folder containing the JS and WASM libraries.
path | The library path to set.
---|---
Returns: A reference to this loader.
Sets the maximum number of Web Workers to be used during decoding. A lower limit may be preferable if workers are also for other tasks in the application.
workerLimit | The worker limit.
---|---
Returns: A reference to this loader.