Can AI make a 3D model from product photos?

Four AI models built a 3D shoe from four product photos. Fable 5.1 came closest. None of them got the leather right. Our 3D artist had the same photos, and we measured every model against them.

  • Short answer: yes for the shape, not yet for the leather. Fable 5.1 came closest to the photos.
  • The test: four product photos, the size and a short spec. Four AI models built the shoe in Blender, from code. Our 3D artist built the same shoe from the same photos. The client approved it.
  • Round one: all four shipped a shoe and a working colour configurator in 14 to 51 minutes. Not one texture. Our brief never asked for one (we did not think we had to ask; our mistake).
  • Round two: we wrote back like a client, with numbers. All four reached our artist's shape within about 2 mm.
  • Against the photos: the best AI shoe matches the photos as closely as ours does.
  • What none of them got: the leather. Grain, soft creases and the stitch line still read as a render.
  • Fastest and best: GPT-6 Astra took 46 minutes. Fable 5.1 took 1 h 45 min and scored best.
  • Cost at API prices, both rounds: Fable 5.1 $34 · Opus 5.5 $26 · GPT-6 Astra $17 · GPT-6 Sol $8.
The product photo, our artist's model and Fable 5.1, side by side

Four photos, no CAD

In episode one the AI had the maker's CAD file. The geometry came for free. Most brands we talk to have no CAD. They have a product page. So this time the input is what a real client sends: four photos, the overall size and a short spec.

The product is a women's leather ballet flat in burgundy, EU 38. It comes from a brand we talk to, and we leave the brand out. Round toe, low topline, a 5 mm heel and a small pull tab. It looks simple. It is not. You read a flat from its curves and its leather. Both are hard to see in a photo.

Our 3D artist built this shoe from the same photos. The client approved it. That model is our second judge.

Four AI models got the job: Opus 5.5 and Fable 5.1 from Anthropic, GPT-6 Astra and GPT-6 Sol from OpenAI. Same brief, same machine, same start. Blender only, all in code. No web, no downloads, no 3D generators. The job also asks for a colour configurator with six colours that works on a phone.

The four product photographs: side, three-quarter, top and sole
The whole input. The same four photos our artist had.

The photos are the judge

Without CAD there is no exact answer. The photos are the truth. So we measure every model against them first, ours included. From the side we compare the outline and the height of the top edge, millimetre by millimetre. From above we compare the outline and the opening, the dark shape where the foot goes in.

A photo has limits: perspective, shadow and a lens. The pair in the top photo shows how far that goes. The left and the right shoe match each other at 0.965 on the outline and 0.79 on the opening. The pair sets a rough ceiling. A score near those numbers is as good as a photo can tell.

Then we check against our artist's approved model. We compare the outline from three sides and the average gap between the two surfaces in millimetres.

Every 3D image here comes from our artist's own 3D scene: the same light, the same studio and the same camera for every model. We match the camera to each photo, so each 3D image stands next to a photo taken from the same angle.

Round one: the shape, and nothing on it

0

textures, across all four deliveries.

All four delivered a shoe in Blender, a web file and a working configurator with six colours. GPT-6 Astra took 14 minutes. Fable 5.1 took 34, Opus 5.5 37 and GPT-6 Sol 51.

Two shapes came close. Against the side photo, Opus 5.5 and Fable 5.1 beat our own model (0.974 and 0.967 against 0.955). They measured that one photo pixel by pixel, and it shows.

Two shapes were bad. GPT-6 Sol put the sole out like a platform and laid the toe flat on the floor. GPT-6 Astra cut the opening short, dropped the top edge by up to 12 mm and drew the stitching across the front of the shoe. Fable's file carried a white sheen that washes the leather out in a standard viewer. Its own page did not show it.

And every shoe looked like plastic. No grain, no stitch line, no stamp on the sole. One flat colour per part. The reason sits in our brief. It asked for materials, never for textures. We did not think we had to ask. They built what we measured. Our mistake, and the lesson of this round.

Round one: the photo, our model and the four AI models from the front three-quarter view
Round one. Every 3D model in our artist's scene, camera matched to the photo.

Round two: we wrote back like a client

A client does not say try again. A client sends notes. So we measured each shoe and wrote to each model on its own: what we found, in millimetres, and what we want to buy.

Every model got the same package:

  1. Its own findings, with numbers. Fable's rim sat 3 to 5 mm too high. Opus's toe was too square. Astra's stitching sat in the wrong place.
  2. A measurement sheet of our approved model: 25 cross-sections along the shoe, the toe spring, the heel and the leather colour.
  3. A gauge they could run themselves. We use the same script to accept the work.
  4. Twelve close-ups cut from the same four photos: stitching, the pull tab, the toe, the stamp on the sole.
  5. A way of working: shape first, until the gauge passes. Then the surface: UV maps and real textures, drawn in code.

What this changes: from round two on, the models work from our artist's numbers, not only from the photos. That is how a real job runs. The client sends feedback. But this is no longer a photos-only test.

All four passed

1.57 mm

