Printy3D

Recipes

Inspect

Inspect reads the model the way the repair engine will: its size, volume, whether it is watertight, how many shells it has, what the engine would recommend for a repair, plus thumbnails and a web preview.

Running it#

POST/v1/jobsjobs:write

inspect is the default recipe and takes no parameters: send only the file.

curl -sS "$API/v1/jobs" -H "Authorization: Bearer $PRINTY3D_API_KEY" \
  -H "Content-Type: application/json" -H "Idempotency-Key: $(uuidgen)" \
  -d "{\"input_file_id\": \"$FILE_ID\", \"recipe\": \"inspect\"}"

The analysis#

When the job has succeeded, job.analysis holds the result (also downloadable as the analysis artifact). Lengths are in millimetres.

vertices, facesinteger

Size of the imported mesh.

dimensions_mm[x, y, z]required

The bounding box size in millimetres.

volume_mm3numberrequired≥ 0

Enclosed volume; only meaningful for a closed mesh.

surface_area_mm2numberrequired≥ 0

Total surface area.

is_watertightbooleanrequired

True when the surface is closed, with no holes or open edges. Printers need it; a repair produces it.

shellsinteger | null≥ 0

Number of separate pieces. null means the engine did not report it, not zero.

warningsstring[]

Printability warnings in plain words.

recommendedRepairParams | null

The repair parameters the engine recommends for this file, in the same names a repair takes. Send it back as params as it is, or change single fields.

recommended_by_scalemap<string, RepairParams> | null

The same recommendation for each print size: one entry per group 1in, 2in, 3in, 4in, 5in, 7in, 10in, 15in, 20in (the model's longest side), each carrying the scale that reaches it. Offer the groups to your users and send the chosen one as a repair's params.

recommendation_assessmentRecommendationAssessment | null

How well the recommended wall is supported by measurement at this size (for example source_below_wall_fraction, the share of the surface thinner than the wall). A prediction about the source, never a certificate of the printed result; recommendation_assessments_by_scale has one per print-size group.

fidelityFidelityReport

A shape-comparison report. On an inspection it is usually not_assessed; absent or uncalibrated evidence never counts as passed.

simulatedbooleanrequired

True for a test-key job: the values are placeholders and the geometry was not processed. Live jobs report false.

job.analysis (abridged)
{
  "schema_version": "1",
  "simulated": false,
  "vertices": 48211,
  "faces": 96418,
  "dimensions_mm": [61.2, 148.9, 52.7],
  "volume_mm3": 112840.55,
  "surface_area_mm2": 40211.08,
  "is_watertight": false,
  "shells": 3,
  "warnings": ["..."],
  "recommended": {
    "quality": "high",
    "wall_thickness_mm": 0.7,
    "clearance_mm": 1.0,
    "close_holes_mm": 42.9,
    "smoothing": { "post_construct": 8, "clr": 0 },
    "scale": { "mode": "target", "value": 5.86, "unit": "in" }
  },
  "recommended_by_scale": { "1in": { "...": "..." }, "2in": { "...": "..." } }
}

Thumbnails#

Every inspect job renders eight views of 512 px, the artifacts thumbnail_0 to thumbnail_7 (JPG), for galleries and order pages.

thumbnail_0
thumbnail_1
thumbnail_2
thumbnail_3
thumbnail_4
thumbnail_5
thumbnail_6
thumbnail_7
Thumbnails. Every inspect job renders eight 512 px views of the model, the artifacts thumbnail_0 to thumbnail_7. Model: Garden Gnome, Poly Haven, https://polyhaven.com/a/garden_gnome, CC0 1.0

Preview#

The preview artifact is a GLB of the imported model, whatever format you uploaded, so a web viewer (three.js, model-viewer, Babylon.js) can show it. It is the model as imported, before any repair.

Uploaded ZIP
preview.glb
Preview GLB. The preview artifact is a GLB of the imported model, whatever the upload format, so a web viewer can show it. Left, the upload in its own format (here a ZIP of OBJ, MTL and textures) opened in a desktop tool; right, preview.glb in a browser viewer. Model: Garden Gnome, Poly Haven, https://polyhaven.com/a/garden_gnome, CC0 1.0

Then repair#

An inspection is the cheap way to decide whether a model needs a repair and at which size. A repair runs its own analysis first, so you do not need to inspect before repairing. Repair