Is there a way to rotate an instance to face normal the point is sitting on in Geonodes?

I mean using mesh to points (face) node ? I try “normal” input, “raycast” node, “align to euler”, nothing really works same good as regular instance on face . I get some rotation sometimes but never in a correct way.

My guess it’s necessary to have two vectors at least to get normal transform space and orient an instance properly . Have anyone solved this?

Hey @Ivagr,

like this ?

This video goes into why the capture attribute matters:


Thanks you DamianJ

I get instances somewhat aligned with surface normals that way but still no proper rotation around the normal contrary to what regular instances on face do .

I think we need another vector perpendicular to normal in edge direction to have proper rotation this way.

You can use original curve tangent to align

Or in other cases when you don’t have curve, more complex setup is to create vector that points to one of plane edge

1 Like

Thank you higgsas
Could you upload blend file please if you still have it

Those both solutions need a curve actually , the first one the curve directly ,the second one the curve to distribute the initial grid mesh. The curve to point already has a “rotation” output that works perfectly fine for anything on that curve without any extra calculations .

I wonder more about a universal solution. It doesn’t work for arbitrary imported mesh for example as regular instances on face do.
Unless we have another object with only necessary edges to get a vector from at least.

It’s weird we have same perfectly working rotation output in “diftribute on mesh” but not in “mesh to point”