To scale a 3D scan to real-world size, measure one known distance on the real object, measure the same distance on the scan, and multiply the whole model by the real value divided by the scanned value. The reliable way to get that known distance is to place a reference of known length in the scene before you scan, then confirm the result on a second dimension and export in a unit the next program expects.
Why does a 3D scan come out the wrong size?
Two different problems look the same on screen, and they need different fixes.
The first is a scan that never had a real scale. Photogrammetry rebuilds shape from overlapping photos, and photos alone do not tell the software how big the object is: a toy car photographed up close and a real car photographed from across the street can produce nearly identical images. The software solves the geometry up to an unknown size and works in an arbitrary unit. Depth data changes this. Apple's developer documentation for Object Capture explains that iPhone cameras can capture depth data along with the image, and that providing it can help determine the real-world scale of the photographed object, so the model comes out correctly sized for placement in AR. A capture without depth data needs a reference that you supply.
The second problem is a scan that had the right size when it was exported but opens at the wrong size somewhere else. The common STL format does not contain any scale information; its coordinates are in arbitrary units, so the program that opens the file decides what one unit means. A model saved with meters as the unit opens a thousand times too small in a program that reads the same numbers as millimeters.
A quick way to tell the two apart is to divide the size you expected by the size you got. If the ratio is a clean conversion factor, such as 10, 25.4, 100 or 1,000, you have a unit mismatch, and the fix is a unit setting or one conversion. If the ratio is an odd number with no pattern, the scan never had real scale, and you need a reference measurement.
What reference should you put in the scene before scanning?
Agisoft's Metashape Professional manual (version 2.2, published in 2025) gives the standard advice: if you plan to take measurements from the reconstructed model, place at least two markers with a known distance between them on the object, or put a ruler within the shooting area. That reference is what turns an arbitrary model into one with real dimensions.
A few rules make the reference worth having:
- Make it long. Your error in picking the two end points on the mesh stays roughly the same whatever the length, so a longer reference turns it into a smaller share of the total. Choose a reference that spans a large part of the object, not a short tab in one corner.
- Keep it in the same zone as the object. Place it next to or on the object, at about the same distance from the camera, and capture it in many of the same shots, so it reconstructs as cleanly as the object does.
- Use crisp, matte marks. Printed targets, a steel rule with clear engravings, or two pieces of tape with a cross drawn on each reconstruct well. Glossy or thin edges come out soft, and then you end up measuring noise. Our guide to scanning shiny, black or transparent objects covers surfaces that smear.
- Measure the reference with a better tool than the scan. Use calipers or a tape on the physical reference and write the number down before you start.
- Add a second reference at right angles. One reference sets the scale; the second one lets you check it.
If you already scanned without a reference, look for a dimension on the object itself that you can still measure in real life: the spacing of two mounting holes, the length of a box edge, the width of a door frame. Choose the longest straight feature with sharp ends.
How do you calculate and apply the scale factor?
The factor is the real length divided by the scanned length. Say the two marks on your ruler are 300 mm apart and the scan reads 0.1 units between the same marks. If one unit in the file should equal one millimeter, the factor is 3,000; if one unit should equal one meter, the factor is 3.
In a general 3D editor, using Blender as the example:
- Import the scan and set the scene units you want to work in.
- Measure the reference on the mesh. Blender's Measure tool lets you drag a ruler between two points, snaps the ends to edges and vertices while you hold Ctrl, and shows the reading in the scene's unit settings.
- Divide the real length by the measured length to get the factor.
- Scale the object uniformly by that factor, the same value on X, Y and Z. You can type it into the object's scale fields in the Sidebar while the ruler is still shown.
- Apply the scale (Object > Apply > Scale) so the vertices carry the new size instead of keeping it as an object setting, then measure the reference again. It should now read its real length.
If you process photos in Metashape Professional, you can set the scale inside the reconstruction instead. Place markers on both ends of the reference, create a scale bar between them, and enter its known length in meters on the Reference pane, then run the optimization. The manual adds that scale bars are not enough to define a coordinate system, but they are enough for taking measurements, which is what most scanning jobs need.
Never scale one axis on its own to make a single dimension come out right. If the length is correct but the width is off, the scan is distorted, not mis-scaled, and stretching it hides the problem instead of fixing it.
How do you check that the scale is right?
A scale you have not checked is a guess. After scaling:
- Measure the second reference, ideally at right angles to the first. If both agree with their real values within your tolerance, the scale is good.
- Measure one overall dimension of the object, such as total length, and compare it with a tape or caliper reading.
- Measure between flat faces rather than to rounded edges or thin features, which reconstruct less sharply and give less repeatable readings.
- If the two references disagree in a way that uniform scaling cannot fix, rescan with better overlap and coverage rather than adjusting further.
How close is close enough depends on the job: a model for an AR preview can live with more error than a part that has to fit a bracket. For accuracy targets and capture settings, see how to get accurate measurements from a 3D scan.
Which export formats keep the real-world size?
The scale you set is only as good as the way the next program reads the file.
| Format | Does the file record its unit? | What goes wrong |
|---|---|---|
| STL | No, the coordinates are in arbitrary units | The importing program assumes a unit, and a mismatch shows up as a clean factor such as 10, 25.4 or 1,000 |
| USD / USDZ | Yes, as metersPerUnit metadata for the whole stage |
If the value is missing, the file is treated as centimeters, so a model written in meters opens 100 times too small |
For STL, settle the unit before export: find out which unit the receiving program reads, usually from its import settings or the person who will print the file, and scale the model so that one unit equals that unit. For USD and USDZ, the OpenUSD specification encodes linear units as meters per unit for the whole stage and falls back to 0.01, meaning centimeters, when no value is authored. If an exported USDZ opens a hundred times off, check that value first. Our article on exporting a 3D scan to STL, OBJ or USDZ walks through the export settings.
What is the fastest workflow with a phone?
On a phone, most of the work happens before you press the capture button.
- Put a reference of known length beside the object, on the same surface, and measure it with a tape or calipers.
- Scan the object and the reference together. If you scan with MagiScan, which turns an iPhone or Android phone into a 3D scanner and measuring tool, keep the reference in frame as you move around the object so it becomes part of the model. If the capture includes depth data, the model can come out close to its real size, and the reference becomes your check rather than your fix. If you build the model from ordinary photos without depth, as described in how to 3D scan without LiDAR on an iPhone, the reference is what gives the model its size.
- Measure the reference on the finished scan before you send the file anywhere, and compare the reading with your tape or caliper value.
- If the reading is off, scale by the real length divided by the measured length, then check the second reference.
- Export with a known unit and measure once more in the program that opens the file.
The habit is the same whatever the destination. MagiScan exports scans for 3D printing, AR and e-commerce, and each of those destinations reads units its own way, so a reference in the scene, one uniform scale factor, a second measurement and a unit check on the receiving side are what keep the model at its real size.
Frequently Asked Questions
Can I scale a 3D scan if I did not use a reference object?
Yes, if the scan contains a feature you can still measure on the real object, such as the spacing of two holes or the length of an edge. Measure it in real life and on the mesh, then scale by the ratio. If nothing in the scan has a known size, you can only estimate, and the result should not be used for fit or packaging decisions.
Why does my scan open exactly 25.4 or 1,000 times too small?
That is a unit mismatch, not a scanning error. STL files carry no unit, so a model saved in inches or meters opens far too small in a program that reads the same numbers as millimeters. Rescale by the conversion factor or export again with the unit the receiving program expects.
Should I scale each axis separately to match my measurements?
No. A sound scan needs one uniform factor on all three axes. If the length matches but the width does not after uniform scaling, the reconstruction is distorted, and the fix is a better capture with more overlap rather than a stretch.
Does a scan made with depth data still need a reference?
It needs a check rather than a fix. Depth data can help the reconstruction reach real-world scale, but measuring one known dimension is how you confirm the size before you print the model or send it to someone else.