We tested 41 AI image-to-3D engines (August 2026)
Run date 2026-08-29 · Published 2026-08-29 · By the PolyMedium team · A qualitative review: single runs, judged by eye, against a fixed control
PolyMedium is not built on one engine. It routes every upload across a bench of engines, because the single most important finding in this data is that no engine wins on every subject: the engine with the best dog face loses the character, the cheapest engine ties the field on vehicles and melts on animals, and the most expensive one never wins raw fidelity but is the only one that ships game-ready topology. This page is the evidence. On 2026-08-29 we ran every live image-to-3D endpoint on fal.ai, all 41 of them, against our draft engine (TRELLIS 1) as a fixed control. 18 endpoints were screened head-to-head; the other 23 are excluded below, each with its reason. Survivors ran across five subjects chosen for specific failure modes, and every output was rendered as an identical six-view Blender ring so nothing could hide behind a flattering angle.
The headline findings, including the ones that go against us: Rodin v2.5 beat our own TRELLIS 2 on the game character (facial likeness, engraved armour, cloak embroidery). SAM-3 Objects matched TRELLIS 1 at the identical price and was 3x faster, and it beat our control outright on the dog's face. Meshy v7 was the one genuinely additive engine: game-ready topology by default, real part separation, rigging in the same call. On the other side: Hunyuan 3.1 Rapid cannot emit a GLB at all, the Hunyuan v2 family hallucinated blue wheels, and three engines quietly bill up to 3x their advertised price for texture.
Where we lost
A vendor-run review is only worth reading if the vendor can lose in it. We did, three times:
- Rodin v2.5 beats our TRELLIS 2 on the character. The reference's actual likeness comes through (brow, cheekbones, hair strands), plus engraved armour and embroidery on the cloak hem. It also beats both TRELLIS 2 and Hunyuan 3.1 Pro on the dog's head. The trade: a higher price band, and roughly 2x slower.
- SAM-3 Objects matches TRELLIS 1 at the same price and is 3x faster (24s vs about 75s). On the lying dog, our control's worst failure, it produces a face with actual eyes, nose and ears where TRELLIS 1 produces a blob. It is clearly worse on characters and it silently dropped the dragon's flame, so it is a second source, not a replacement. But at the draft price point it is a real peer.
- Meshy v7 is the one genuinely additive engine in the catalog. It never wins on raw fidelity, but it is the only engine that reconstructed the character's sword as a separate blade and the dragon's flame as a real volumetric jet, it ships game-ready ~30k-triangle topology by default, and it offers rigging and animation in the same call. Nothing in our stack does that.
Method
- One reference image per subject, byte-identical for every engine. The five references are cleaned, restaged images from prior validated runs, re-uploaded once and reused by URL. Byte-identity was verified by content length, which is what makes the reused TRELLIS 1 control GLBs valid rather than approximate.
- Two stages. Stage A screens the whole credible catalog on one subject (the go-kart). Stage B advances the survivors to all five subjects.
- A six-view ring, not a hero angle. Every GLB gets a 6-view ring at 60 degree steps from one headless Blender scene: identical three-point studio rig, AgX view transform, bounding-sphere framing solved once over all ring angles so scale is constant across engines. Engines disagree about which way "front" is, and a fixed azimuth would silently score some of them on their back.
- One material normalisation, applied to everyone. Principled BSDF metallic forced to 0. glTF defaults metallicFactor to 1.0 and the TRELLIS family omits it, so without this the control renders black. Applying it to all engines equally is the only way the grid stays comparable.
- Single runs, judged by eye — which is why this page calls itself a qualitative review, not a benchmark. Every survivor got one run per subject under a hard spend cap. That is enough to rank who is good at what and to catch structural failures; it is not enough to publish failure rates or variance, and we don't pretend otherwise. If you need quantitative numbers, run your own — the method above is fully described.
The five subjects
| Subject | Why it is in the set |
|---|---|
| Sneaker | Hard matting: laces, thin eyelets, a dark sole against a dark upper. |
| Go-kart | Mechanical detail: tubular frame, negative space, an exposed engine. |
| Dog on a couch | A real animal in a lying pose (pose-locked redo). The hardest case in the set. |
| Game character | A stylized character: armoured ranger, cloak, sword, layered belts. |
| Crayon dragon | A made-real doodle: a child's crayon dragon turned into a toy-style reference. |
All 41 endpoints, accounted for
fal.ai's image-to-3D category listed 41 live endpoints on 2026-08-29, none flagged deprecated. Notably absent from the platform entirely: InstantMesh and Stable Fast 3D, both searched for by name and gone. We screened 18 endpoints and excluded 23; every exclusion has a stated reason, so the whole catalog is accounted for.
Stage A screen: 18 endpoints, one go-kart each
Identical input image, best-practice default parameters, one run each. Price is a relative band within the field on the run date, from ↑ (budget) to ↑↑↑↑ (premium). We don't republish vendors' per-run prices; they change, and their pricing pages are authoritative.
| Engine | Endpoint | Price | Time | Triangles | MB | Texture KB | Maps | Verdict |
|---|---|---|---|---|---|---|---|---|
| TRELLIS 1(control) | fal-ai/trellis | ↑ | 75s* | 17,451 | 5.4 | 4,987 | baseColor | Baseline. Coherent, soft, blobby bumpers, mushy rear. |
| TRELLIS 2(control) | fal-ai/trellis-2 | ↑↑ | 45s | 487,113 | 20.7 | 1,778 | baseColor, metalRough | Clearly above TRELLIS 1: separated frame tubes, round steering wheel, legible decal. Advanced. |
| Hunyuan 3.1 Pro | fal-ai/hunyuan-3d/v3.1/pro/image-to-3d | ↑↑↑ | 146s | 499,994 | 30.6 | 15,816 | baseColor | Clean, no artifacts, slightly smoothed vs TRELLIS 2. Advanced. |
| Hunyuan 3.1 Rapid | fal-ai/hunyuan-3d/v3.1/rapid/image-to-3d | ↑↑ | 90s | 49,924 | 18.5 | 13,683 | baseColor | Cut: cannot emit GLB (model_urls.glb is null). Quality when converted: lumpy nose, slab bumper, middling. |
| Hunyuan3D v3 | fal-ai/hunyuan3d-v3/image-to-3d | ↑↑↑ | 126s | 498,750 | 30.8 | 15,702 | baseColor | Good, but softer nose fairing than 3.1 Pro at the same price band. Cut as redundant. |
| Hunyuan3D v2 | fal-ai/hunyuan3d/v2 | ↑↑↑ | 97s | 40,000 | 3.3 | 1,966 | baseColor | Cut: texture failure. Wheels hallucinated blue, orange desaturated to salmon. |
| Hunyuan3D v2 mini/turbo | fal-ai/hunyuan3d/v2/mini/turbo | ↑↑ | 41s | 40,000 | 3.3 | 1,941 | baseColor | Cut: same blue-wheel failure, softer geometry. |
| Rodin v2.5 | fal-ai/hyper3d/rodin/v2.5 | ↑↑↑ | 154s | 500,000 | 26.7 | 8,938 | baseColor, metalRough, normal | Crisp, correct saturated orange, real tubular frame. Advanced. |
| Rodin v2.5 Fast | fal-ai/hyper3d/rodin/v2.5/fast | ↑ | 24s | 19,484 | 2.7 | 1,722 | emissive only | Strong for the price and the fastest in the bench. Advanced, but see the material quirk. |
| Tripo v2.5 | tripo3d/tripo/v2.5/image-to-3d | ↑↑ | 69s | 498,108 | 14.5 | 398 | baseColor | Good geometry, starved texture budget. Advanced. |
| Tripo H3.1 | tripo3d/h3.1/image-to-3d | ↑↑ | 191s | 1,451,052 | 40.2 | 247 | baseColor | Most geometric detail in the bench, worst texture-to-geometry ratio. Advanced. |
| Tripo P1 | tripo3d/p1/image-to-3d | ↑↑↑ | 126s | 4,638 | 0.9 | 666 | baseColor, metalRough, normal | Genuinely low-poly and web-light, but coarse with a floating stray bar. Cut: Meshy covers the game-ready axis better. |
| Meshy v7 | meshy/v7/image-to-3d | ↑↑↑↑ | 126s | 30,486 | 6.0 | 3,502 | baseColor | Clean, well organised, game-ready polycount. Advanced automatically. |
| Pixal3D | fal-ai/pixal3d | ↑↑ | 361s | 195,879 | 8.9 | 1,394 | baseColor, metalRough | Cut: arbitrary multi-axis tilt (not gravity-aligned at all) and 6-minute runs. |
| ReconViaGen 0.5 | fal-ai/reconviagen-0.5 | ↑↑ | 843s | 477,348 | 20.1 | 1,724 | baseColor, metalRough | Quality about equal to TRELLIS 2 (it is TRELLIS-2 lineage), but 14 minutes. Cut on latency. |
| TripoSR | fal-ai/triposr | ↑ | 97s | 115,199 | 2.2 | 0 | none | Cut: total failure. Untextured white blob, unrecognisable as a kart. |
| SAM-3 Objects | fal-ai/sam-3/3d-objects | ↑ | 24s | 15,418 | 1.8 | 1,350 | baseColor | The surprise. Control price, 3x faster, correct saturated orange. Advanced. |
| Hi3D (legacy) | hitem3d/hi3d/image-to-3d | ↑↑↑ | 328s | 499,662 | 27.3 | 16,827 | baseColor, metalRough | Good quality, but even the cheapest config sits in the field's upper price band at 5.5 minutes a run. Cut on price plus latency. |
* TRELLIS 1's time is from the original production run; its GLB was reused after verifying the reference was byte-identical, so no wall clock was re-measured.
The 23 excluded endpoints, with reasons
| Endpoint | Reason not screened |
|---|---|
| fal-ai/trellis/multi | Multi-image variant of a screened engine; Stage A is a single-image screen. |
| fal-ai/hunyuan3d/v2/multi-view | Multi-image variant. |
| fal-ai/hunyuan3d/v2/multi-view/turbo | Multi-image variant. |
| meshy/v7/multi-image-to-3d | Multi-image variant. |
| fal-ai/meshy/v6/multi-image-to-3d | Multi-image variant. |
| fal-ai/meshy/v5/multi-image-to-3d | Multi-image variant, and v5 is two generations stale. |
| tripo3d/h3.1/multiview-to-3d | Multi-image variant. |
| tripo3d/tripo/v2.5/multiview-to-3d | Multi-image variant. |
| hitem3d/hi3d/v3.0/multi-view-to-3d | Multi-image variant, and priced out. |
| hitem3d/hi3d/multi-view-to-3d | Multi-image variant. |
| fal-ai/trellis-2/retexture | 3D-to-3D retexture of an existing mesh, not reconstruction. |
| fal-ai/trellis-2-lora | Requires a separately trained LoRA; not a general image-to-3D path. |
| fal-ai/hunyuan_world/image-to-world | Generates a panoramic scene/world, not a single object asset. |
| fal-ai/hunyuan3d-v3/sketch-to-3d | Sketch-specific input; wrong tool for a go-kart photo. Flagged for a future doodle lane. |
| fal-ai/sam-3/3d-body | Human-body-specific; not applicable to the screen subject. |
| tripo3d/triposplat | Outputs a Gaussian splat, not a GLB mesh; incompatible with a mesh asset pipeline. |
| fal-ai/hyper3d/rodin | Superseded by Rodin v2.5 in the same family. |
| fal-ai/hyper3d/rodin/v2 | Superseded by Rodin v2.5 at the identical price. |
| fal-ai/meshy/v6/image-to-3d | Superseded by Meshy v7 at the identical textured price. |
| fal-ai/meshy/v6-preview/image-to-3d | Preview build of the superseded v6. |
| fal-ai/hunyuan3d/v2/turbo | Bracketed in price and quality by two screened siblings (v2 and v2/mini/turbo). |
| fal-ai/hunyuan3d/v2/mini | Bracketed in price and quality by the same two screened siblings. |
| hitem3d/hi3d/v3.0/image-to-3d | Credit-metered pricing whose entry point sits an order of magnitude above the field, before the quality escalators. |
Three billing traps
We don't republish per-run prices — vendors change them, and their pricing pages are the authoritative source. But three structural traps are worth recording, because the vendors' own pages do not lead with them:
Hunyuan 3D v2 bills 3x for texture
Setting textured_mesh: true triples the price at both tiers we ran. The advertised price is the untextured one.
Hi3D is credit-metered, not per-generation
Geometry credits scale with resolution, and the platform's own worked example more than quadruples from quality to master at the same resolution. That is why the v3.0 endpoint was excluded outright.
Tripo and Meshy price texture and PBR as separate add-ons
So the advertised per-model price is roughly a third below what a textured, PBR result actually costs.
Head-to-head: nine engines, five subjects
Each cell scores the engine against the TRELLIS 1 control on that subject. ++ clearly better, + better, = equal, - worse, -- clearly worse, ! a defect that blocks integration regardless of quality. n/r = not run. Price is a relative band within the field on the run date, from ↑ (budget) to ↑↑↑↑ (premium). We don't republish vendors' per-run prices; they change, and their pricing pages are authoritative.
| Engine | Price | 01 Sneaker | 02 Go-kart | 04 Dog | 07 Character | 19 Dragon |
|---|---|---|---|---|---|---|
| TRELLIS 1 (control)fal-ai/trellis | ↑ | ref | ref | ref | ref | ref |
| TRELLIS 2 (control)fal-ai/trellis-2 | ↑↑ | n/r | ++ | ++ | ++ | n/r |
| Rodin v2.5fal-ai/hyper3d/rodin/v2.5 | ↑↑↑ | ++ | + | ++ | ++ | + |
| Tripo H3.1tripo3d/h3.1/image-to-3d | ↑↑ | ++ | + | + | + | + |
| Meshy v7meshy/v7/image-to-3d | ↑↑↑↑ | ++ | =/+ | + | + | + |
| Tripo v2.5tripo3d/tripo/v2.5/image-to-3d | ↑↑ | + | + | + | + | =/+ |
| Hunyuan 3.1 Profal-ai/hunyuan-3d/v3.1/pro/image-to-3d | ↑↑↑ | - | + | ++ | = | + !tilt |
| Rodin v2.5 Fastfal-ai/hyper3d/rodin/v2.5/fast | ↑ | - | = | +/= | + | =/- |
| SAM-3 Objectsfal-ai/sam-3/3d-objects | ↑ | =/- | = | + | -- | -- !dropped flame |
TRELLIS 2 controls were run only on the two character-type subjects (dog, game character), per the brief.
Against the TRELLIS 2 control: on the game character, Rodin v2.5 beats TRELLIS 2 (face likeness, engraved armour, cloak embroidery) and Meshy v7 matches it while adding a separated sword; Hunyuan 3.1 Pro loses to TRELLIS 2 on facial detail. On the dog, TRELLIS 2 and Hunyuan 3.1 Pro are close (TRELLIS 2 keeps more fur texture, Hunyuan builds the better hindquarters), and Rodin v2.5 beats both on the head.
The renders, subject by subject
Each strip is the same six-view Blender ring: same rig, same tone mapping, same framing solve, same material normalisation. A curated selection is shown here, chosen to show each engine at its most characteristic — wins and failures both.
Sneaker: hard matting
Hard matting: laces, thin eyelets, a dark sole against a dark upper.




