10
$\begingroup$

I had a very frustrating experience with Blender's UI. In the transform section there is location, rotation and scale and I thought scale would be dimensions, which I found out later it is not. Now I think a lot of people will confuse scale with dimensions (which is not even visible by default). Let's say I want to make a 0.1m cube; I tried to set the scale to 0.1 but since the default cube is 2m my new cube is now 0.2m.

Why is the default cube chosen like this and not the more natural and intuitive 1m3?

Wouldn't a default cube of 1m3 be better since then a naive user who confuses scale with dimensions would still get the desired result when trying to input a cube of length 0.1 and input that number into the scale?

$\endgroup$
3
  • $\begingroup$ When you look at the default cube there is one unit extending in each direction from the centre. One above 0, one below equally two and then the same for X, Y axis. But before I looked I was totally with you. $\endgroup$
    – rob
    Oct 1, 2018 at 11:40
  • 2
    $\begingroup$ My guess is it's arbitrary but IMO sensible choice. Akin to a circle of radius 1 there is no fraction involved for radius vs diameter. All the components of points of the cube have value -1 or 1 and a centre at (0, 0, 0). There are a lot of people clear on the distinction between scale and dimension. eg Scale model cars are rarely larger in dimension than the original. The unit is ideal for a system like the metric system. Your question could be considered a little off-topic as primarily opinion base. $\endgroup$
    – batFINGER
    Oct 1, 2018 at 11:44
  • 10
    $\begingroup$ I'd just like to point out that "2 meters cubed" is not "2 cubic meters". The default cube is indeed 8 cubic meters! $\endgroup$
    – Nicola Sap
    Oct 1, 2018 at 14:05

6 Answers 6

12
$\begingroup$

There is no reason. But the default cube goes 1 unit in every direction, it's the same size as a sphere with a radius of 1 unit as well as for example procedural spherical gradient, a plain axis empty has lines going 1 unit in each direction of all axis as well. If it was 1 unit size and it was centered it would have sides ending at half a unit in all directions, that might be weird. So for what it's worth, it has some sense behind it. I think it is mainly this way, only because it had to be some size, and this is no better or worse than anything else. You can create a cube of any size and hit ctrl+u to save another default file if that makes more sense to you.

$\endgroup$
6
  • 2
    $\begingroup$ The reasons don't stand as much solid arguments. Someone else might see beauty in a system with unit sized cube and sphere with diameter of one and empty with half unit lines etc. For example Houdini uses this concept and it works great. The middle of the answer kind of contradicts the first sentence. $\endgroup$ Oct 1, 2018 at 15:34
  • $\begingroup$ Yes, I agree. There might be many points of view here and no one way is better than another. I don't believe this is extremely important nor that the arguments are or should be solid. I would be surprised if there was any deep philosophical discussion among the developers about it at the time it was decided. It could be one way or the other. Same as with the directions of the coordinates. What axis should point in what direction depends on how you look at it. Literally. It would be interesting to hear a more detailed answer from some developer who might know more about it. $\endgroup$ Oct 1, 2018 at 15:46
  • $\begingroup$ For the axis system there could be a case build that everyone else sticks to the +Y up orientation, even openGL, so Blender is a black sheep here. But the starting primitives everyone does differently, even the way they are put into the scene :) $\endgroup$ Oct 1, 2018 at 15:58
  • $\begingroup$ Oh, but everyone does the axis differently as well - think of all the technical CAD software. Many cases can be built. It's not only the up direction that is different as well. Well, I suppose that does not contribute to answering this question... $\endgroup$ Oct 2, 2018 at 7:01
  • $\begingroup$ I would argue while there is clearly no harm in having a 2x2x2 cube, there is a benefit to a 1x1x1 cube, or 1d sphere or cylinder, etc. What? Scaling to a specific number becomes a multiplication of 1, not 2. Yes, the tool does let you set the dimensions, sort of making it a moot point, but I find myself almost always starting with the cube, scaling it to 50%, baking the transforms to get it back to a scale of 1x while still being a unit cube. Almost every single time! Again, there is no down-side to starting with a 1x1x1 but there is an upside. That's my thought anyway. $\endgroup$ Jun 10, 2020 at 0:13
6
$\begingroup$

Learn the distinction between scale and dimension.

The accepted answer explains re arbitrary but logical choice of default cube dimensions. All default objects are added with unit scale.

Wouldn't a default cube of 1m^3 be better since then a naive user who confuses scale with dimensions would still get the desired result when trying to input a cube of length 0.1 and input that number into the scale?

I say no. As soon as a primitive object is not unit in all dimensions it will no longer be the case that scale matches dimension. Better to learn the distinction between them.

An object is "full size" at unit scale (default). This is a fundamental of 3D maths. An object is transformed in 3D space using a matrix where unit scale, not dimension, is used along with zero location and rotation as default. An objects dimensions are determined by its data, (a mesh for a mesh object). and can be any size. The dimension of the local data in the mesh is always the same as those of the (unmodified) object at unit scale.

Setting the dimensions alters the scale. Setting the scale alters the dimensions. eg the x dimension of default cube is 2 and we want it to be 1. Setting the dimension.x to 1 then scale.x is adjusted accordingly to 0.5. Or dually change scale to 0.5 and dimension is adjusted to 1.

