Benchmark

What is wrong with an AI-generated 3D model as downloaded: 16 models, sliced and repaired

What is wrong with an image-to-3D model as downloaded, and does it slice and print without repair?

Measured 2026-10-15

Result

PrusaSlicer produced G-code for all 16 models, so slicing is no test. Eleven were watertight as downloaded, and being watertight was not the test either. All four TRELLIS.2 models were hollow: two surfaces about 0.16 mm apart at an 80 mm print size, thinner than a nozzle line, filling 1 to 4% of their convex hull. They sliced to 0.5 to 1.3 metres of filament where the other generators' versions of the same object took 5.7 to 23.5. The Windows repair service made all 16 watertight and changed none of that: the repaired skins were still 0.15 to 0.16 mm. Stable Fast 3D's mug was watertight and solid all the way through, its opening sealed. Its mug, charger and pumpkin also came out tilted 18 to 25 degrees, standing on 1 to 15 square millimetres of bed. Hunyuan3D-2.1's STLs kept the GLB's Y-up axes, so all four arrive in a slicer on their side. The measurements that caught these are the ones a watertight check does not make: wall thickness, solid volume, and how the model sits on the bed.

The file as downloaded

ObjectGeneratorFile printedTrianglesWatertightOpen edgesNon-manifold edgesSeparate shellsUVs in the GLB
chargerHunyuan3D-2.1 (Tencent)charger__hunyuan21.stl344,234Yes001No
chargerNeural4Dcharger__neural4d.stl500,000Yes001No
chargerStable Fast 3D (Stability AI)charger__sf3d.glb25,660Yes001Yes
chargerTRELLIS.2 (Microsoft)charger__trellis2.glb292,138No401208Yes
figurineHunyuan3D-2.1 (Tencent)figurine__hunyuan21.stl453,880Yes001No
figurineNeural4Dfigurine__neural4d.stl99,996No802No
figurineStable Fast 3D (Stability AI)figurine__sf3d.glb22,584Yes001Yes
figurineTRELLIS.2 (Microsoft)figurine__trellis2.glb291,026No026668Yes
mugHunyuan3D-2.1 (Tencent)mug__hunyuan21.stl589,094Yes001No
mugNeural4Dmug__neural4d.stl500,000Yes001No
mugStable Fast 3D (Stability AI)mug__sf3d.glb32,104Yes001Yes
mugTRELLIS.2 (Microsoft)mug__trellis2.glb276,809No3156Yes
pumpkinHunyuan3D-2.1 (Tencent)pumpkin__hunyuan21.stl507,512Yes001No
pumpkinNeural4Dpumpkin__neural4d.stl500,000Yes001No
pumpkinStable Fast 3D (Stability AI)pumpkin__sf3d.glb34,488Yes001Yes
pumpkinTRELLIS.2 (Microsoft)pumpkin__trellis2.glb284,010No056Yes

Read this table as the check most guides tell you to run, and notice that it passes 11 of 16. The two tables below are where the problems are.

Is it solid, and what does the slicer make of it (80 mm longest side)

ObjectGeneratorVolume, % of convex hullThinnest wall on two rays (mm)G-code producedFilament (m)
chargerHunyuan3D-2.1 (Tencent)87.454.30Yes13.69
chargerNeural4D82.924.88Yes12.11
chargerStable Fast 3D (Stability AI)89.829.18Yes11.26
chargerTRELLIS.2 (Microsoft)3.60.16Yes0.50
figurineHunyuan3D-2.1 (Tencent)19.00.47Yes5.70
figurineNeural4D63.63.56Yes8.66
figurineStable Fast 3D (Stability AI)76.237.59Yes8.58
figurineTRELLIS.2 (Microsoft)1.90.15Yes0.78
mugHunyuan3D-2.1 (Tencent)20.82.50Yes11.26
mugNeural4D19.22.59Yes11.11
mugStable Fast 3D (Stability AI)85.23.43Yes16.44
mugTRELLIS.2 (Microsoft)2.40.16Yes0.49
pumpkinHunyuan3D-2.1 (Tencent)93.472.07Yes23.53
pumpkinNeural4D86.552.69Yes22.42
pumpkinStable Fast 3D (Stability AI)96.268.83Yes23.28
pumpkinTRELLIS.2 (Microsoft)1.10.16Yes1.32

A solid object fills most of its convex hull; a mug with a real cavity fills about a fifth. Under 4% means a hollow skin. The wall column is the thinnest stretch of material where two rays through the centre cross the model, so for a solid object it is the object's width. 0.15 to 0.16 mm is thinner than any nozzle line, and the filament column shows what the slicer did with it.

How it lands in the slicer

ObjectGeneratorAxesLands on its sideBase tilt (degrees)First layer on the bed (mm²)
chargerHunyuan3D-2.1 (Tencent)STL kept the GLB Y-up axesYes0.12,312.0
chargerNeural4DSTL written Z-upNo0.11,037.7
chargerStable Fast 3D (Stability AI)GLB turned to Z-upNo18.61.1
chargerTRELLIS.2 (Microsoft)GLB turned to Z-upNo0.01,364.4
figurineHunyuan3D-2.1 (Tencent)STL kept the GLB Y-up axesYes3.440.1
figurineNeural4DSTL written Z-upNo1.42.1
figurineStable Fast 3D (Stability AI)GLB turned to Z-upNo4.35.5
figurineTRELLIS.2 (Microsoft)GLB turned to Z-upNo0.36.5
mugHunyuan3D-2.1 (Tencent)STL kept the GLB Y-up axesYes0.37.8
mugNeural4DSTL written Z-upNo0.147.4
mugStable Fast 3D (Stability AI)GLB turned to Z-upNo24.51.2
mugTRELLIS.2 (Microsoft)GLB turned to Z-upNo0.30.6
pumpkinHunyuan3D-2.1 (Tencent)STL kept the GLB Y-up axesYes3.219.1
pumpkinNeural4DSTL written Z-upNo0.8261.3
pumpkinStable Fast 3D (Stability AI)GLB turned to Z-upNo21.614.8
pumpkinTRELLIS.2 (Microsoft)GLB turned to Z-upNo0.18.8

