I think this might be an area that needs to be clarified a bit in the spec. I opened an issue here that summarizes the offline discussion I had with Sean about it today:
Feel free to chime in there. It sounds like the definitive answer is that 3D Tiles expects Y to be up, right to be engine defined, and forward to be the cross product of those.
Thanks.
But I want to add a comment about “Forward” term.
Just in my opinion, I think that cross product Right(x) and Up(y) yields “Forward(z)” is not proper terms in Y-Up Right-Handed CRS(like openGL).
In Y-Up Right-handed CRS(only for i3dm’s orientation and glTf’s default handness, not for 3DTiles spec), It is a little bit confusing terms.
Because the “Forward” is not equal to instance object’s forward direction. Cross product Right(x) and Up(y) yields actually “Backward(+z)” in in Y-Up Right-Handed CRS.