Go-kart: mechanical detail
Mechanical detail: tubular frame, negative space, an exposed engine.






Dog on a couch: the stress test
A real animal in a lying pose (pose-locked redo). The hardest case in the set.





Game character: stylized figure
A stylized character: armoured ranger, cloak, sword, layered belts.





Crayon dragon: made-real doodle
A made-real doodle: a child's crayon dragon turned into a toy-style reference.





Integration defects and quirks
The things that would cost engineering time, independent of render quality. These do not show up in anyone's marketing pages, but they decide whether an engine can actually ship.
| Engine | Quirk |
|---|---|
| Hunyuan 3.1 Rapid | Cannot emit GLB. The model_glb field contains an OBJ, and model_urls.glb is literally null; the texture ships as a separate 14 MB PNG plus MTL. Any integration needs a server-side OBJ-to-GLB conversion step. Disqualifying as-is. |
| Hunyuan 3.1 Pro | Orientation is not stable across subjects: fine on 4 of 5, pitched about 45 degrees on the dragon. Would need an auto-upright pass. |
| Pixal3D | Arbitrary multi-axis tilt on the one subject tested, plus 6-minute runs. |
| Rodin v2.5 Fast | Ships emissive-only materials (baked-lighting Shaded mode, no baseColor). Renders fullbright and ignores scene lighting, visibly washed out in a normal PBR viewer. Requires material: "PBR" and a re-test before it could ship. |
| Rodin v2.5 / v2.5 Fast | Take image_urls (an array), not image_url. Also expose use_original_alpha, the only engines in the bench that explicitly consume the input alpha channel. |
| SAM-3 Objects | Needs a per-subject text prompt for its segmentation stage (the default is "car"). Gets the object it is told to find and drops everything else, as the dragon's missing flame shows. |
| Tripo H3.1 | 1.45M triangles / 40 MB with a 247 KB texture. Needs decimation before it could be served. A face_limit parameter exists but was not exercised here. |
| Tripo v2.5 / H3.1 / P1 | Different canonical orientation from TRELLIS (front-on rather than three-quarter). An orientation: "align_image" option is available and would need setting. |
| Meshy v7 | Cleanest integration story: single image_url, sane 30k-triangle output, about 6 MB, GLB by default, plus enable_rigging, enable_animation and pose_mode in the same call. |
| Hunyuan3D v2 family | Texture is unreliable: hallucinated blue wheels on the go-kart at both price points tested. |
| TripoSR | Returns geometry with no texture at all (0 KB). Effectively dead. |
Side experiment: text-to-3D scenes
Outside the tournament, one run of Meshy v7's text-to-3D at ultra + textured (154s) produced a coherent multi-fixture strip mall: five glazed storefront bays, brick pilasters, a parapet roof with individually modelled HVAC units and vent stacks, awnings, and a parking lot with light poles. No reconstructor in this bench can produce anything like it, because a reconstructor is bounded by one photo of one object. Honest caveats: parking stalls came back as raised rails rather than painted lines, the signage is texture smear, and this is a single run with a single prompt, so it establishes a capability, not a failure rate.

