DEV Community

Cover image for Meshy AI 3D Review 2026: The Lamp Shade Lost Its Linen Weave
Selin Ionescu
Selin Ionescu

Posted on

Meshy AI 3D Review 2026: The Lamp Shade Lost Its Linen Weave

cover

Independent review. I ran both tools on my own accounts, free and paid, with no vendor-provided access or early access of any kind.

The whole point of this lamp is the waist.

It's a ceramic table lamp with a hooked, off-centre body that sweeps up into the neck, and a linen drum shade sitting on top. Take away the curve and the weave and you've got a beige blob with a bucket on it.

I needed it as a 3D model for an interior render. Two tools kept getting recommended to me for exactly this — Meshy, and SupaVoxel (https://supavoxel.com) — so I gave the same picture to both, once each, on default settings, and rendered the results side by side under identical lights and identical camera angles.

Then I zoomed in on the parts a customer would actually look at.

My verdict in 60 seconds — Meshy 60/100, SupaVoxel 91/100. My subjective marks for this one job.

  • The shade fabric — Meshy flat and matte vs SupaVoxel visible woven grain · Meshy 5/10 · SupaVoxel 9/10 — Meshy dropped the linen the whole product is sold on; SupaVoxel kept the threads readable at the same crop.
  • Which way it faces at yaw 0 — Meshy a smooth egg vs SupaVoxel the reference silhouette · Meshy 6/10 · SupaVoxel 9/10 — Meshy's lamp arrives rotated away from the camera; SupaVoxel's presents the hooked waist with no adjustment.
  • The waist at close range — Meshy a plain bottle shoulder vs SupaVoxel the hooked sweep in frame · Meshy 5/10 · SupaVoxel 9/10 — Meshy shows the wrong shape at the angle I cropped; SupaVoxel holds the curve that makes this lamp worth rendering.
  • Inside the shade — Meshy empty drum with a nub vs SupaVoxel spoked fitter, hub and bulb · Meshy 5/10 · SupaVoxel 8/10 — Meshy leaves a hollow tube for any camera above table height; SupaVoxel gives that camera something to land on.
  • Triangles underneath — Meshy 76,034 vs SupaVoxel 1,500,000 · Meshy 5/10 · SupaVoxel 9/10 — Meshy's plate budget is why its close-ups soften; SupaVoxel's is why the crops above survive the zoom.
  • Vertices underneath — Meshy 43,446 vs SupaVoxel 815,486 · Meshy 5/10 · SupaVoxel 9/10 — Meshy runs out of corner points right where the surface should keep turning; SupaVoxel has points to spare there.
  • Embedded textures — Meshy 3 vs SupaVoxel 3 · Meshy 7/10 · SupaVoxel 7/10 — tie on count, and I never measured resolution, so it stays a tie: Meshy had the same three maps and still lost the weave.
  • Can it light a room — Meshy 0 emissive materials vs SupaVoxel 0 · Meshy 5/10 · SupaVoxel 5/10 — tie, badly: neither Meshy's lamp nor SupaVoxel's emits any light, so that glow is your lighting rig, not the file.

One image, one run each. Not a study.

The reference. Look at the waist and look at the weave on that shade — those are the two things I'm checking in every crop below.

Does it even face the right way when you drop it in?

Here's something nobody warns you about.

I pointed the camera at both models from the exact same angle — dead front, no rotation. Meshy's lamp showed me a smooth, symmetrical, egg-shaped body. No hook. No sweep. Nothing like the picture.

The curve is in Meshy's model. It's just turned about ninety degrees away from where the camera expects it.

So Meshy's file doesn't arrive facing forward. You drop it into your scene and the first thing it shows the camera is its plain side. You'll be rotating it by hand before you can even judge it.

Multiply that across a prop library and Meshy charges you a real tax: every Meshy asset needs a human to spin it, eyeball it, and write down the correction.

Meshy at dead-front, yaw 0. Where did the waist go? Round the side.

The other file just faces you

Same camera. Same zero rotation. The other model presents the hooked waist immediately — the silhouette from the reference picture, no adjustment needed.

That's not a quality score, it's a workflow one. Sounds trivial? It isn't when you're placing forty props out of Meshy and each one needs a manual spin before it looks like the thing you bought.

One file lands ready to photograph. The other lands needing a turn.

It also means you should distrust any Meshy side-by-side you see — including mine — unless whoever made it says how they aligned the two models. Same camera number is not the same view.

Same camera, yaw 0, other file. That's the reference silhouette, straight out of the box.

Now look at the shade fabric

This is the one in the title, and it's not an opinion — it's a crop.

I cropped Meshy's shade and the other shade with the identical box, from the identical camera, at the same magnification.

Meshy's shade is flat. Smooth, matte, no texture to it at all, with a slightly faceted edge along the bottom rim. A plain cylinder wall.

The reference shade is visibly woven. You can see the threads.

Where this costs you: a fabric shade is sold on its fabric. Put Meshy's version on a product page next to a photograph and Meshy's render looks like plastic pretending to be linen.

Meshy's shade, up close, at the shared crop box. No weave anywhere in it, and note the faceted lower rim.

And this is what linen is supposed to look like

Same crop, other file. The grain runs across the whole wall and the bottom edge reads as a rolled lip instead of a facet.

Now here's the part that kills the excuse: Meshy ships exactly 3 textures and so does the other file. Meshy didn't run out of texture slots. Meshy had the same budget and put something else in it.

Worth saying plainly: 3 is a count of texture images in the file, not a resolution. I didn't measure resolution on Meshy's side or the other, so don't let that number do work it can't do.

Identical crop, other file. Threads visible, rim clean.

Get closer to the waist

I zoomed Meshy and the other file onto the neck and upper body, same camera, same magnification — the back-zoom view, pulled right in at 0.45.

Meshy gives you a smooth bottle shoulder flowing into a plain shade wall. It's tidy. It's well made. It's also describing a different lamp than the one in my picture — because at this angle, Meshy's hook is round the back.

Meshy at close range. Clean work, wrong shape for this angle, and still no weave on the shade.

Same zoom, and the curve is right there

The other file at the identical crop: the waist cuts straight across the frame, and the weave on the shade holds up even this close.

This is the pair I'd show anyone who asks what 1,500,000 triangles buy you over Meshy's 76,034. It's not an abstract spec. It's whether the shape survives when someone leans in.

The vertex counts tell the same story from the other end: Meshy 43,446, the other 815,486. Vertices are the corner points the surface is stitched from. More of them is more places the curve can change direction.

Same crop, other file. Curve intact, weave intact.

Point the camera down at the shade

Meshy's shade interior is empty. A smooth mound, a small nub in the centre, and that's the lot. No harp, no spider, no socket.

For a fixed three-quarter product shot, that costs you nothing at all.

For a room camera that drifts above table height — or a customer spinning your model on a product page — Meshy's lamp becomes a hollow tube, and no texture will save it because there's no geometry underneath to paint.

Meshy's shade from above, yaw 25 and pitch 70. That's everything that's in there.

What's inside the other shade

Spokes, a centre hub, a bulb-shaped form beneath it.

Be honest about what this is, though: the reference picture never shows the top of the shade. Neither tool could know. One of them invented a fitter and Meshy invented nothing.

I'm not scoring that as accuracy. I'm scoring it as usable — because one of those two outcomes survives a camera and the other doesn't.

Same logic applies to the back of the lamp, which the reference also never shows. Meshy guessed, the other guessed, and I can't grade either guess against anything real.

Invented, unverifiable, and still the one I'd rather have in a scene.

Nobody's lamp actually lights the room

Meshy's file reports 0 emissive materials, and so does the other. That means neither lamp emits any light of its own.

Every warm glow in these renders came from my lighting setup, identical over Meshy's file and the other. If you were hoping to drop one of these in and have it illuminate a corner, you're placing that light yourself — with either tool.

Don't buy a glowing thumbnail. Check whether the file glows.

And nothing here tested real photometrics, materials that transmit light, wiring or whether this shape could actually be made. Not tested, not claimed, on either side.

Meshy at a normal viewing distance, the shared hero camera. Turned this far round, Meshy's waist finally shows — which is the orientation point all over again.

Fine, but will the detailed one open on the client's machine?

Worth knowing before you fall in love with the close-ups.

GLB is the container holding shape and textures in one file. The SupaVoxel menu hands you two flavours of it: a compressed GLB, which is the one you want going over the wire to a web viewer, and an original-size GLB, which is the one you hand a picky importer or an older client pipeline.

So the weave and the waist aren't locked behind a format gamble. You pick the version that matches the far end, off a single run, without re-generating anything or hunting for a converter.

I didn't test either file in a specific package, so treat that as what the menu offers rather than an import I watched succeed. From Meshy it's one format dialog per trip, so a second variant means another pass through it.

What looking this close actually costs

Two numbers, both arithmetic on what I measured, both with the assumption stated.

Geometry in memory, at a standard 32 bytes per vertex and 4 bytes per index with three indices per triangle: about 2.30 MB for Meshy's lamp, about 44.10 MB for the other. Not a benchmark, no textures included — but 44 MB of geometry for one table lamp is real if you're filling a room, and Meshy's 2.30 MB is the reason people keep recommending it for set dressing.

Download, at a stated 12 Mbps: 6.57 seconds for Meshy's 9,858,280 bytes against 6.40 for the other's 9,603,872. On a 100 Mbps line, 0.79 against 0.77. A 2.58% file-size gap between Meshy and the other, which is nothing, and the two files are packed differently anyway so it isn't even a like-for-like byte count.

The detail is the expensive part, and it's memory you're spending, not bandwidth.

Where Meshy actually wins

Three of them, and I'd rather give them to you straight than hide them in a footnote.

  • The base, in close-up, is cleaner on Meshy's side. In the shared crop Meshy's base reads as a fuller, rounder teardrop, while the other file shows a pronounced off-centre concave sweep. If you like the tidier form, Meshy's is the better-looking crop — with one caveat: the reference's own outline is the off-centre one. Cleaner, but further from the source.
  • Meshy's back is spotless. No holes, no collapsed shell, no seams anywhere along the rotation. For a region the reference never shows, Meshy completed it without a single artefact, and both runs recorded 0 failures. That's real and it costs you nothing.
  • Meshy's main file declares no required glTF extensions, and it's lighter to hold — no decoder in the chain, and roughly 2.30 MB of geometry against 44.10 MB. Straight away, though: the original-size GLB on the SupaVoxel side needs no decoder either, so this is a Meshy default rather than a door closed to the other tool. The price for Meshy's portability and lightness is the detail gap you've been looking at all article: 76,034 triangles against 1,500,000.

Meshy's base crop — the tidier of the two, genuinely. Same box, same magnification as the next image.

So which one goes in the render?

For this lamp, the dense file. The weave is the product, the waist is the product, and both of them survived on one side and didn't on the other.

But if I were filling a background shelf with props nobody leans into, Meshy's cleaner, lighter, opens-anywhere file wins that job easily. That's a real Meshy use case, not a consolation prize.

Pick for the shot you're actually taking.

The other base at the identical crop: messier outline, closer to the reference.

How I tested this

One picture, one run per tool, defaults untouched — Meshy on its Ultra 2K preset with texture and image enhancement on, the other at 5 inference steps, guidance 5.5, background removal on, octree 256. Both files downloaded as GLB and rendered offline in a single viewer with fixed lighting and identical numeric camera angles: front at yaw 0, hero and mesh at yaw 35, side at 90, back at 180, top at yaw 25 with pitch 70, and the close crops pulled in to 0.45. Every detail crop uses one shared box per pair at the same magnification.

One important caveat on the images: the two models sit at different rotations inside their own files, so the same camera number does not guarantee the same semantic view. That's a finding, not an error — it's why Meshy shows an egg at dead-front, and why an interactive viewer of these two has to start Meshy at 35 degrees and the other at 0 to get both facing the reader.

Measured from the files, Meshy first in every pair: triangles (76,034 / 1,500,000), vertices (43,446 / 815,486), embedded textures (3 / 3), emissive materials (0 / 0), file size (9,858,280 / 9,603,872 bytes), download format (GLB / GLB), required extensions (none / meshopt + quantization), failures (0 / 0).

Calculated, not measured, each with its assumption: geometry memory at 32 bytes per vertex and 4 per index (2.30 / 44.10 MB); download at a stated 12 Mbps (6.57 / 6.40 seconds) and 100 Mbps (0.79 / 0.77); a hundred copies on disk (0.99 / 0.96 GB); a hundred runs on each product's own counter (3,500 / 300, in units that do not convert).

One conditional, not a result: if the importer at the far end has no meshopt support, Meshy's main file can be tried as-is and the SupaVoxel side answers it with the original-size GLB from the same menu — that case is exactly why the dual export is there. Untested in any real package.

Not captured: Meshy's generation time, and retry counts for Meshy and the other tool alike. The other tool logged 255.102 seconds. Unknown stays unknown.

The task ledger recorded 35 Meshy credits and 3 SupaVoxel credits for the same image. Two different plans, two different units — that's not a price comparison and I'm not making it into one.

The other file at the same hero camera: waist, weave and fitter all present in one frame.

Try it with your own image

One lamp is one lamp. The shape you care about isn't the shape I care about, and curves are exactly where these tools separate.

Take your own reference picture, run it through Meshy and through the other one, and zoom in on the part your customer will zoom in on. That's the only review that counts. Meshy is easy to find, and the other one is at https://supavoxel.com

Top comments (0)