Decorative-object photogrammetry: preparing a printable scan
You want to reproduce a bust, an ornament, or a garden figure from photos instead of a dedicated scanner. Meshroom, an open source photogrammetry tool, documents a full pipeline from images to a textured mesh. This page follows that documented order, then walks through the geometry and sizing checks you do in the slicer. It does not pick a scanner and does not promise measurement accuracy.
The short answer
The documented Meshroom pipeline reconstructs a 3D model from images, and the linked tutorial describes a textured OBJ with MTL and texture files. That workflow does not set a physical dimension or prove that a mesh is watertight or ready to print. In PrusaSlicer, size fields and scaling tools let you choose a working size; a known dimension can be used as a reference, but scaling cannot correct scan distortion. Prusa’s corrupted-model article describes repairs that may fail or reduce resolution.
What a photogrammetry scan actually gives you
The default pipeline in the Meshroom manual reconstructs a 3D model from 2D images. The beginner tutorial describes its own output as a textured OBJ mesh with MTL and texture files, then shows publishing it to Sketchfab. These documents do not provide a procedure for measuring the real object, setting physical scale or checking mesh watertightness. Treat the OBJ and related files as reconstruction outputs to inspect before another use.
This page limits its example to preparing a decorative object intended to be viewed. For a part that must fit another, check shape and dimensions against the actual assembly need; the Meshroom tutorial does not provide a metrology method. The software produces a reconstruction and texture, but their suitability remains to be assessed in the next tools. This page connects the Meshroom workflow to Prusa’s documented size-manipulation and repair features without claiming a result for any particular scan.
Shooting the photos the way the Meshroom tutorial describes
The Meshroom tutorial is blunt about it: shooting quality is the most important and most challenging part of the process, and it has dramatic impacts on the final mesh. The main goal is sharp images with no motion blur and no depth blur. To get there, the tutorial recommends a tripod or a fast shutter speed, a smaller aperture with a higher f-number for more depth of field, and a low ISO to keep noise down.
It also frames the shoot as a compromise between scene size, material properties, texture quality, available time, amount and variation of light, and the camera's own quality and settings. For a decorative object, that translates into steady lighting and a subject that does not move during the series. Meshroom reads the image metadata to set up the scene and leans on a camera sensor database to work out internal camera parameters. If metadata is missing or the device is unknown, an explicit warning appears. The process still runs, but results may be degraded. Shoot with a camera that writes metadata whenever you can, and since the tutorial lists varying light among the constraints, finish the set in one lighting condition.
Running the reconstruction: the default pipeline nodes
According to the Meshroom manual, the default pipeline chains eleven nodes in this order: CameraInit, FeatureExtraction, ImageMatching, FeatureMatching, StructureFromMotion, PrepareDenseScene, DepthMap, DepthMapFilter, Meshing, MeshFiltering, and Texturing. The tutorial folds that chain into two big steps. Structure-from-Motion infers the rigid scene structure as 3D points along with the pose and internal calibration of every camera, and its result is a sparse point cloud in Alembic format. MultiView-Stereo then uses those calibrated cameras to build a dense surface and texture it.
In practice, you save the project with File, Save As, drop your photos into the Images area, and press Start. Everything Meshroom computes lands in a MeshroomCache folder next to the project file, and the project stays portable with that folder. A colored progress bar shows the state of each step: green for computed, orange for computing, blue for submitted, red for error. On hardware, the tutorial says an Nvidia GPU is required for dense high quality mesh generation and that 32 GB of RAM is recommended for meshing, with parameters you can adjust if you fall short of that. These figures are the cited tutorial’s requirements, not a setup tested here; check the requirements for the version you install.
Check the Structure-from-Motion result before the heavy steps
The Meshroom tutorial recommends working iteratively, and the first iteration is to compute only the StructureFromMotion node by right-clicking it and choosing Compute. According to the tutorial, that is the best way to tell whether the reconstruction is likely to succeed before you start the rest. It names two indicators: the number of reconstructed cameras, shown with a green camera icon in the Images panel, and the look and density of the sparse point cloud. If the result disappoints, the tutorial suggests setting the Describer Preset on the FeatureExtraction node to high, or even ultra for a small dataset, and enabling akaze under Describer Type on FeatureExtraction, FeatureMatching, and StructureFromMotion.
The tutorial also describes a draft mesh built straight from the SfM output: duplicate the branch from DepthMap, remove DepthMap and DepthMapFilter, then connect PrepareDenseScene to Meshing and to Texturing. This shortcut skips the most computation-intensive step and works without an Nvidia GPU, but it will not reach the quality of the default pipeline and only works on highly textured subjects. Use it as a quick preview before committing to the dense computation, or to narrow the reconstructed area by raising the Min Observations Angle For SfM Space Estimation parameter so background elements drop out.
Inspect and simplify the mesh before you export
Once the whole pipeline finishes, the Load Model button at the bottom of the 3D Viewer loads the textured mesh. The tutorial notes there is no export step: the files are already on disk. Right-click the Texturing media and choose Open Containing Folder to reach the OBJ and texture files. Look the shape over on screen first. Click and drag to orbit, double-click on geometry to recenter the view, and use the wheel to zoom. Hunt for missing areas, background pieces that got reconstructed by mistake, and noisy surfaces.
The tutorial shows how to cut the polygon count with a MeshDecimate node fed from the MeshFiltering output, using a maximum of 100,000 vertices as its example, then how to retexture that lighter mesh with a second Texturing node. It also says a mesh cleaned up in outside software can be retextured by Meshroom, as long as it stays in the same 3D space, meaning no change to scale or orientation. For a monochrome shape in the proposed workflow, inspect geometry: a color texture does not automatically become relief in the mesh. Which file format to hand the slicer is covered in the STL vs 3MF guide.
Repair and size the mesh in the slicer
Prusa’s knowledge base explains that some models are corrupted and that PrusaSlicer cannot automatically repair every defect. It cites a “Fix by the Netfabb” workflow on Windows 10 and external tools whose current availability was not checked here; it notes that solutions vary by model and that Make solid can reduce resolution. For a scan, inspect warnings and geometry, then visually review any repaired copy before proceeding: the absence of a warning does not demonstrate watertightness or printability.
Then comes size. The cited Meshroom tutorial does not describe setting physical scale. PrusaSlicer's object manipulation panel lets you type in position, rotation, scale factor, and size. Choose a known extent of the object, such as overall height in a defined orientation, and check that it matches the size field being adjusted. A distance between two arbitrary details is not automatically that overall extent. Use uniform scaling to preserve proportions and inspect all three dimensions afterward. If the size is a design choice, just type the height you want. Prusa explains that in world coordinates the size changes as you rotate the object, while it stays constant in object coordinates. This scaling does not correct a distorted reconstruction, and a part that has to fit something belongs on the dimensional accuracy page.
Sources and limits
- Meshroom manual — Photogrammetry Pipeline, develop branch
- Meshroom manual — Tutorial: Meshroom for Beginners
- Corrupted 3D models for printing — Prusa Knowledge Base
- Object manipulation panel — Prusa Knowledge Base
- Move, Rotate, Scale tools — Prusa Knowledge Base
We organize manufacturer and community documentation; we have not measured these products ourselves. The manual for your exact model takes precedence over general guidance.
A clearer shortlist starts with your projects.
Use the free buying checklist and budget worksheet before comparing offers.