11

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?

Glorfindel
  • 636
  • 1
  • 11
  • 18
Hakaishin
  • 577
  • 2
  • 5
  • 18
  • 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. – rob Oct 01 '18 at 11:40
  • 2
    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. – batFINGER Oct 01 '18 at 11:44
  • 10
    I'd just like to point out that "2 meters cubed" is not "2 cubic meters". The default cube is indeed 8 cubic meters! – Nicola Sap Oct 01 '18 at 14:05

6 Answers6

13

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.

Martynas Žiemys
  • 24,274
  • 2
  • 34
  • 77
  • 2
    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. – Jaroslav Jerryno Novotny Oct 01 '18 at 15:34
  • 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. – Martynas Žiemys Oct 01 '18 at 15:46
  • 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 :) – Jaroslav Jerryno Novotny Oct 01 '18 at 15:58
  • 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... – Martynas Žiemys Oct 02 '18 at 07:01
  • 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. – Mark A. Donohoe Jun 10 '20 at 00:13
  • It is hard to argue the downsides and upsides... We all have different habits and perspectives. I always start modelling with a single vertex instead of a cube and don't even have a cube in my startup scene for years now... – Martynas Žiemys Jun 10 '20 at 05:00
6

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".

batFINGER
  • 84,216
  • 10
  • 108
  • 233
  • 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. – Mark A. Donohoe Jun 09 '20 at 20:43
  • 1
    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. – batFINGER Jun 09 '20 at 23:52
  • 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. – Mark A. Donohoe Jun 09 '20 at 23:58
  • 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. – Mark A. Donohoe Jun 10 '20 at 00:01
  • What has volume got to do with anything? Consider a non XYZ symmetrical primitive. If you feel strongly write an answer supporting units. – batFINGER Jun 10 '20 at 00:04
  • But we aren't talking about a non-symmetrical primitive. We are talking specifically about a cube. I'd make the same argument for the sphere, cone and cylinder too. It makes the maths much simpler. Want a 2m tall by 0.5m wide cylinder? Scale it by 2 and 0.5 respectively. Then bake your transformations. Yes, the tool lets you set the dimensions directly, so I concede in the end it's sort of a non-issue anyway, but look at it this way... there's no benefit to starting with 2x2x2 but there is a benefit with a 1x1x1 in that scaling is simpler being a pure multiple and without any down-side. – Mark A. Donohoe Jun 10 '20 at 00:08
  • The default cube is scale 1, 1, 1 and dimension 2., 2, 2. Could adjust all primitives (regardless of symmetry) to unit dimension (in 2d or 3d) to make it "easy" for those that don't understand the distinction between scale and dimension (see answer above). IMO What makes maths easy is if you understand the theory. We graduate from the 1 x table. The OP wanting to scale 2 by 0.1 to get 0.1 shows a lack of understanding. If you want a x b x c dimensions crunch them in as dimensions. If you still want to advocate for unit dimension, take it up with the devs or write an answer. – batFINGER Jun 10 '20 at 00:25
  • As I said, I fully understand the difference between dimension and scale. That's not what is going on here. The question is stating that if he wanted to use the scale tool to end up at the dimension he wanted to, then with a unit cube, it would be much simpler. As I also said, yes, Blender does let you enter the dimensions directly, but that still doesn't address the fact that unit cubes make more sense. Again, what is a single benefit to a 2x2x2 vs a 1x1x1? I've given you a benefit of the 1x1x1 over the 2x2x2 already. So what's the counter? – Mark A. Donohoe Jun 10 '20 at 00:29
  • Sigh. I have no issue with the way that it is. Please read the answer of @JaroslavJerrynoNovotny to which I concur 110%. I have no doubt in the context of opinion yours makes more "sense" to you. I am of another opinion. For the benefit of sanity let's agree to disagree and leave this where it is. – batFINGER Jun 10 '20 at 01:10
4

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.

Jaroslav Jerryno Novotny
  • 51,077
  • 7
  • 129
  • 218
3

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.

lumpynose
  • 656
  • 7
  • 14
2

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.

korda
  • 395
  • 2
  • 9
0

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.

CherryCoke
  • 101
  • 1