Model 3D
Load 3D model files: OBJ, GLTF, FBX, STL, or PLY.
What it does
Model 3D loads a 3D model file from disk (OBJ, glTF/GLB, FBX, STL, or PLY) as geometry that transforms, shades and renders like any other shape. Point-cloud files, a PLY without faces, come in as points instead, each carrying its own colour, and the node reports which kind it loaded.
It also reports mesh and vertex/triangle counts, mesh names and bounding-box size, and pulls out the first albedo texture as an image for reuse in a 2D compositing chain.
When to use it
A model made elsewhere (a scanned asset, an exported character, a CAD part, a point-cloud scan) rather than one built from primitives
One specific sub-mesh out of a multi-mesh file, by name or by index
A point cloud (PLY), with control over how many points come in and how they are drawn
The model's albedo texture as a standalone image, separate from the 3D surface
| Parameter | Type | Default | What it does |
|---|---|---|---|
file_path | String | "String::new()" | Path to 3D model file |
position | Vec3 | (0, 0, 0) | Translation offset |
rotation | Vec3 | (0, 0, 0) | Rotation in degrees (Euler XYZ) |
scale | Number | 1 | Uniform scale factor |
up_axis | String | "Auto" | Source coordinate system (Auto detects from file metadata). One of: Auto, Y-Up, Z-Up. |
unit_scale | String | "Auto" | Source file unit scale. One of: Auto, Millimeters, Centimeters, Meters, Inches. |
recompute_normals | Boolean | true | Recalculate vertex normals (smooth shading) |
flip_faces | Boolean | false | Flip winding order (fixes inside-out meshes) |
weld_vertices | Boolean | true | Merge duplicate vertices within epsilon distance |
weld_epsilon | Number | 0.000 | Distance threshold for vertex welding |
preserve_hierarchy | Boolean | false | Keep the file's object tree: the Hierarchy output lists every scene node with its name and transform, and each imported point records which node placed it. Off bakes the transforms into the geometry. Selecting an animation Clip turns this on regardless — a transform can only be animated while it is still data. |
clip | String | "" | Animation clip to play, by name — the Clip Names output lists what the file carries. Empty imports the file's rest pose and nothing animates. |
time_mode | String | "Scene Time" | Scene Time plays the clip against the timeline. Manual drives it from the Time input, so Time / Time Remap / a keyframed curve can retime it. One of: Scene Time, Manual. |
time | Number | 0 | Playback position within the clip, in seconds. Only used when Time Mode is Manual. |
loop_mode | String | "Loop" | What happens outside the clip's own length: Loop repeats it, Hold freezes on the first/last pose, Ping-Pong alternates forward and backward. One of: Loop, Hold, Ping-Pong. |
mesh_selection | String | "All" | Which meshes to load from multi-mesh files. One of: All, By Name, By Index. |
mesh_name | String | "" | Mesh name filter (* at start/end for wildcard). Only used when selection = By Name |
mesh_index | Number | 0 | Mesh index (0-based). Only used when selection = By Index |
point_size | Number | 2 | Point size in pixels for point cloud rendering |
point_shape | String | "Disc" | Point rendering shape. One of: Disc, Square, Sphere. |
max_points | Number | 0 | Maximum points to load (0 = unlimited) |
subsample | Number | 1 | Random subsampling ratio (1.0 = all, 0.1 = 10%) |
opacity | Number | 1 | Layer opacity (0 = transparent, 1 = opaque). Editable, wirable, keyframable. |
Gotchas
Mesh Name only takes effect when Mesh Selection is "By Name", and Mesh Index only when it is "By Index". The other field stays visible and is ignored.
The Point Cloud group (Point Size, Point Shape, Max Points, Subsample) only applies to files that load as point clouds, a PLY with no faces. On a mesh file these controls have nothing to affect.
For an imported mesh showing back faces or lit wrong, try Flip Faces, which reverses the winding order some exporters get backwards.
Weld Vertices merges duplicate vertices within Weld Epsilon of each other. Turn it off if a model relies on genuinely separate coincident vertices, such as hard edges and UV seams, which welding can smooth away.
Worked example
Add a Model 3D node and pick your file (OBJ, glTF/GLB, FBX, STL, or PLY).
Leave Up Axis and Unit Scale on Auto first; override them only if the model comes in rotated or at the wrong scale.
If the file has more than one mesh, set Mesh Selection to By Name or By Index and pick the one you want.
Check the Bounds and Vertex/Triangle Count outputs to confirm what loaded, then wire Geometry onward into the rest of your scene.