# Normalized Scale for different size meshes

**URL:** <https://discourse.threejs.org/t/normalized-scale-for-different-size-meshes/22330>\
**Category:** Questions\
**Tags:** math\
**Created:** [January 12, 2021, 5:57am UTC](https://discourse.threejs.org/t/normalized-scale-for-different-size-meshes/22330 "2021-01-12T05:57:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![J\_V](https://avatars.discourse-cdn.com/v4/letter/j/9fc29f/32.png) [@J\_V](https://discourse.threejs.org/u/J_V)\
**Post date:** [January 12, 2021, 5:57am UTC](https://discourse.threejs.org/t/normalized-scale-for-different-size-meshes/22330/1 "2021-01-12T05:57:01Z")

</div>

Hi,  
I have 3 different 3D Models with different scale. Each model is assigned to a button and the model gets instantiated when the button is clicked. How do I avoid models getting instantiated with different size/scale.

---

<div class="post-metadata">

**Author:** ![marquizzo](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/marquizzo/32/25192_2.png) [@marquizzo](https://discourse.threejs.org/u/marquizzo)\
**Post date:** [January 12, 2021, 6:47am UTC](https://discourse.threejs.org/t/normalized-scale-for-different-size-meshes/22330/2 "2021-01-12T06:47:40Z")

</div>

You could get the bounding box of all 3 models, then compare their size with [`Box3.getSize()`](https://threejs.org/docs/#api/en/math/Box3.getSize)

```javascript
var box = new THREE.Box3();
var size1 = new THREE.Vector3()
var size2 = new THREE.Vector3()
var size3 = new THREE.Vector3()
box.setFromObject(obj1).getSize(size1);
box.setFromObject(obj2).getSize(size2);
box.setFromObject(obj3).getSize(size3);

// Now access .x, .y, .z to get width, height or depth.
console.log(size1.x);
console.log(size2.x);

```

Once you know their width, depth, or height, you could compare their dimensions and scale them down. It’s up to you to determine if you want to compare by width, depth or height.

---

<div class="post-metadata">

**Author:** ![prisoner849](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/prisoner849/32/535_2.png) [@prisoner849](https://discourse.threejs.org/u/prisoner849)\
**Post date:** [January 12, 2021, 7:05am UTC](https://discourse.threejs.org/t/normalized-scale-for-different-size-meshes/22330/3 "2021-01-12T07:05:36Z")

</div>

And as an addition: [Does Three have any kind of independent unit? I understand that a unit in Three is abstract, but scale.set seems to be relative to the models imported size - #4 by prisoner849](https://discourse.threejs.org/t/does-three-have-any-kind-of-independent-unit-i-understand-that-a-unit-in-three-is-abstract-but-scale-set-seems-to-be-relative-to-the-models-imported-size/16019/4)

---

<div class="post-metadata">

**Author:** ![J\_V](https://avatars.discourse-cdn.com/v4/letter/j/9fc29f/32.png) [@J\_V](https://discourse.threejs.org/u/J_V)\
**Post date:** [January 12, 2021, 8:43am UTC](https://discourse.threejs.org/t/normalized-scale-for-different-size-meshes/22330/4 "2021-01-12T08:43:05Z")

</div>

Thanks for your help, it’s working!
