# From a photo to a printable part: what AI can and cannot do

Meshra's photo-to-part turns a reference picture into a parametric CAD approximation, not a 3D scan. What it gets right, what it cannot do, and how to help it.

---

Take a photo of a broken cabinet knob, a bracket you need to replace, or a toy
part your kid snapped in half, and Meshra can turn it into a parametric CAD part
you can resize and print. That sounds close to magic, so it is worth being exact
about what is actually happening, because the honest version is more useful than
the impressive-sounding one.

## What photo-to-part actually is

In the builder, the chat input has a paperclip icon next to the text box. Attach
a photo, optionally add a sentence of context ("a cable clip like this one, but
for a 12 mm cable"), and send it. Under the hood, three things happen before the
model ever sees your image:

1. Your photo is downscaled in the browser to a maximum of 1024 pixels on the
   longest edge and re-encoded as JPEG. This keeps the upload small and fast, and
   1024 px is plenty of detail for a model to read overall shape and features.
   Nothing you upload gets sent at full resolution.
2. The downscaled image is attached as a reference block alongside your prompt
   and sent to Meshra's vision-capable generation model.
3. The model is explicitly instructed to treat the photo as a visual guide, not
   a target to reproduce exactly. It infers overall form, proportions, and the
   main functional features (holes, slots, ribs, rounded edges, wall structure),
   then writes CadQuery code, the same parametric CAD scripting language used for
   every other Meshra generation, choosing sensible real-world millimeter
   dimensions.

That last point is the whole story: your photo becomes a hint for a language
model writing engineering code, not input to a 3D scanner. There is no
photogrammetry, no depth sensing, no neural mesh reconstruction happening
anywhere in this pipeline. What comes out the other end is a parametric solid,
the same kind of exact, editable geometry every Meshra part is built from, just
guided by a picture instead of only a sentence.

Because it is a reference-guided approximation rather than a scan, photo
generations always start a brand-new part (they cannot patch an existing one),
skip the prompt cache that speeds up repeated text prompts, and draw from the
same paid generation quota as a text-only prompt. There is no separate "photo
credit"; it is priced and gated exactly like any other generation on your plan.

## What it is good at

Give the model a clear, well-lit photo of a rigid, mostly geometric object, and
it is genuinely useful for:

**Proportions and overall form.** If you photograph a rectangular phone stand
with a 60-degree tilt, you will get back a rectangular stand tilted at roughly
that angle, not a random enclosure shape. The model is reading the silhouette
and aspect ratios and translating them into real dimensions.

**Feature layout.** Two mounting holes near the top corners, a slot down the
middle, a lip around the edge: these kinds of functional features tend to show
up in the output in roughly the right places, because they are visually obvious
in a photo even at 1024 px.

**A starting point you can dimension precisely.** This is the part people
underestimate. A photo alone can only tell the model "this looks like it's
roughly this shape." Add one dimension in your prompt (the diameter of a known
bolt, the width of a card slot, the height of a shelf) and the model has an
anchor to scale everything else against. That single number does more for
accuracy than a much higher-resolution photo would.

**Objects with simple, planar or cylindrical geometry.** Brackets, stands,
boxes, clips, mounts, spacers, most everyday hardware. These are exactly the
shapes CadQuery is built to construct precisely: extrudes, fillets, bores,
patterns.

## What it is not, and will not become by uploading a better photo

**It is not a 3D scan.** A scanner captures the actual surface of the physical
object, point by point, from multiple angles or a depth sensor. Meshra's
photo-to-part looks at one 2D image and writes code describing what it infers
the object probably is. The output is Meshra's interpretation of your object,
built from primitives like extrudes and cuts, not a captured copy of it.

**It will not reproduce an exact replica.** If you need a part that matches an
original to within a tenth of a millimeter (a replacement gear tooth profile, a
snap-fit connector that has to mate with an existing assembly), a photo will not
get you there. The model does not know the true dimensions of anything in a
photo; it estimates them from proportions and picks "reasonable everyday sizes"
when the scale is genuinely ambiguous. Give it real numbers in your prompt for
anything that has to fit precisely.

**It will not capture surface texture, color, logos, or fine organic detail.**
The model is explicitly told to simplify: no attempt to reproduce a woodgrain
finish, a printed logo, or the exact wavy contour of a hand-carved handle. What
you get is clean, printable geometry, which is usually what you want for a
functional replacement part, but it means photo-to-part is a poor fit for
anything where the point is capturing an organic or decorative shape exactly as
it exists (a sculpted figurine, a face, a natural object). CadQuery builds parts
out of geometric primitives; it is not a sculpting tool, and a photo cannot
change that.

**It will not infer dimensions you never provide and the photo does not make
obvious.** A photo tells the model roughly what something looks like, not how
big it is in the real world, unless there is a size reference in frame (a coin
next to the part, a ruler, a known-size object like a standard USB connector) or
you state a dimension in words. Without either, expect the model to pick
reasonable round numbers rather than your object's actual size.

<TryMeshra />

## How to get the best result

The gap between "recognizable" and "actually usable" output comes down to how
you combine the photo with your prompt. A few habits that consistently help:

- **State at least one real dimension.** "This bracket is about 80 mm long" or
  "the mounting holes are for M4 screws" gives the model a scale anchor instead
  of a guess.
- **Describe function, not just appearance.** "It needs to clip onto a 15 mm
  shelf edge" tells the model what the geometry has to do, which it cannot
  always infer from a photo alone.
- **Photograph the object straight-on or at a clear three-quarter angle**, in
  even light, against a plain background if you can. Extreme angles, harsh
  shadows, or clutter make it harder to read proportions correctly.
- **Treat the first result as a draft, not a delivery.** Since photo generations
  always create a new part, the fastest way to fix something off is a follow-up
  chat message describing the correction ("make the base 10 mm thicker",
  "move the holes 5 mm further apart"), the same modification flow used for any
  text-based part.
- **Use the parameter sliders once you have a result.** Every dimension the
  model recognized becomes a slider in the parameter drawer, so if the overall
  shape is right but the scale is off, you can often nudge it into place without
  writing a new prompt at all, at no extra cost since parameter changes
  re-execute the same code deterministically.

Once you are happy with the geometry, export it the same way as any other
Meshra part: STEP for CAD interchange and CNC quoting, STL for your slicer, or
GLB for a quick web preview. The output file formats do not know or care that
the part started life as a photo.

## The honest pitch

Photo-to-part is not a way to duplicate the physical world. It is a faster way
to start a parametric CAD design when a photo communicates the shape better than
you could type it out, especially for a first-pass form and rough feature
layout. Pair it with a dimension or two in your prompt, expect to iterate with
the chat and the sliders, and it earns its place in the workflow. Expect it to
hand you an exact digital twin of the object in the photo, and you will be
disappointed, because that is a different problem (3D scanning) that Meshra is
not solving here.

If you want to see the same underlying parametric pipeline without a photo, read
[From a sentence to a printable part](/blog/from-a-sentence-to-a-printable-part)
for the full generation-to-export walkthrough. Or browse the
[template gallery](/templates) for parts you can derive and inspect for free,
no photo or prompt required. Ready to try it with your own reference photo?
[Sign up](/sign-up) and attach one from the builder's chat panel, or check the
[pricing page](/pricing) to see how photo generations fit into your plan's
quota.
