fabgencheck before you order

Explainer · how the engine thinks

Seven checks between your file and a finished part.

Touch first, read second: switch processes and watch the verdict change. Every number here is a stored engine result, not a guess written into the page.

1. Is the mesh closed?

In a closed mesh every edge is shared by exactly two triangles. An edge with one triangle is a hole: slicers guess how to close it, and services may refuse the file.

0open edges: cube
4open edges: box without a lid

The box without a lid has 4 open edges, so the engine stops there: repair the export first.

Engine examplefabgen.print_check/1Data under review

Box without a lid · FDM

Input: open_box.stl · FDM · 10 × 10 × 10 mm · 0.7 cm³

Not printable as is Fix it before ordering: the mesh is not closed.

Mesh
4 open edges
Thinnest wall
10.0 mm needs ≥ 0.8 mm
Support material
0.0 cm³ 0.0 cm² steeper than 45° with +Z up
Sealed cavities
0
Smallest machine
desktop printer
Mass with supports
0.8 g PLA
  • ImportantThe mesh has 4 open edges (holes): slicers and services may refuse it or close the holes their own way. Repair it (e.g. in the CAD export or a mesh-repair tool) before ordering.
Assumptions, warnings and sources

Warnings

  • ImportantThe mesh has 4 open edges (holes): slicers and services may refuse it or close the holes their own way. Repair it (e.g. in the CAD export or a mesh-repair tool) before ordering.
  • LowSome rules and figures are not yet re-checked against their primary source, or are fabgen planning assumptions. They are flagged “data under review”.

Assumptions

  • Wall thickness is sampled, not exhaustive: thin features between samples can be missed.
  • FDM material = 1.2 mm shell (perimeters and skins) + 20% infill of the rest.

Sources

2. Are the walls thick enough?

The engine casts rays inward from sampled faces to find the thinnest wall, then compares it with the minimum of the process. Supported walls can be thinner than free-standing ones.

0.4 mmmeasured
0.8 mmminimum, supported
0.8 mmminimum, free-standing
Needs changesverdict
ProcessWall, supportedWall, free-standingSmallest holeSmallest detail
FDM0.8 mm0.8 mm2.0 mm2.0 mm
SLA0.5 mm1.0 mm0.5 mm0.2 mm
SLS0.7 mm0.7 mm1.5 mm0.8 mm
MJF0.7 mm0.7 mm1.0 mm0.5 mm

3. What hangs in the air?

A face that looks down steeper than the process allows needs supports, and supports leave scars. The engine tries all six axis orientations and picks the one with the least support.

Steepest self-supporting angle, from vertical

45°FDM
30°SLA
no supportsSLS
no supportsMJF

Mushroom part in FDM, each way up. The engine recommends −Z up.

UpOverhangSupport material
+Z as in the file8.0 cm²1.2 cm³
−Z least support0.0 cm²0.0 cm³
+X1.0 cm²0.1 cm³
−X1.0 cm²0.1 cm³
+Y1.0 cm²0.1 cm³
−Y1.0 cm²0.1 cm³

4. Is anything sealed inside?

A closed pocket inside a part is fine in filament, but in resin and powder processes it traps uncured resin or loose powder. The fix is two escape holes or a solid part.

PrintableFDM
Not printable as isSLA
Not printable as isSLS
Not printable as isMJF
Engine examplefabgen.print_check/1Data under review

Cube with a sealed cavity · SLA

Input: hollow_cube.stl · SLA · 20 × 20 × 20 mm · 7.0 cm³

Not printable as is Fix it before ordering: a sealed cavity traps material.

Mesh
Closed
Thinnest wall
5.0 mm needs ≥ 0.5 mm
Support material
0.1 cm³ 1.0 cm² steeper than 30° with +Z up
Sealed cavities
1
Smallest machine
desktop printer
Mass with supports
8.3 g STANDARD RESIN
  • Important1 closed internal cavity(ies): SLA traps uncured resin or unfused powder inside. Add at least two escape holes of 4.0 mm or more, or make the part solid.
Assumptions, warnings and sources

