Geometry node, get global position

I have been enjoying and learning how to use geometry node for a couple of days now, I have however reached a problem that I was unable to find a solution or an answer for.

Is it possible to get the global position and modify it in Geometry node instead of local position?

(Also just looking into it for a few days, but) Add (Node) → Input → Object Info Location Original / Relative (?)

From my tests, Object Info Location Original/Relative still works using local position with original using the local direction and position of points while the relative is using the local direction and position of the original geometry. I am trying to find the World/Global position

Oh yes, and it’s wrtten in the tool tip (i have to look more on them):

Original: Output the geometry relative to…

Are you trying to get the “position” attribute in world space? To do that you need to add the location of the object to the position attribute:


Unfortunately, you have to change the object in the object info node manually for every object you add the node tree to, as at the moment there’s no way of getting the current object.
Hope that helps!

Thanks, I was now able to get the desired result.

The points are instantiated based on the normal direction of the plane and using the cylinder I can move them up and down with animation keyframes.

I would think there is or at least should be an easier and smarter way of doing it and would love to get suggestions on how to improve on it.

2 Likes

So 2023, and we’re now on now on 3.6.0.
Any idea how to get global position after 2.92, because that node seems to be gone.

This is how I’d do it:

The self object node also has the nice benefit of fixing the issue of having to change the object in my original answer :slight_smile:

1 Like

Geometry nodes are meant to operate in object space, this is by design. Until matrix nodes come in, I’m not sure it’ll be possible to convert from object to world space. It’s possible in the simplest cases where there isn’t any rotation by adding the position values together, but a bit limited.

If you totally messed up your object’s local space, you could also do something like the ‘remove local’ group on the right to remove the objects transforms from its attributes.

Note that you’d need to do this for every transformed parent of your geometry, so its getting complicated very quickly.
These kinds of space changes also artificially inflate the graph and make it horrible read.

You could also just import every object into a ‘clean’ object and simply use their transforms (the ‘remake local’ group) in a world like space. That would at least remove the need to counter the local transforms on every single transformation.

1 Like