Geometry & 3D node
Geometry Transform
Moves, turns and scales a mesh inside the geometry rather than at draw time — so raycasts, point sampling and everything downstream see the shape where you put it. Rotation is in degrees, applied X then Y then Z. Normals are carried through correctly even under non-uniform scale, so shading stays right when you squash something.
Inputs
| Port | Type | Default |
|---|---|---|
| GeometryThe mesh to move. The source is never modified — this works on its own copy, because the producer and every other consumer share the original. | structure | — |
| Position XMoves the mesh along X, in Grafit units. Inside the geometry, so raycasts and point sampling see it where you put it. | float | 0 |
| Position YMoves the mesh along Y, in Grafit units. | float | 0 |
| Position ZMoves the mesh along Z, in Grafit units. | float | 0 |
| Rotate XTurns the mesh around X, in degrees. Applied X, then Y, then Z — the same order and sense as Geometry to Points, so a mesh and a cloud rotate together. | float | 0 |
| Rotate YTurns the mesh around Y, in degrees. | float | 0 |
| Rotate ZTurns the mesh around Z, in degrees. | float | 0 |
| Scale XScales along X. Non-uniform scale is fine — normals are carried through the inverse transpose, so a squashed shape still shades correctly. A scale of 0 is nudged away from zero, since it would collapse the mesh and make the normal matrix singular. | float | 1 |
| Scale YScales along Y. | float | 1 |
| Scale ZScales along Z. | float | 1 |
| OriginWhich point of the mesh moves, turns and scales, and lands on Position: Keep (its own origin), Bounds Center, Bounds Bottom (a model standing on the floor) or Custom (Origin X/Y/Z). It becomes the geometry's new 0,0,0 downstream. | int | 0 |
| Origin XCustom origin, X, in the source geometry's units. This point lands on Position and is what Rotate and Scale turn about. | float | 0 |
| Origin YCustom origin, Y, in the source geometry's units. This point lands on Position and is what Rotate and Scale turn about. | float | 0 |
| Origin ZCustom origin, Z, in the source geometry's units. This point lands on Position and is what Rotate and Scale turn about. | float | 0 |
Outputs
| Port | Type |
|---|---|
| GeometryThe mesh to move. The source is never modified — this works on its own copy, because the producer and every other consumer share the original. | structure |
| Vertex Count | int |
| Triangle Count | int |
How It Works
Geometry Transform moves, turns and scales a mesh inside the geometry rather than at draw time. That distinction is the whole point: raycasts, point sampling, colliders and every other downstream consumer see the shape where you put it, not where a renderer happened to draw it.
Rotation is in degrees, applied X then Y then Z. Normals are carried through correctly even under non-uniform scale, so shading stays right when you squash something — the naïve implementation of this is wrong and looks it.
Use Cases
- Assemble a model — Place several shapes with Transform, then Combine them into one mesh.
- Move a collider — A Mesh node's position does not reach the collision geometry; this does.
- Pose for raycasting — Picking only works against the geometry's real coordinates.
- Non-uniform squash — Scale Y alone, with normals that still shade correctly.
- Animate the shape itself — An LFO on Rotate Y turns the mesh for every consumer at once.
Tips
- Use the Mesh node's own Position/Rotate when you only want to place it in the scene; use this when the change must reach raycasts, points and collisions.
- Rotation order is X, then Y, then Z. Chain two Transforms when you need a different order.
- Transform before Array or Combine to set the unit that gets repeated; after, to move the whole result.
- Non-uniform scale plus Geometry Noise gives anisotropic displacement — sometimes exactly what you want.
Open Geometry Transform in the interactive catalog →
Geometry Transform 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.