How we test
We care about one question: if you send this file to a printer, what happens? We do not score looks. A beautiful model with a hole in it fails here.
The monthly run (first full run coming soon)
- The same 10 input images every month: figurines, hard-surface props, thin parts, and a flat-bottomed object.
- Default settings, mesh only, no texture. One generation per image, and we keep the first result. No retries, no cherry picking.
- Paid tools will be run through their public API at list price, paid for by us.
- The raw scores and the source of every file go in the archive.
What happens to each file
- Load it and drop textures, since slicers ignore them.
- Weld vertices that sit at the same spot. AI exports often split them along texture seams.
- Turn it Z-up and scale it so the longest side is 100 mm. All numbers are at that size.
- Run nine checks and add up the points.
The rubric
Out of 100. Version 0.2.
| Check | Points | Full points when | Partial points |
|---|---|---|---|
| Watertight and manifold | 25 | Every edge is shared by exactly two faces | 20 at 0.01% bad edges or less, 15 at 0.1%, 8 at 1%, else 0 |
| Normals | 5 | Faces wound the same way, pointing out | 3 if inside out, 0 if mixed |
| Single body | 15 | Nothing floats free of the main body | 10 if floating bits are 1% of the surface or less, 5 at 10%, else 0 |
| Self-intersections | 10 | No faces cut through other faces | 8 at 0.1% of faces, 5 at 1%, 2 at 5%, else 0 |
| Wall thickness | 15 | 2% or fewer sampled spots under 0.8 mm | 12 at 5%, 8 at 15%, 4 at 35%, else 0 |
| Flat base | 10 | Stands as delivered on a real flat contact | 7 if tilted 15 degrees or less, 4 if it needs a bigger turn, 2 if no flat pose |
| Overhangs | 10 | 5% or less of the surface is steeper than 45 degrees | 8 at 10%, 5 at 20%, 3 at 30%, else 1 |
| Triangle count | 5 | 10k to 1M triangles | 3 for 2k to 3M, else 1 |
| Scale sanity | 5 | Native size 10 to 500 units | 3 if it needs rescaling, 0 if one side is nearly zero |
Hard caps
Some single problems make a model unprintable even if everything else is clean. A flat card is capped at 30. A hollow skin (more than half the walls under 0.8 mm) is capped at 45. More than 1% open or non-manifold edges is capped at 45.
Verdicts
85+ Prints as is 65 to 84 Prints with minor fixes under 65 Needs repair first (under 40 is major work)
How the checks work
- Holes. We count how many faces use each edge. One means a hole, three or more means a non-manifold edge.
- Wall thickness. We pick 4,000 random spots on the surface and shoot a ray straight inward. The distance to the next surface is the wall thickness there. If the ray hits nothing, the surface is an open sheet.
- Hollow skins. Some generators return a closed shell with almost no wall, like a balloon. If the median wall is under 1 mm at 100 mm size, we flag it.
- Floating parts. We split the mesh into connected pieces and check which ones touch or overlap the main body.
- Self-intersections. MeshLab's face-by-face intersection test.
- Base and tilt. We look at what touches the bed as delivered, then find the smallest rotation that gives a stable flat contact.
- Overhangs. Share of the surface facing down more than 45 degrees from vertical, which usually needs supports.
Limits
The 0.8 mm line assumes an FDM printer with a 0.4 mm nozzle. Resin can go thinner. Thickness is sampled, but the seed is fixed, so the same file always gets the same score. We plan to publish the scoring code so anyone can check our work.