What we do with this: no two uploads run the same plan
This bench is not content marketing; it is how PolyMedium is built. Because no engine wins everywhere, we do not sell you an engine. Every upload is classified (object, character, or hand-drawn doodle) and routed to the engine this data says is strongest for that subject at that price. The bench rewrote our catalog directly:
- Drafts ($0.25, every subject): TRELLIS 1 stays. No engine on fal beats it on price-performance for drafts; the quality ladder above it starts several price bands up. SAM-3 Objects is logged as a viable second source at the same price, 3x faster, with the caveat that it needs a per-subject prompt and silently drops parts it is not told about.
- Best objects and doodles ($0.75): TRELLIS 2 — the separated frame tubes and surviving decals above are why. On drawings it is also the engine that came back with the right number of eyes: prior-heavy engines invent details a child never drew.
- Standard characters ($1.00, the default): Hunyuan 3.1 Pro. The best hindquarters on the dog and clean, artifact-free surfaces won it the default slot. Its one defect in the bench, the 45-degree pitch, appeared on the crayon dragon — and routing is the mitigation: drawings never touch this engine, and characters are restaged into an upright reference before it runs (4 of 4 came back upright).
- Hero characters ($3.00): Meshy v7. It never wins raw fidelity, but it was the only engine to reconstruct the sword as a separate blade and the flame as a real volumetric jet, with game-ready ~30k-triangle topology by default. That is figurine-grade output, priced off what it really costs to run, not willingness to pay.
The other half of the system is what happens before any engine runs: every upload is restaged into a clean studio reference. That is what lets one product sit on many engines — each one is fed the input it performs best on, and the failure modes this page documents (backgrounds baked into geometry, thin strands turning into spikes, glare becoming paint) are suppressed before reconstruction instead of patched after. The bench tells us which engine to trust with your subject; the restage makes sure the engine gets a subject it can do its best work on.
We re-run this bench as the catalog shifts and update the date stamp above when we do.
Provenance
Run 2026-08-29 against fal.ai's live catalog on that date. Engine names and versions are as listed on the run date; vendors ship new versions frequently, and this page describes these endpoints on this date, not the vendors' products in general. Price arrows are relative bands within the field on that date, from our own per-call spend; we deliberately do not republish per-run vendor prices. Scores are our qualitative judgement of the six-view renders against our own control, made by the team that operates these engines in production; where our engines lost, the page says so.