Geometry & 3D node
Model Import
Imports a 3D model file — USDZ, USD, OBJ, STL, PLY — as real geometry, animation included. Play runs the file's own animation (Loop, Once or Ping-Pong, at Speed); with Play off the Time port scrubs it by cable. The hierarchy is flattened with transforms baked, missing normals computed, and Fit rescales the longest side to one Grafit unit. Loads in the background; the Geometry output feeds a 3D Scene Mesh, geometry operators, points and particles alike.
Inputs
| Port | Type | Default |
|---|---|---|
| FileThe model file — USDZ, USD, OBJ, STL or PLY, chosen with Browse or cabled as a path. Loading runs in the background; the node publishes empty geometry until the mesh arrives. | string | |
| ScaleUniform scale applied after Fit, clamped 0.0001–1000. With Fit on, 1 means the model's longest side spans one Grafit unit. | float | 1 |
| FitRescales the longest side to one Grafit unit. Model files arrive in millimetres, metres or feet — off means raw file units, which may be invisible or enormous. | bool | true |
| CenterMoves the model's bounding-box centre to the origin. Off keeps the file's own origin, wherever its author left it. | bool | true |
| PlayRuns the file's animation on the node's own clock, shaped by Loop Mode and Speed. Off pauses in place — and hands the wheel to the Time port for cable-driven scrubbing. | bool | false |
| Loop ModeHow playback treats the end: Loop starts over, Once plays through and holds the last frame, Ping-Pong bounces back and forth. | int | 0 |
| SpeedPlayback rate, ±8×. 1 is the file's own tempo; negative plays in reverse (in Once mode that heads for the first frame and holds). | float | 1 |
| RestartA rising edge rewinds playback to the first frame — cable a Pulse or a beat to retrigger the animation. | bool | false |
| TimeManual clock, in seconds (see Duration) — the master while Play is OFF. 0 is the file's first frame; cable an LFO, a Ramp or Audio for scrubbed, reversed or beat-driven motion. Transform and skeletal (USDZ) animation both follow. | float | 0 |
| Time ModeTransport: Play runs the animation on the node's clock, Time drives it with Play off. Scrub: the Scrub knob alone picks the moment — the mode for keyframing a model's motion with a Timeline curve. | int | 0 |
| ScrubScrub mode's position, 0–1: 0 is the first frame, 1 the last, whatever the file's Duration. Clamped. Drag it by hand, or cable a Timeline curve to keyframe the animation — ease in, hold, reverse. | float | 0 |
| Auto ReloadOn: the file is watched (once a second) and reloaded by itself when it changes on disk — re-export from Blender or Cinema 4D and the model updates. Off: only the Reload button reloads. Baked models are not watched. | bool | true |
Outputs
| Port | Type |
|---|---|
| Geometry | structure |
| Material | structure |
| Albedo | image |
| Size X | float |
| Size Y | float |
| Size Z | float |
| Vertex Count | int |
| Triangle Count | int |
| Loaded | bool |
| Duration | float |
| Animated | bool |
| Position | float |
| Progress | float |
How It Works
Model Import brings USDZ, USD, OBJ, STL and PLY files in as a Geometry cable. The hierarchy arrives with every transform baked, missing normals are generated with a crease threshold (STL files have none at all), and Fit rescales the longest side to one Grafit unit — model files arrive in millimetres, metres and feet, and "invisible or enormous" is not a first impression. Center brings the bounding box home. Loading runs in the background while the node publishes valid empty geometry.
Full PBR, per material — a model's own materials come along: per-submesh material groups (so a factor-only USDZ character no longer renders in its first material's near-black), and five texture maps per group — albedo, tangent-space normal, roughness, metallic, emission — plus opacity with glTF-style cutout, because USD assets love near-invisible proxy meshes that render as solid grey ghosts in any pipeline that ignores transparency. Textures are pooled and deduplicated, and the first albedo is also published as an ordinary Albedo image output.
Animation, both kinds — rigid hierarchies (a part that moves as a piece) and skeletal skinning (USDZ characters with hundreds of joints, read natively because joint data comes in exotic per-vertex layouts). One Time port scrubs both; Play / Loop Mode / Speed / Restart is the Video Player's transport applied to geometry, with Position and Progress coming back out — so an LFO, a beat or a hand can drive a character. Fit and Center measure frame zero, so a flapping wing does not rescale the world.
Bake into the project — one button copies the file's bytes into the .grafit, so the patch stands alone: send it to another machine, delete the source, it still opens. Re-picking clears the bake, and a size warning appears past 25 MB.
Use Cases
- Bring in a real object — A scanned or modelled asset into a lit Grafit scene.
- Animated characters — A skinned USDZ driven by a Timeline, a beat or a tracked hand.
- Colliders from the real world — An imported mesh as a Particle Collider.
- Self-contained examples — Bake the model so the project travels as one file.
- Material source — The Material output shares the file's own surfaces with other meshes.
Tips
- Leave Fit on for the first look; turn it off once you know the file's real scale and want it honoured.
- STL has no normals at all — the generated ones with a crease threshold are the best available, so expect facets on low-poly files.
- Play off plus a Time cable is the scrub workflow; Play on is the transport workflow. They are the same clock.
- Bake before sharing a project, and mind the 25 MB warning — the file lives inside the .grafit from then on.
- Decimate the geometry for collision while the Mesh keeps the full detail.
Open Model Import in the interactive catalog →
Model Import is one of 381 nodes in Grafit Pro.
Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.