average gap between Fable 5.1's shoe and our artist's. GPT-6 Astra has the widest gap: 2.30 mm.

Every model ran the gauge, fixed the shape and passed. Then each drew its own textures in code: a grain for the leather, a stitch line around the opening and the stamp on the sole, VERO CUOIO, MADE IN ITALY, 38. Round two took 32 to 71 minutes.

Against our artist's model the outline match rose for everyone. Fable 5.1 went from 0.927 to 0.969. GPT-6 Sol made the biggest jump, from 0.840 to 0.951.

Between the measured points the models interpolate, and the interpolation is not perfect. The sheet gives 25 cross-sections. Between them each model guesses the curve. The front view stays the weakest for all four, from 0.88 to 0.93. No photo shows the front, so the shape of the toe box is a guess.

Round two: the photo, our model and the four AI models from the front three-quarter view
Round two. Same scene, same light, camera matched to the photo.

Back to the photos

Now the real test. We put every model back against the four photos, our artist's too. The best AI shoe matches the photos as well as ours does.

One detail tells the story. In round one, Opus 5.5 and Fable 5.1 read the side photo on their own. They matched its outline better than our model did. In round two they followed our artist's numbers, and their outline came back to our artist's level. They followed the client, even where the client and the photo differ by a millimetre or two. That is the right call, and it is why the client's numbers have to be right.

Side view: the photo, our model and the four AI models
From the side. This is the view the top-edge graph below measures.
The height of the top edge along the shoe: the photo, our model and the four AI models
The top edge of the shoe, heel on the left, toe on the right. Gold is the photo.
From above: the photo, our model and the four AI models
From above. This view measures the outline and the opening.
The photo pair, left vs right shoe0.9650.79
Our artist, approved0.9551.7 mm0.9050.81
Fable 5.10.9571.6 mm0.9040.87
Opus 5.50.9432.2 mm0.8990.79
GPT-6 Astra0.9472.1 mm0.9000.76
GPT-6 Sol0.9332.1 mm0.9030.79

Each line is the top edge of the shoe seen from the side. It runs from the heel on the left to the toe on the right. The height is in millimetres above the floor. The spike on the left is the pull tab. The long slope is the opening, lowest at the waist. The bump is where the opening ends and the front of the shoe begins. From there the line falls to the toe. Gold is the photo. The closer a line stays to gold, the closer the shape. All five stay within 2 to 3 mm. Near the toe every 3D line sits a little above gold, ours too. That gap comes from the camera angle of the photo, not from the models.

How we measure: overlap is 1.0 when two outlines are identical. The photo's exact camera is unknown, so every model gets its best of eight side angles, ours included. Numbers are from round two.

Where it still shows: the leather

Put the shoes side by side and you see the surface first. Our artist's leather has a grain that catches the light, soft creases and a stitch line with modelled thread. The AI shoes are too even. They look lacquered, not worn.

Opus 5.5 comes closest on grain. On the toe it looks almost like ours. Fable 5.1 has the cleanest shape and a clear stitch line, but its leather is smooth. GPT-6 Sol leaves a crease across the front and a hard edge at the heel. GPT-6 Astra leaves a fold along the side and the heel.

Colour tells the same story. We gave all four the exact colour of our artist's texture. The scene is lit for our artist's material. In it, the colour saturation is 0.22 for the photo and 0.25 for our artist. The AI shoes come out paler and greyer, at 0.13 to 0.14. The same colour code does not give the same leather. Colour lives in the material and the light, not in a number.

Close-up of the toe: the photo, our model and the four AI models
The toe, from the three-quarter photo. Grain and light.
From above: the opening and the stitch line
The opening and the stitch line, from the top photo.
Close-up of the heel and the pull tab
The heel and the pull tab, from the three-quarter photo.

The configurator

We opened all four pages ourselves, on a desktop and at phone width. All four work. Six colours run from one control. No second download, no errors and no sideways scroll on a phone. The textures stay on the shoe in every colour, metallic Champagne included.

A simple setup like this is easy work for AI. Each model picked its own layout. GPT-6 Astra also built a brand page around the shoe, with a name and a tagline.

The four configurators at phone width
Fable 5.1, Opus 5.5, GPT-6 Astra, GPT-6 Sol. At 375 px.
The same shoe in metallic Champagne in the four configurators
Metallic Champagne, one click away in all four.

What it took

Round one plus round two, measured on the same machine. We did not time our artist on this shoe, so we leave that bar out rather than guess.

We ran the test on flat monthly plans: Claude at $200 and ChatGPT at about €100 a month. So we also ask what it costs at pay-per-token API prices. The token counts come from each model's own logs. All four models, both rounds: $86.

Two things stand out. Opus 5.5 costs less per token than GPT-6 Astra, yet it cost more in total. It read 71 million tokens of its own history back from cache. And round two cost two to four times round one for every model. Round two bought quality, and it was not free.

GPT-6 Astra

46 min

14 min + 32 min

Opus 5.5

1 h 42 min

37 min + 65 min

GPT-6 Sol

1 h 43 min

51 min + 52 min

Fable 5.1

1 h 45 min

