To clarify, from what I understand, scaling on the x axis on global should affect rotation, like the bottom 2 cubes. However, when I scale it, I get the above result. I am fairly certain I toggled an option, but I do not know what, because I do not remember this being the behavior. Does anyone know what this would be? enter image description here

I have not applied the rotations, they are still part of the object's properties. The bottom 2 cubes are where I went into the edit mode and scaled it on the x axis, then moved it across the other side of the cursor. From my memory, this should have been the same as scaling in object mode, with both using the global axis.



1 Answer 1


No, scaling should not affect rotation. However, 1) object mode scaling is not the same thing as edit mode scaling, because object scaling can't exist in arbitrary axes; and 2) object mode scaling doesn't actually "mirror" a shape in the world.

Let's start with the first thing. What happens when we rotate a cube and then scale it 5-fold in the world X axis?

enter image description here

Notice the transforms on the sidebar. There is no object axis that corresponds with the world X axis, so it got bigger in all axes. Blender tried its best to convert world-space scaling into object scaling, by measuring how big 5 world X units were in the object's axes.

We can compare, if we want, with scaling 5 fold in world X in edit mode:

enter image description here

Edit mode scaling can occur in an arbitrary axis. So we get something different.

Now, why doesn't object scaling in the world axes mirror an object in the world axes?

enter image description here

The object on the left has a -1 x scale, scaled across the world origin in the world X axis. This scaling doesn't necessarily leave us with -1 object space scale, because of 1 above, but in this case, it did.

But its rotation values in the sidebar are the same-- we certainly never told Blender to change them. What are those transforms doing, exactly? There's more than way to understand them, but here's one way:

  1. First, we start with an untransformed cube, at the world origin, unrotated, unscaled.

  2. Then, we move it in its transformed axes by its location. Since it hasn't been transformed, and translation doesn't change those, its transformed axes are still its untransformed axes.

  3. Then, we rotate it in its transformed axes-- as an XYZ Euler, we can see that as rotating it in its Z axis (untransformed as of this point), then its transformed Y axis, then its transformed X axis.

  4. Then we scale it in its new object axes. Since this scaling happens after rotation, and the object has symmetry, it doesn't affect its apparent rotation.

The other way to see this is in the opposite order, but using untransformed axes-- the axes that it starts with. That's why its an XYZ Euler, they're thinking of it as untransformed axes. But Blender users often think of transformed axes, what you get with local orientation, so it's probably easier to think of it that way.

We can see that if we flipped the order with which we scale and rotate, we'd actually mirror it. Is there any way that we can do that? Yes, we can parent it to an object and then scale that object:

enter image description here

By putting the scale on the parent empty and the rotation on the child cube, the child cube mirrors like you expect. We're essentially reversing the order with which we scale and rotate: the parent scales, then the child translates and rotates, rather than the child translating, rotating, then scaling.

  • $\begingroup$ Thank you for such a detailed response. I guess I never really tested out any of these steps, and relied on the mirror modifier too much to ever see that this was how it worked. I felt like I was insane, but it turns out I never actually scaled in a particular axis in object mode until today. $\endgroup$
    – Elbert Ho
    Dec 29, 2023 at 10:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .