TL;DR
- Phone scanners (Polycam, KIRI Engine, RealityScan) export raw geometry that’s sparse, has holes, and is non-manifold—not printable.
- First critical step: normalize scale. Scans export in meters and import at the wrong size. Fix this before anything else or Blender’s voxel remesh produces nothing.
- Blender’s voxel remesh rebuilds the mesh into a guaranteed watertight, manifold shell. Then decimate down to a slicer-friendly polygon budget.
- Export as both STL (geometry) and 3MF (units + compression). Slice in Bambu Studio and print.
- Watch for: voxel size mismatch, color loss after remesh, holes bigger than the voxel size, and X1C build plate limits (256×256mm).
The Photogrammetry Gap
There’s a seductive lie in 3D printing: buy a phone, scan something, print it. In reality, there’s a canyon between a photogrammetry scan and a printable model.
A raw scan from Polycam or KIRI Engine is a point cloud masquerading as geometry. It’s sparse, full of holes where the camera couldn’t see, non-manifold (edges with more than two faces), and utterly hostile to slicing software. Every slicer I know—Bambu Studio, PrusaSlicer, Cura—will choke on it. Some silently fail. Others yell.
I’ve been here. I scanned a small part, spent two hours wondering why Bambu refused to import it, then realized the mesh was a topological nightmare and the scale was off by three orders of magnitude.
The bridge between a scan and a print is Blender’s voxel remesh. It’s the unsung hero of photogrammetry-to-print workflows.
Capture: Polycam, KIRI, RealityScan
Phone scanners are genuinely good now. I’ve used:
- Polycam (free, iOS)—friendly UI, reliable captures, watermarks the free tier
- KIRI Engine (free, iOS/Android)—cleaner output than Polycam, no watermark
- RealityScan (free, iOS)—Epic’s offering, solid results
All three export to .obj, .ply, .gltf, or .glb. Pick any one that works for you. The choice matters less than the capture itself.
Critical detail: These apps export in meters by default. A small object 50mm tall imports as 50 meters, which is absurd. This is the first trap and why normalization must happen before remeshing.
For scanning technique: use a turntable or circle the object slowly, keep lighting consistent, and avoid glossy surfaces (they confuse structure-from-motion). A compact turntable or even a lazy Susan with your phone on a flexible tripod works fine.
Import & Scale Normalization
This step breaks more workflows than any other.
Open Blender. Import your .obj or .gltf. The mesh lands in the viewport at a scale that looks ridiculous—your 50mm object is 50 meters, or invisible because it’s 0.05mm.
Fix it immediately. Use Blender’s scale tool:
- Select the mesh (A key, then click it).
- Press S, then type the scale factor. If your object is 50mm and landed at 50m, type
0.001and press Enter. - Press Ctrl+A → Apply Scale. This bakes the transformation into the geometry.
For digital calipers, measure your physical object and verify the Blender scale matches reality. This takes 30 seconds and saves hours of failed slicing later.
Voxel Remesh: The Magic Button
Blender’s voxel remesh (Geometry → Remesh → Voxel) rebuilds the mesh from scratch using a voxel grid. The output is guaranteed watertight and manifold—two properties that slicers demand.
How to remesh:
- Select the mesh.
- Open the Geometry panel (right sidebar, green wrench icon).
- Click Remesh (if it’s not visible, you need the geometry modifier panel).
- Set Mode to Voxel.
- Adjust Voxel Size. Default is
~0.1units. For a ~100mm object at 1:1 scale, start with0.4(~0.4mm detail retention). - Click Remesh.
Blender computes a signed distance field, then reconstructs the surface. On a decent Mac or Linux box, this takes 5–30 seconds depending on voxel size.
But here’s the trap: If your mesh is at the wrong scale—say, 0.001 units instead of 1 unit—and your voxel size is 0.1, Blender’s voxel grid has nothing to remesh. You get zero output polygons. This is why scale normalization comes first.
The smaller the voxel size, the more detail you retain and the more triangles you generate. Smaller = slower slicing and higher print time, but finer geometry.
The Bambu X1C and its slicer, Bambu Studio (free), stay responsive up to ~500k triangles. Start at 0.4–0.5mm voxels for most objects and refine only if you need the detail.
Decimate: Slicer Budget
After remesh, you have a watertight mesh. Now reduce polygons so Bambu Studio stays responsive.
Decimate modifier:
- Add a Decimate modifier (wrench icon, Add Modifier).
- Set Type to Collapse (not Planar).
- Ratio: start at
0.3(30% of original triangles). Increase if it looks too blocky. - Apply when happy.
Bambu Studio chokes on meshes over ~300k–500k triangles on older machines. A good balance is 150k–250k triangles. Most objects at 0.4–0.5mm voxels + 30–50% decimate hit this sweet spot.
Export: STL vs 3MF
Two formats matter:
STL (Stereolithography):
- Universal—every slicer reads it.
- Geometry only—no color, no units baked in.
- Lossless.
- Use this as your backup.
3MF (3D Manufacturing Format):
- Carries units, color, and compression.
- Bambu loves it.
- Smaller file size than STL.
- Use this for Bambu.
Export both from Blender. The voxel remesh and decimate should be applied before export. Save as .stl and .3mf.
Slicing & Printing in Bambu Studio
Bambu Studio is straightforward:
- Import your
.3mfor.stl. - Verify the preview looks correct and the dimensions match your object.
- Set infill (15% for most parts), support type (tree supports are fast), and material (PLA/PETG reels).
- Slice and send to your printer.
Bambu's X1C has a build plate of 256×256mm. If your scan’s bounding box exceeds this, scale it down or print in pieces.
Gotchas & Lessons Learned
Color is destroyed. Voxel remesh rebuilds geometry from scratch, erasing all vertex color or texture data. If you need color, you’ll need to paint the printed model or use multi-material slicing (a different workflow entirely).
Voxel size too big. If your voxel size is much larger than the features you want to keep, they vanish. A 2mm voxel can’t preserve a 0.5mm detail. Halve the voxel size and retry.
Voxel size too small. The opposite trap. A voxel size smaller than your measurement error is wasteful—you add triangles without gaining detail. Start at 0.4–0.5mm and adjust up if slicing is slow.
Holes bigger than the voxel. If your scan has a hole larger than the voxel size, Blender can’t close it. The remesh output has non-manifold edges around the hole. Either scan again (better capture angle), halve the voxel size, or manually fill the hole in Blender (tedious).
Build plate limits. The Bambu X1C build plate is 256×256mm. Larger scans need scaling. At 50% scale, fine details suffer—check the preview carefully.
Filename encoding. Bambu Studio is happiest with ASCII filenames. Stick to my_scan.3mf rather than mÿ_scän.3mf and you’ll dodge the occasional import hiccup.
Wrapping Up
Phone photogrammetry to 3D print is a real workflow now, not a gimmick. The bridge is three steps:
- Import & normalize scale. Measure your object, import the scan, scale it to reality in Blender, apply the transformation.
- Voxel remesh. Rebuild the mesh as a watertight, manifold shell. Experiment with voxel size (0.3–0.6mm typical).
- Decimate & export. Reduce polygons for the slicer, export
.3mffor Bambu, and verify dimensions in the preview.
Then slice and print.
The gotchas are real—scale, voxel size, holes, color loss—but once you’ve done it once, it’s repeatable. I’ve scanned small parts, fixtures, and even terrain models. They print. Some need post-processing (sanding, painting), but that’s the slicer’s job, not ours.
Show the work. Iterate. And keep calipers nearby.