Manufacturing
Built around how parts are made.
Each process below has its own DFM checks, tuned to how that process fails. Pick one for the full breakdown of what is checked, what is measured, and what stays supplier-dependent.
FDM
Fused-deposition 3D printing.
Overhangs · thin walls · bridging · tip-over stability
SLA
Resin 3D printing. The FDM checks, plus trapped-resin and drain-hole detection.
Trapped resin · overhangs · thin walls · bridging · stability
CNC machining
Machining with a round end mill.
Tool access · internal corners · deep and narrow pockets
Injection moulding
Moulded in a tool that has to release the part.
Draft angle · wall uniformity · undercuts
Casting
Sand, die and investment casting.
Draft angle · wall uniformity · undercuts
Sheet metal
Cut flat, then folded.
Bend radius · hole placement · flange length · bend relief
Also check the product, not just the part: multi-part assembly interference detection, and pick a starting material with the material recommender.
One part, five processes
The same housing, checked for every process it could be made by.
The CH-90 actuator controller housing: one engineered single part, a 90 x 60 x 32mm box rising to 44mm, built through the real CAD kernel and then given six deliberate design errors. Pick a process to see which of its checks flag the part and what each one reported, then switch to the reference to see the same part drawn right, which reads Ready to review on all five processes. Every figure comes from the detectors the app runs, at the app's own mesh resolution, and each one carries how it was obtained.
Drag to rotate
An open rectangular housing with a raised end section for a connector. Inside: two parallel ribs forming a slot on the floor, two octagonal standoffs, and a cable-entry boss on the floor of the raised section. Under the rim of one long wall, a snap lip for a clip-on lid. The reference state adds draft to every wall, radii to the rib block, an M3 bore to the standoffs, a gland bore through the boss, widens the slot between the ribs from 3mm to 9mm, and removes the lip.
As designed. Six deliberate design errors, each mapped to a specific check.
As designed, the same checks the app's Compare processes view runs report the following. The app lists a sixth row, sheet metal, which reports Not enough information on a solid housing: its detectors do not read this part as a constant-thickness sheet, so they decline to judge it rather than passing it.
- FDM 3 checks flagged Thin wall: thinnest sampled wall 0.61mm at the standoffs. Bridging: the snap lip read as a 40.1mm unsupported span. Overhang: the lip's underside.
- SLA 3 checks flagged The same three checks, on the same two features: the standoff walls and the snap lip.
- Injection moulding 3 checks flagged Draft angle: 428 of 744 wall facets below 1 degree. Wall uniformity: 19 confirmed thick readings, all on the solid boss. Undercuts: 23.0mm of void under the snap lip on the pull axis.
- Casting 3 checks flagged The same three checks as moulding: no draft, a solid boss, a re-entrant lip.
- CNC 2 checks flagged Tool access: 12 sharp internal corners on the rib block, of 16 on the whole part (the other four are where the snap lip meets the wall, which is why the app's own row reads 16). Deep pockets: the slot between the ribs at 5.0:1 depth to width.
Designed for the process, every one of the five reads Ready to review: every check ran and found nothing to flag. That is the same part drawn right, not the output of the fixes below.
What the app's own fixes achieve on this part
Each fix was applied at the feature the check flagged, with the app's real kernel operations, and rechecked by the same detector. The outcome names what the recheck measured, not what the operation attempted. The parameter each one was given is printed with it: those are the reference part's own values, not the app's defaults, and all but auto-orient reach a user through the AI-planned fix batch rather than a one-click button.
-
H1Fillet the rib blockImproved, not resolved
1.0mm radius. Sharp-corner hits on the rib block 12 → 4: 8 fillets landed of a 14-fillet budget, then the kernel refused the next edge. What remains is four concave edges that still trip the 30 degree check, the worst at 40 degrees, and one of them appeared during the run: none is one of the original square corners.
-
H3Draft the outer wallCheck improved, part worse elsewhere
2 degrees. The angle check flags fewer facets, and that is all it can see: it reports angle against the pull axis, not which way a face leans. One call drafts the whole tangent outer skin and leans it narrower toward the rim, the opposite of what a box parted at its rim needs, and the wall at the rim goes 2.5mm → 1.4mm. The finding improved; the part did not.
-
H4Thicken a standoff wallGeometry changed, issue not improved
2.2mm added, which is the reference part's own wall at that boss and well above the 0.2 to 0.6mm the app's planner is told to choose from. 0.6mm → 2.8mm at the fixed flat, which clears the 0.8mm printable minimum there: five thin readings sat within 2.5mm of that point before, and none do after. The whole-part count barely moves, 79 to 77, and the reason is measured rather than left open. The standoff is octagonal and one flat was thickened, so the others are exactly as thin as they were. Probed at every triangle instead of at a sample, the count rises by four rather than falling by two, because the new material adds facets and those unchanged flats are then read at more points. None of what that finds is thinner material: the thinnest wall anywhere is unchanged. One flat is fixed; the part is not.
-
H5Thin the solid bossGeometry changed, issue not improved
6mm removed, the boss's full height and far more than the 0.3 to 1.0mm the app's planner is told to choose from. Confirmed thick readings at the boss 22 → 33: the count rose. Along the divot's own ray the section clears the cap; around it, it does not.
-
H6Auto-orient for printingNo change
The app's own one-click fix, at its default 45 degree threshold. Auto-orient returned the part as drawn, no change: no orientation it scored beat floor-down, so nothing moved and the lip is still a 40.1mm bridge. For moulding the lip is an undercut with no automatic fix.
No fix closes its loop on this part: nothing above reaches Resolved. The reference state is the same part drawn right, not what these fixes produce. How the part was built
Same CAD, different manufacturing reality
One part, four different outcomes.
This is Buildable's own sample assembly: a real 13-part compact linear actuator, all 13 solids tessellated and checked together as a single mesh (not booleaned into one solid, so the faces where parts meet are still in the surface the checks see), run against four processes with nothing else changed except which one was selected.
9 critical findings, starting with a thin wall. Checking 13 separate solids as one mesh leaves plenty of places to read as too thin, including where two parts meet.
28 flagged features, starting with a sharp internal corner no round end mill can cut cleanly: 0 critical, all of them real.
2 critical findings: wall faces with under 1° of draft (1,892 flagged triangles), fine for machining or printing but not for pulling this part from a mould, plus a genuine undercut a straight pull cannot clear at all.
Zero bend-radius issues here is not the same claim as the other three results: 13 solids checked as one mesh do not read as a constant-thickness sheet in the first place, so Buildable says plainly that it could not evaluate them, not that they passed.
Checked live through the per-process engines, the same detectors the app runs.