Slicers take Z as up and no slicer rotates a model on import. Base tilt is the angle between the model's widest downward flat face and the floor, along the model's own upright axis; on a round object it measures little. The last column is the area of the first 0.2 mm layer, as the file lands: a few square millimetres means it stands on a point.

After the Windows repair service

ObjectGeneratorWatertightShellsVolume, % of hullThinnest wall (mm)Filament (m)
chargerHunyuan3D-2.1 (Tencent)Yes187.454.3113.69
chargerNeural4DYes182.924.8812.11
chargerStable Fast 3D (Stability AI)Yes189.829.1811.26
chargerTRELLIS.2 (Microsoft)Yes13.80.160.60
figurineHunyuan3D-2.1 (Tencent)Yes119.00.475.70
figurineNeural4DYes263.63.568.67
figurineStable Fast 3D (Stability AI)Yes176.237.598.58
figurineTRELLIS.2 (Microsoft)Yes21.90.150.78
mugHunyuan3D-2.1 (Tencent)Yes120.82.5011.27
mugNeural4DYes119.22.5811.11
mugStable Fast 3D (Stability AI)Yes185.23.4316.44
mugTRELLIS.2 (Microsoft)Yes12.40.160.49
pumpkinHunyuan3D-2.1 (Tencent)Yes193.472.0723.53
pumpkinNeural4DYes186.552.6922.41
pumpkinStable Fast 3D (Stability AI)Yes196.268.8323.28
pumpkinTRELLIS.2 (Microsoft)Yes11.10.161.31

Repair closed every hole and merged most loose shells, and changed nothing about solidity: compare the last three columns with the table above. A repair service closes surfaces; it does not decide that the space between two of them should be filled.

Why a watertight check misses the worst cases

Watertight means every edge is shared by exactly two triangles. Two closed surfaces 0.16 mm apart satisfy that, and so does a mug whose opening has been sealed into a solid cylinder. Both slice without complaint. The readings that catch them are volume against the convex hull, wall thickness along a ray, and a cross-section at mid-height, filled the way a slicer fills it.

What the slicer said

PrusaSlicer printed at least one print stability warning for every model, most of them generic advice to enable supports or a brim. Two messages point at a real defect. "Floating object part" appeared on four of the five models that had more than one shell. On the TRELLIS.2 pumpkin, the fifth, it reported "Empty layer between 68.45 and 69.05" and "Make sure the object is printable". None of the messages says the model is hollow. The full output for every slice is in the JSON.

Which generators are missing

TripoSG's official Space failed with a RuntimeError on every attempt, on 2026-09-24 and again on 2026-10-14. Meshy, Tripo and Rodin require a paid subscription on their free tiers to download a GLB or STL. Hugging Face's free GPU quota ran out several times during generation; those failures are listed with their dates, and each run was retried on a later day with the same settings.

Disclosure

The author of this site works for the company that makes Neural4D. It was run in its web app with default settings and downloaded as an untextured model, the download a free account gets; every setting used is available on a free account. A free account's 50 weekly credits cover about one generation, so these runs used more credits than that. Same input images and the same script as every other generator, and this benchmark ranks nothing.

How this was measured

Four input images (phone photos of a mug, a phone charger and a small jack-o'-lantern, and the AI generated keychain figurine from the scale benchmark), each sent through four image-to-3D generators: TRELLIS.2, Hunyuan3D-2.1 (shape only) and Stable Fast 3D through their official Hugging Face Spaces, and Neural4D in its web app, downloaded as an untextured model, the download a free account gets. Generated 2026-09-24 to 2026-10-15, one run each, at the Spaces' default settings. Each model was measured as the file a user would print (the generator's own STL where it offers one, else the GLB), scaled so its longest side is 80 mm and oriented the way a slicer receives it, then sliced with PrusaSlicer 2.9.6's default profile, repaired with the Windows 3D printing repair service, and sliced again.

Software and versions
trimesh 5.1.0, PrusaSlicer 2.9.6 (Windows, portable, default profile), Windows.Graphics.Printing3D repair service (Windows 11), the service behind PrusaSlicer's "Fix through the Netfabb", Blender 5.2.2 (renders only)
Date measured
2026-10-15
Script
scripts/measure-gen-baseline.py
Raw data
gen-mesh-baseline-2026-10-15.json

This data is published under CC BY 4.0. Reuse the numbers freely, with a link back so a reader can check the method.

What this does not show

Stated so the result is not read wider than it goes.

  • Nothing was physically printed. Every print reading is what PrusaSlicer 2.9.6 produces from the file with its default profile: whether it slices, what it reports, and how much filament the G-code uses.
  • One run per input per generator, at each Space's default seed. A different seed can give different geometry; how much these readings vary between seeds is not measured.
  • Four input images. They were chosen to cover an open vessel, a box with thin protrusions, a relief surface and a figurine, not to be a representative sample of what people generate.
  • Other slicers. Bambu Studio, OrcaSlicer and Cura may repair or report differently on import.
  • Generation quality: how closely each model resembles its photo is not scored, and no generator is ranked.

Where this is used

TRELLIS , Hunyuan3D , Neural4D , PrusaSlicer