Easiest way to make positive-Y axis go downward (without using scale)?



I’d like for all objects in a scene to move downward on the Y axis when a positive Y translation is given. Basically, I’d like for positive Y direction to be opposite for all objects in the scene.

How can we do this? Do I have to fork and modify a shader (I’m hoping not)? Or is there another way?

How can we make Three.js scenes use DOM-style coordinates?

Try setting Object3D.DefaultUp to (0, -1, 0 ).


That doesn’t seem to do anything. Here’s with (0, 1, 0):

and here’s with (0, -1, 0)

In both cases, the light is positioned at 100 and in both cases the light appears in the same place rather than in the (0, -1, 0) case the light being closer to the bottom as I was expecting.

For reference, if that was doing what I was hoping for, it would look like this:

(I manually set light position to -100)


For now, what I’m doing is flipping the Y values of the custom world matrices that I’m supplying to Three.js, and I have autoUpdate set to false on the Scene so that Three.js doesn’t do world matrix calculations.

I’d still like to know how to do it using Three’s API, if possible.