Warnings

  • LowThe file holds 2 separate shells: several parts (priced per part) or a part with internal cavities.
  • Important1 closed internal cavity(ies): SLA traps uncured resin or unfused powder inside. Add at least two escape holes of 4.0 mm or more, or make the part solid.
  • LowSome rules and figures are not yet re-checked against their primary source, or are fabgen planning assumptions. They are flagged “data under review”.

Assumptions

  • Wall thickness is sampled, not exhaustive: thin features between samples can be missed.
  • SLA always prints on supports; support volume is a sparse touch-point estimate.

Sources

5. How the price is estimated

Each class of service has a published price range per cubic centimetre, a minimum per part, a minimum order and shipping by zone. Billable volume differs by process: filament prints a shell and infill, powder processes also bill space in the chamber.

ProcessMaterial usedBillable volumeMass
FDM PLA3.8 cm³3.8 cm³4.7 g
SLA STANDARD RESIN5.5 cm³5.5 cm³6.5 g
SLS PA12 SLS5.5 cm³6.8 cm³5.1 g
MJF PA12 MJF5.5 cm³6.8 cm³5.5 g
Engine examplefabgen.print_cost_compare/1Data under review

Print cost by service class

Input: mushroom.stl · 10 pcs · delivery: USA

11 ways to get 10 pieces made to the US: order totals from $21 to $710. Ranges, not a quote.

Service classProcessOrder totalPer piece, all inLead time
Online print factory in Chinae.g. JLC3DP, PCBWay 3D printing, WeNextSLA STANDARD RESIN$21–$62$2.13–$6.217–16 days
Online print factory in Chinae.g. JLC3DP, PCBWay 3D printing, WeNextFDM PLA$24–$66$2.35–$6.557–16 days
Online print factory in Chinae.g. JLC3DP, PCBWay 3D printing, WeNextMJF PA12 MJF$35–$92$3.51–$9.178–18 days
Local maker marketplacee.g. Treatstock, Craftcloud, local makersFDM PLA$30–$100$3.05–$10.003–11 days
Online print factory in Chinae.g. JLC3DP, PCBWay 3D printing, WeNextSLS PA12 SLS$38–$100$3.81–$10.048–18 days
Local maker marketplacee.g. Treatstock, Craftcloud, local makersSLA STANDARD RESIN$48–$142$4.75–$14.253–11 days
Local maker marketplacee.g. Treatstock, Craftcloud, local makersSLS PA12 SLS$90–$228$9.00–$22.755–15 days
Industrial service bureaue.g. Protolabs, Xometry, MaterialiseFDM PLA$212–$540$21.25–$54.004–12 days
Industrial service bureaue.g. Protolabs, Xometry, MaterialiseSLA STANDARD RESIN$255–$710$25.50–$71.003–10 days
Industrial service bureaue.g. Protolabs, Xometry, MaterialiseMJF PA12 MJF$255–$710$25.50–$71.005–13 days
Industrial service bureaue.g. Protolabs, Xometry, MaterialiseSLS PA12 SLS$255–$710$25.50–$71.005–13 days
Local maker marketplacee.g. Treatstock, Craftcloud, local makersMJFpart does not fit the machines this class usually runs

Neutral order: by the middle of the order total, then lead time. Nobody pays for a place in this list.

Assumptions, warnings and sources

Warnings

  • LowSome rules and figures are not yet re-checked against their primary source, or are fabgen planning assumptions. They are flagged “data under review”.

Assumptions

  • Quantity factor 0.85 for 10 pieces (typical calculator discount).
  • FDM material = 1.2 mm shell (perimeters and skins) + 20% infill of the rest.
  • Prices are ranges for a class of services from public instant-quote calculators, not live quotes; the real quote depends on the file, finish, colour and current load.
  • Ranking is by the middle of the order total, then lead time, then name; who pays us does not take part in it.

Sources

6. Can this fab make your PCB?

The smallest trace, clearance, drill and annular ring from your DRC report are compared with each class's standard and advanced capabilities. Below advanced, the class cannot make the board.

