# When a mesh with scaling.x=-1 using PhysicsAggregate,its absoluteScaling will be auto changed to Vector(1,-1,1),why?

**URL:** <https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089>\
**Category:** Bugs\
**Created:** [October 22, 2025, 9:52am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089 "2025-10-22T09:52:05Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![RichardFly](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@RichardFly](https://forum.babylonjs.com/u/RichardFly)\
**Post date:** [October 22, 2025, 9:52am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/1 "2025-10-22T09:52:05Z")

</div>

Here is the playground,look at the cylinder,is that normal?

> **[Babylon.js Playground](https://playground.babylonjs.com/?inspectorv2=true#Z8HTUN%231266)**
>
> Babylon.js playground is a live editor for Babylon.js WebGL and WebGPU 3D scenes

---

<div class="post-metadata">

**Author:** ![RichardFly](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@RichardFly](https://forum.babylonjs.com/u/RichardFly)\
**Post date:** [October 22, 2025, 10:10am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/2 "2025-10-22T10:10:33Z")

</div>

![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/6/7/67b6f809fba9a8ad3a2f8a538884d3e3a9598b5c.jpeg)

This cylinder looks like it has automatically rotated 180 degrees on the x-axis.

@Cedric do you have any ideas?

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 22, 2025, 11:58am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/3 "2025-10-22T11:58:29Z")

</div>

Orientation and scaling might be changed by the hierarchy matrix computation. It also happens with gizmos and in other places. Quick answer is to not use non uniform negative scaling.

At best orientation scaling is changed. At worst you have unconsistent rendering.

---

<div class="post-metadata">

**Author:** ![RichardFly](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@RichardFly](https://forum.babylonjs.com/u/RichardFly)\
**Post date:** [October 22, 2025, 12:07pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/5 "2025-10-22T12:07:31Z")

</div>

So this is not a problem that needs to be fixed, right？But when I use gltf loader or importMesh, I see that it used negative scaling to convert leftHanded to rightHanded,it’ that a right way to do it ?

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 22, 2025, 12:11pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/6 "2025-10-22T12:11:14Z")

</div>

I’ll check if I can find a fix for that.

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 22, 2025, 12:11pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/7 "2025-10-22T12:11:19Z")

</div>

Assigned @Cedric on October 22, 2025, 12:11pm UTC



---

<div class="post-metadata">

**Author:** ![RichardFly](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@RichardFly](https://forum.babylonjs.com/u/RichardFly)\
**Post date:** [October 22, 2025, 12:13pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/8 "2025-10-22T12:13:04Z")

</div>

Thanks 😀

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 23, 2025, 2:06pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/9 "2025-10-23T14:06:04Z")

</div>

There is no fix for this but a work around is possible with baked geometry. What is your use case?

---

<div class="post-metadata">

**Author:** ![RichardFly](https://avatars.discourse-cdn.com/v4/letter/r/8e8cbc/32.png) [@RichardFly](https://forum.babylonjs.com/u/RichardFly)\
**Post date:** [October 23, 2025, 3:01pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/10 "2025-10-23T15:01:57Z")

</div>

I imported a model from the glTF loader and I used the PhysicsAggregate to make it real,but when all settled,the model just rotate and falling through the ground due to the negative scaling.You mentioned that baked geometry,would you make a pg and I can learn the best way to optimize that?As you know,gltf loader would assign an empty mesh with negative scaling to convert the meshes to leftHanded if the scene is not useRightHanded,should I just baked the empty mesh?

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 23, 2025, 3:49pm UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/11 "2025-10-23T15:49:49Z")

</div>

It will work if there is a parent transform of the \__root_\_ transform from the gltf

> **[Babylon.js Playground](https://playground.babylonjs.com/?inspectorv2=true#Z8HTUN%231267)**
>
> Babylon.js playground is a live editor for Babylon.js WebGL and WebGPU 3D scenes

I need to document that 🙂

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 27, 2025, 9:55am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/12 "2025-10-27T09:55:30Z")

</div>

> <https://github.com/BabylonJS/Documentation/pull/1424>

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 27, 2025, 9:55am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/13 "2025-10-27T09:55:32Z")

</div>

Unassigned @Cedric on October 27, 2025, 9:55am UTC



---

<div class="post-metadata">

**Author:** ![CrashMaster](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/crashmaster/32/23662_2.png) [@CrashMaster](https://forum.babylonjs.com/u/CrashMaster)\
**Post date:** [October 27, 2025, 10:24am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/14 "2025-10-27T10:24:29Z")

</div>

For reference, here is the same PG when using right handed system on the scene (gltf becomes way simpler to handle):

> **[Babylon.js Playground](https://playground.babylonjs.com/#TOVMEA%232)**
>
> Babylon.js playground is a live editor for Babylon.js WebGL and WebGPU 3D scenes

---

<div class="post-metadata">

**Author:** ![Cedric](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/cedric/32/2742_2.png) [@Cedric](https://forum.babylonjs.com/u/Cedric)\
**Post date:** [October 27, 2025, 11:07am UTC](https://forum.babylonjs.com/t/when-a-mesh-with-scaling-x-1-using-physicsaggregate-its-absolutescaling-will-be-auto-changed-to-vector-1-1-1-why/61089/15 "2025-10-27T11:07:24Z")

</div>

I forgot to mention the example I’ve posted works for LH and RH.