If we now apply that scale (make it unit) the dimensions stay the same. We have changed what we consider to be "full size".

$\endgroup$
9
  • $\begingroup$ I don't think you understand the question. You're referring to the panel creating a dimension of 1 which adjusts the scale, but the underlying vertices are still at a dimension of 2. What the OP is saying is the underlying vertex data should create a unit cube where the geometry is 1m apart, hence both the dimension and the scale would be 1. $\endgroup$ Jun 9, 2020 at 20:43
  • 1
    $\begingroup$ I don' think you understand the answer. The OP doesn't understand the distinction of scale and dimension, setting all (for cube) geom to halves so dimension matches scale isn't going to help that. Consider that in mathis the unit circle has radius 1 not diameter. $\endgroup$
    – batFINGER
    Jun 9, 2020 at 23:52
  • $\begingroup$ If you read your answer, your comment "Setting the dimensions alters the scale. Setting the scale alters the dimensions" but that's only referring to the tool because it implicitly scales it (overriding the actual virtex dimensions.) The original question says make the original geometry (i.e. the vertices) represent a 1x1x1 cube so the scale is a unit scale of 1. You also said "As soon as a primitive object is not unit in all dimensions..." but that's just it... a 2x2x2 cube is not a unit in any dimension. It is 2 in all dimensions and has a volume of 8, hence it is not a unit volume. $\endgroup$ Jun 9, 2020 at 23:58
  • $\begingroup$ Yes, he misunderstood the terminology, but he used it correctly. He wants a 0.1m cube so he would think to scale a 1m cube by 0.1. However, he has to scale it by 0.2 because the cube is 2x2x2. So, bringing in a cube at 1x1x1m and he wants it at 0.1, he would simply scale it by 0.1. He wants it at 5, scale it at 5. You bringing up the unit circle is irrelevant because that's used for angular calculations not volumetric dimensions. $\endgroup$ Jun 10, 2020 at 0:01
  • $\begingroup$ What has volume got to do with anything? Consider a non XYZ symmetrical primitive. If you feel strongly write an answer supporting units. $\endgroup$
    – batFINGER
    Jun 10, 2020 at 0:04
4
$\begingroup$

Wouldn't a default cube of 1m3 be better since then a naive user who confuses scale with dimensions would still get the desired result when trying to input a cube of length 0.1 and input that number into the scale?

If it was better, it wouldn't be for the reason you suggest. Someone's confusion is not a reason to change this so he/she can keep being confused. The fix would be in the UI, but I don't think it is not good enough as it is.

That being said most other 3D apps use a single unit sized cube - for example Houdini and Maya:

enter image description here

In Maya you get a sphere with radius of 1, in Houdini you get a sphere with diameter of 1. So in the end every app does something different.

I am sure there can be found arguments why this or that is better, it would be opinions mostly and what the user is used to. There is no single natural intuitive approach.

The Blender cube has 2m sides, because a developer coding Blender (Ton probably at that time) some day woke up and decided on his personal preference that it will be 2m wide - the decision process was probably that a sphere will have a radius of 1 and the cube will correspond with sphere's diameter. And it stayed since because it doesn't really matter.

$\endgroup$
3
$\begingroup$

The scale input/value is "dimensionless" so changing it to 0.1 means 0.1 times whatever the original dimension/size was.

If you need specific dimensions note that you can type in values into the Dimensions x, y, z boxes on the right, and that will change the Scale values accordingly.

$\endgroup$
2
$\begingroup$

I'm surprised that no one wrote about one more reason: all vertexes have locations consisting of combinations of 1 and -1. Nice, basic numbers - just as programmers love them.

1 is a very specific number that has some nice properties. 0.5 would ruin all of that.

$\endgroup$
0
$\begingroup$

I can't comment because my reputation doesn't carry over. To the ones that said scale adjusts the dims, sure. okay - you're missing the point.

To the guy that said it's because there's inherent beauty in causing people to get mad, go insane trying to figure out idiotic scales to model a real world object... I just want to ask you this. Model a simple, hand built set of steps some time using real world dimensions, and then in the middle of your frustration, remember that you said that it was beautiful and you can't see any difference. Also, note that transferring the object to any other program, such as Unity, or 3d printer, completely destroys the dimensions.

And to the person that pointed out the "one more reason: all vertices..." base vertices would be expressed in floating point numbers, so, your example should be stated as -1 to 1... meaning that 0.5 would be a very easy, and a nice, neat number to have. but 100% props for thinking, and not missing the point.

The simplest answer is that the programmers chose radius instead of logical dimensions because they were drop on their heads as children and fed a diet of lead paint chips. And, it's this reason that blender is not accepted at any of the companies that I have ever applied for, worked for, or managed. Including my own company.

To be honest, I have never seen a cube expressed in radius as it's primary measurement.

In my mind, I would say that the better question to ask is ... how do we just fix the underlying object so that we can move on with life? I ask this because for me, sadly, Maya is currently not an option... though I would make religious sacrifices to the dark gods if they made it an option.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.