Engine examplefabgen.pcb_quote_estimate/1Data under review

PCB estimate and DFM

Input: 2 layers · 100 × 80 mm · 10 pcs · 1.6 mm · HASL · delivery: USA

Bare boards with shipping: $23 to $491 depending on the class of fab. Components are never priced. Not a quote.

Prototype fab in China
$23–$51 $2.33–$5.13 per board · 4–11 days
Domestic US/EU prototype service
$260–$491 $26.00–$49.10 per board · 6–17 days

Prototype fab in China

RuleYour designStandardAdvancedVerdict
Trace width0.15 mm0.10 mm0.09 mmOK
Clearance0.15 mm0.10 mm0.09 mmOK
Drill0.30 mm0.30 mm0.15 mmOK
Annular ring0.15 mm0.18 mm0.15 mmAdvanced process

Domestic US/EU prototype service

RuleYour designStandardAdvancedVerdict
Trace width0.15 mm0.15 mm0.13 mmAdvanced process
Clearance0.15 mm0.15 mm0.13 mmAdvanced process
Drill0.30 mm0.25 mm0.20 mmOK
Annular ring0.15 mm0.13 mm0.10 mmOK
DFM checklist before you export
  • Keep copper at least 0.3 mm from a routed edge and 0.5 mm from a V-score (JLCPCB minimum 0.2 / 0.4 mm).
  • Silkscreen lines at least 0.15 mm wide and text at least 1.0 mm high, 0.15 mm clear of pads.
  • Solder-mask web between fine-pitch pads needs about 0.1 mm (0.13 mm for black or white mask); otherwise ask for gang relief.
  • Boards smaller than about 20 x 20 mm, or for assembly, are cheaper and safer as a panel with rails.
  • For machine assembly add 2-3 global fiducials and keep 3-5 mm rails or clearance at the edges (JLCPCB asks for 5 mm rails and 1 mm fiducials).
  • Send one closed board outline on its own layer; internal cut-outs at least 1 mm wide.
  • Export Excellon drill files with plated and non-plated holes separated and units stated.
Assumptions, warnings and sources

Warnings

  • LowSome rules and figures are not yet re-checked against their primary source, or are fabgen planning assumptions. They are flagged “data under review”.

Assumptions

  • Advanced trace/drill minimums: x1.3 on the bare-board price.
  • Prices are ranges per class of fab from published calculators and price pages, not live quotes; colour, impedance control, castellations, via-in-pad and similar options are not included.
  • Ranking is by the middle of the order total, then lead time, then name; who pays us does not take part in it.

Sources

7. What makes a CNC part expensive?

Deep pockets, small inner radii, thin walls, deep holes, small threads and tight tolerances all slow the machine down. Each feature gets a verdict and the reason.

FeatureAs drawnAfter the fixes
PocketCostlyOK
Side wallCostlyOK
Mounting holeCostlyOK
M4 threadCostlyOK
Bore fit toleranceNot feasibleOK
Engine examplefabgen.cnc_check/1Data under review

Aluminium bracket, as drawn

Input: AL6061 · 60 × 40 × 20 mm · 5 pcs · 5 features

Not feasible 0 fine, 4 drive the price up, 1 cannot be machined.

  • ImportantAt least one feature cannot be machined as drawn: see `features`.
  • PocketCostly
    • OK Depth is 0.6x the narrowest width (recommended up to 4x, long tools up to 10x).
    • Costly Needs a 3.00 mm tool reaching 4.0x its diameter: slow, long-reach cutting. Increase the radius if you can.
  • Side wallCostly
    • Costly 0.6 mm wall in metal: recommended at least 0.8 mm, feasible 0.5 mm (thin walls vibrate and deflect while cutting).
  • Mounting holeCostly
    • OK Diameter 5.0 mm (recommended at least 2.5 mm with standard drills, feasible 0.5 mm with micro drills).
    • Costly Depth is 6.0x the diameter: deep drilling with pecking.
  • M4 threadCostly
    • Costly M4: M6 and larger are cut with standard taps; down to M2 with care (tap breakage risk).
    • OK Thread longer than 3x the diameter adds no strength; shortening it saves machining time.
  • Bore fit toleranceNot feasible
    • Not feasible +-0.02 mm: standard machining holds +-0.125 mm; tighter down to +-0.025 mm needs slower passes and inspection.