34 min + 71 min

Fable 5.1$12.40$21.71$34.117.6
Opus 5.5$9.02$17.13$26.157.2
GPT-6 Astra$3.53$13.73$17.266.1
GPT-6 Sol$1.90$6.40$8.306.7
All four$26.85$58.97$85.82

Opus 5.5 saved five renders outside its folder. It reported this itself. GPT-6 Sol got the wrong brief from us: we pasted another model's folder by mistake. It noticed, said so and stayed in its own folder. GPT-6 Astra invented a brand. At the 25 measured sections, Fable 5.1 hit our sheet to 0.04 mm. It follows the numbers it gets, exactly. Each of these is small. You only find them if you check.

How we price it: token counts from each model's session logs (Claude Code and Codex), times the public API price per million tokens on 28 September 2026. Fable 5.1: $10 in, $50 out, $0.25 cache read. Opus 5.5: $4, $20, $0.20. GPT-6 Astra: $10, $50, $1. GPT-6 Sol: $2, $10, $0.20. Two things can raise these numbers. Claude may bill cache writes at the one-hour rate (Fable up to $44, Opus up to $31). OpenAI adds a surcharge on requests over 272K tokens (Astra up to $33, Sol up to $16). We do not publish our own artist's cost.

The scorecard

These are our scores, after round two. Two rows follow the measurements. The rest is our judgement. Our artist's model is the reference, so we do not score it.

  • 1 to 2 Unusable. Would embarrass the brand if a customer saw it.
  • 3 to 4 Recognisable, but would not pass a client review.
  • 5 to 6 Usable after real rework by an artist.
  • 7 to 8 Client-ready after minor fixes.
  • 9 Near perfect. We would ship it after a final polish.
  • 10 Measured perfect, or indistinguishable from what we deliver.
Shape, against the photos98.58.58.5
Shape, against our artist9.598.58
Leather surface4643
Details: stitching, tab, sole6654
Clean geometry8754
Configurator8888
Followed the brief9687
Overall7.67.26.76.1

Round one would score 2 on the surface for all four.

What this does not prove

  1. One product, one run per model per round. Next week brings a different product.
  2. In round two the models had our artist's measurements. A brand without an approved model cannot send those.
  3. A product photo cannot measure a shoe closer than a few millimetres. Every model here sits inside that range, ours too.
  4. No photo shows the front or the back, so every model guesses that shape, ours included.
  5. We judged the AI builds ourselves. Read it knowing who wrote it.

Questions people ask

Can AI make a 3D model from product photos?
Yes, for the shape. From four product photos of a leather ballet flat, four AI models built a 3D shoe in Blender in 14 to 51 minutes. After one round of client feedback, with 25 measured cross-sections of our artist's model, the best of them matched the photos as closely as our artist's model. The leather surface still did not look real.
How accurate is an AI 3D model made from photos?
In our test, after it got 25 measured cross-sections of our artist's approved model, the best model sat 1.57 mm on average from it. It matched the side photo with an outline overlap of 0.957, against 0.955 for our own model. A product photo cannot tell you much more than that, because of perspective and lens.
Can AI make textures for a 3D product model?
Only when you ask for them. In round one none of the four models made a texture, because our brief did not ask. In round two all four drew UV maps and textures in code: leather grain, a stitch line and the stamp on the sole. The grain still looked too even next to real leather.
How long does AI take to model a shoe in 3D?
Between 46 minutes and 1 hour 45 minutes across two rounds in our test, with a working colour configurator. GPT-6 Astra was the fastest and Fable 5.1 the slowest. The slowest scored best.
How much does it cost to have AI make a 3D model?
In our test, at public API prices, one shoe with a working colour configurator cost $34 with Fable 5.1, $26 with Opus 5.5, $17 with GPT-6 Astra and $8 with GPT-6 Sol, across two rounds. We measured it from the models' own token logs. On a flat monthly plan the run cost nothing extra.
Is an AI 3D model from photos good enough for a product page?
Not on its own yet. The shape and the colour configurator were close to ready. The leather, which is what a customer looks at up close, still read as a render. A person still has to judge and fix the surface against the real product.

From four photos, with our artist's measurements in round two, the best AI model reaches the shape of a shoe as closely as a photo can show it. Fable 5.1 came closest. GPT-6 Astra was the fastest and GPT-6 Sol the cheapest. None of them got the leather. The shape is close to solved. The surface is not.

Your product, next?

We build one product per episode. Suggest the product you would like to see, or request a free 3D model of your own product, made by our team, no strings attached.

Request a free 3D model →

Stefan Stojiljković, founder of Teatika

BUILT ONCE. YOURS TO KEEP. BUILT ONCE. YOURS TO KEEP. BUILT ONCE. YOURS TO KEEP.

Show us your best seller

Send a message, or ask for a free 3D model of one product, no strings attached.

Address

Belgrade, Serbia

Contact

hello@teatika.com

We use optional analytics cookies to understand how visitors use the Teatika website and interactive 3D experience. Rejecting keeps analytics disabled.

Can AI make a 3D model from product photos? | Teatika