Blender units

Hey!

I saw a youtube video a while back where (can’t recall the origin or maker) the person talked about units. And how setting them to anything other than Blender units may impact render time, plugins, and even operations (like booleans).

Is this true at all ?

Maybe not render times, but some things depend on units like physics simulations(Not sure, but the main issue is that they ignore units in Blender as far as I know, but you need to check if that’s true) and also precision issues. Blender stores data in 32bit float format(mostly). That includes coordinates for stuff like vertices. The precision is not infinite. Default Blender unit is 1 meter. If you for example keep that and work with stuff that is hundreds of kilometers or nanometers in size, you will have problems. You can however set Blender up for 1 unit to mean anything so 1 cold be a kilometer, or an inch and that might be very helpful in some cases. Boolean operations may produce problems if stuff is close - like for example if you have overlapping geometry. What is overlapping depends on units. If your unit is set to 1km, you cannot generally work with something of 1 mm in size. There is not enough precision. 32bit floats can usually contain around 6 figures in a number, but it’s a bit more complicated. You can store 300 000 000 just fine, but not 299 792 458… In any case, that’s not a good explanation, just look into 32 bit float precision if you want more info on that. In Blender all you might need is in the Scene properties tab, Units panel:

You generally want to match the units to around the size of objects you are working with. If you work with say room sized objects, 1m is fine, if you are 3d printing something, 1m is still fine, but you may want to switch to 1cm or 1mm, if you are animating a solar system you may want 1 unit to match whatever distances you are working with.

So as an example, if I want to set 1 unit to 1mm, I would set the Unit Scale to 0.001.

2 Likes

It was this video ! → https://www.youtube.com/watch?v=hUfPvHPdgR4
Ill generally be working in cm. So by your account that would mean adjusting to 0.01 unit size

It sometimes happens that what you are working with might not reflect the actual distances. For example it is common for architects to work with millimeters even though they often work with objects that are multiple meters in size. In CAD software that’s fine, because all CAD software uses 64 bit precision, but Blender uses 32bits. It might still be OK to work in millimeters in Blender with architectural projects, but there may be issues and you may want to leave the unit scale at default 1m instead. You can still set the units to be millimeters in that case for easier input, but leave the scale at 1.

It’s sometimes best to not fix what is not broken and if you are working with cm, you can probably still leave the default unit scale without worrying too much, the difference is not that great. I don’t think that would be an issue. It’s up to you though. Changing the unit scale will have some other consequences, like for example, if you import assets into Blender you will have to check if they are scaled correctly. I wouldn’t change meters to centimeters, the difference isn’t that great. Unless you experience issues and know for sure that it would be better in your specific case.

2 Likes

Those are good points.

I was wondering about the unit scale and how that effects collaboration. Or just internal tools or add-ons. What I got from exporting to a slicer was that the slicer saw blender units as mm. So 100 units got converted to 100mm, which is kinda nice, I just have to get used to working in Blender units.

I followed tutorials which recommended I set unit scale to 0.001 and metric with either mm or cm for 3d printing, or just good practice for ‘precision’ modeling.

When working in metric I found, the scale was off. Now you could choose your export size, import size (in slicer). But that’s a few steps I could forget while working.

Here I compare the two options.

Blender Units with a “1cm” cube. So 10 BL equalling 10mm. This works very good with the slicer.

Same cube with units set to Metric.

A blenderkit model, along cube. Way off. Something is way off. I then exported to slicer. Slicer complained it was to small, so I converted the size to mm, and then it seemed accurate.


I’m not quite sure what to do here. Id expect scenes or things imported via Blenderkit to be … I don’ know, accurate I guess.

The only way I could get these models to match up with my units was to do this:

See how the cube is 1cm, in relation now it looks right. Never-mind that I scaled down the cube quite a bit.

I don’t need Blenderkit models, I just want to work in a scale that is productive. I’m sure the calibration cube I got is not wrong, esp since the Slicer is happy with it. I am though now quite confused.

I’m with you, setting the “Unit scale” to 1 (regardless of Unit system) seems to allow one working collaboratively with other creators in which they have not altered the units either. So:

  • files shared are opened consistently in the same size and scale.
  • if one wanted to print these, then just allowing the slicer to convert to mm works, maybe not ideal, but works.
  • Easier input as you mentioned.

Maybe I’m doing this wrong though.

To be honest with you, I model stuff for 3d printing with Unit Scale set to 0.001 myself and in millimeters(even though I am extremely used to entering values in meters). There is no need to set units to None - the guy in the tutorial doesn’t seem to know what he is talking about. All the possible trouble is in the precision issues so it’s just about the scale, but you can still use whatever units that are convenient for you. I find the need to do adjustments that may be 0.01mm for 3d printing and greater precision in this kind of scale is useful to me. I am sure I will notice if whatever slicer interprets my models as 1000 times larger than they should be. I am careful not to give general advice before knowing the context, but I think it’s safe to use millimeters and 0.001 scale for modelling for 3d printing because it has worked for myself for many years just fine.

image

The best thing when collaborating is clear communication in my opinion, so just making sure everyone involved knows what units the files use, if file formats do not support units is the best thing to do. Most popular 3d printing format STL does not support any unit definition so it makes sense to specify what units they are in when sharing in any case as well as importing them into any software. This also means that slicer software must guess the units if you import STL files, because there are no definitions in the files. You might always want to make sure the guesses are correct.

Martin, thank you for all your advice !!

I don’t think you’re going to like what I end up doing. But, I have decided based on your information, to, set my unit measure to ‘Metric’, and just leave the Unit scale as 1.

That way I can

  • Import Blender models, and they don’t flip the scene on it’s head with weird scaling I have to deal with.
  • I can use measurements I am used to and make sense for me, mm, cm, etc. I’m not working as large as meters.
  • And who cares about 3d printing formats. You are 100% right, STL is unitless, so on import just choose to set the import to mm, and it works perfectly.

Thank you very much, I appreciate you’re insightful advice.