OK Part 60 × 40 × 20 mm — fits a typical 3-axis mill

Assumptions, warnings and sources

Warnings

  • ImportantAt least one feature cannot be machined as drawn: see `features`.
  • LowSome rules and figures are not yet re-checked against their primary source, or are fabgen planning assumptions. They are flagged “data under review”.

Sources

Your model file never leaves your computer

fabgen reads the STL or 3MF from a local path on your machine. The file is never uploaded anywhere — not to us, not to a print service. The examples on this site were computed the same way, from the engine's own test files.

  • The check runs locally, without the network.
  • When offers open, only a job summary goes out: process, material, quantity, sizes. No file, no name, no contacts.
  • You upload the file yourself, on the service's own page, when you decide to order.

Every source, with its date

Sources used by the examples on this site. Figures not yet re-read in the primary source, and fabgen planning assumptions, are flagged until they are checked.

SourceAs ofStatus
fabgen planning assumption (see docs/SOURCES.md#assumptions)Oct 4, 2026Data under review
fabgen price ranges for 3D printing services, from public instant-quote calculators (JLC3DP, Craftcloud, Treatstock, Protolabs Network, Xometry)Oct 4, 2026Data under review
Formlabs - Design specifications for 3D models (Form 4 generation)Oct 5, 2026checked
Formlabs resin data sheets (Standard, Tough 2000, Clear, Castable Wax)Oct 4, 2026Data under review
General PCB DFM practice (copper-to-edge, silkscreen, fiducials, panelization) — fab design guides (JLCPCB, Eurocircuits)Oct 4, 2026Data under review
Generic FDM filament data sheets (PLA, PETG, ABS, ASA, TPU 95A, PA-CF): densityOct 5, 2026checked
HP - How to design a 3D print model (Multi Jet Fusion)Oct 4, 2026Data under review
ISO 2768-1 general tolerances for linear dimensions (classes f and m)Nov 15, 1989Data under review
JLCPCB — online quote and promotional prices (2-layer 100x100 mm, 5 pcs)Oct 5, 2026checked
JLCPCB — PCB manufacturing capabilitiesOct 5, 2026checked
Manufacturer build volumes: Prusa MK4S, Bambu Lab X1C, Stratasys F370 and F900, Formlabs Form 4 / Form 4L / Fuse 1+, EOS P 396, HP Jet Fusion 5200Oct 4, 2026checked
OSH Park — services and pricing (2-layer USD 5 per sq in for 3 boards, 4-layer USD 10 per sq in for 3 boards)Oct 5, 2026checked
PCBWay — online quote (2-layer 100x100 mm, 10 pcs)Oct 5, 2026checked
Powder-bed part data sheets: EOS PA 2200 (SLS PA12), HP 3D HR PA12 and PA11 (MJF)Oct 5, 2026checked
Protolabs Network (Hubs) — CNC machining design guide (cavities, internal corners, walls, holes, threads, tolerances, part size)Oct 4, 2026Data under review
Protolabs Network (Hubs) — How to design parts for 3D printing: key design guidelines by process (FDM, SLA, SLS, Material Jetting)Oct 4, 2026Data under review

Use it inside Claude or ChatGPT

coming soon

The same calculator runs as an MCP server: your assistant calls it and answers with these numbers, assumptions and sources.

Server address (not live yet)https://mcp.furnigen.app/fabgen/mcp
  1. Claude: Settings → Connectors → Add custom connector → paste the address.
  2. ChatGPT: Settings → Apps & Connectors → create a connector (developer mode) → paste the address.

The public server opens after the gateway launch. Until then this address does not answer.

Partners are not connected yet. When they are: neutral order, your contacts go only to the partner you name and only with your consent. How we make money

When offers open, you upload the file only on the service's own page. fabgen never sends it.

See the checks