Why does Vector3.FromNormalId(Enum.NormalId.Front) face the negative Z axis?

I would rather post this in the discussions category but I can’t post there.

Something I find very strange is that ‘forward’ is defined as the negative Z direction in Roblox. New part instances also have their BasePart.FrontSurface facing that way.

Doesn’t it make more sense if ‘front’ is facing the positive direction? The same way that ‘up’ faces the positive Y direction. Is this just an meaningless direction on the Z axis or is there a deeper meaning as to why Roblox does it this way?

‘Front’ facing the -Z direction on the axis widget in Studio.
image

Unity defines ‘forward’ as the positive Z direction.

1 Like

Roblox uses the right-hand rule, where you take out your right hand with the index, thumb and middle fingers perpendicular to each other and the index is pointed straight forward. This will represent the 3 axes of the world

Since the x-axis is facing rightward and the y-axis is facing upwards, you’ll have to make your right hand in a way where the middle finger is facing rightwards and the thumb still facing upwards. You’ll see that the index finger faces towards you and is not looking forward, and that’ll be your positive z direction, and from that, looking forward in the world means you are facing the negative z direction

For the front to face the positive z axis, the positive x-axis would have to face leftwards or the positive y-axis would have to face downwards, but that’s obviously not the case

I tried my best at explaining that

11 Likes