Each call returns a structured JSON report — checklist across three groups (Geometry / Print readiness / G-code execution), billing per processing stage, every finding fully traceable. Audit a mesh, fix topology issues, run a structural stress check — single file or whole folder. You get a checklist of pre-print findings, each with a measurable value; you set the thresholds for your workflow.
Audit a mesh with one call:
Response — admeshio-report/v1 envelope:
HTTP status signals the result at a glance:
200 when the audit ran and produced findings,
422 when the engine cannot evaluate the mesh
(empty file, unreadable format, fundamentally broken topology).
Use flags[] for the per-check findings and
verdict.gri_* + verdict.bottleneck for
the numeric snapshot. AdMeshio returns a checklist of pre-print
findings, each with a measurable value; you set the thresholds
that matter for your workflow.
Meshy, Tripo, Rodin — audit AI-generated meshes before handing downloads to users. 15–40% of AI meshes have geometry defects a slicer will mask or mangle.
Audit each customer upload with admeshio audit <file>. Catch defects
before they become failed prints and support tickets.
Audit uploads at ingestion time. Catch self-intersection, open boundaries, and non-manifold edges before they reach buyers — even when a slicer would silently mask the damage.
Analysis endpoints return the admeshio-report/v1
JSON envelope. Mesh-modification endpoints (repair) stream
the result back as binary STL.
End-to-end print-readiness audit. Runs diagnose → audit_geometry → slice → verify_output
as a chain, early-aborts on broken geometry, and returns the admeshio-report/v1
envelope shown in Quick Start above.
| file | (required) STL, OBJ, 3MF, GLB, glTF, PLY |
| profile | Printer profile (enables full chain). Without it, mode = GEOMETRY_ONLY |
| depth | quick (topology only) or full (default: full if profile is set) |
200 on every verdict except NOT_PRINTABLE (422).
The envelope is returned in both cases — 422 just signals "do not print this".
Post-slice execution check on a slicer output: G-code (FDM) or
CTB / cbddlp / pwmx / pwmo / goo (resin). Auto-detects format
by extension + magic bytes. Source mesh is not inspected
— gri_geometry will be -1 and
mode = EXECUTION_ONLY.
| file | (required) FDM: .gcode / .gco / .g · Resin: .ctb / .cbddlp / .pwmx / .pwmo / .goo |
| profile | Optional printer profile for Tier 2 checks (exposure windows, bottom layer count, lift / retract speed compare) |
Returns the same admeshio-report/v1 envelope as audit, with
op: "verify" (FDM) or op: "verify_ctb" (resin). On resin,
execution_analysis.is_resin = true and the block carries the file's recorded
machine_name / material_name / lift cycle / 3D vacuum-trap diagnostic. HTTP 415
if the file extension isn't recognized.
Closes cracks and overlaps. Streams the repaired binary STL back as the response body. The pipeline is built so the output is never measurably worse than the input — if a step would damage topology, it rolls itself back automatically.
| file | (required) STL, OBJ, 3MF, GLB, glTF, PLY |
| strict_quality | 0 (default) or 1 — pass 1 to roll back any step that fails the safety check |
200 with Content-Type: application/octet-stream
and the repaired STL as body. The audit report is returned in
the X-Admeshio-Report header (base64-encoded)
so you can read it without a second request.
Topology counters + intent opening classifier. SI / NM / degenerate / boundary loops + per-hole shape metrics (planarity, circularity, regularity) for distinguishing intentional openings from cracks.
| file | (required) STL, OBJ, 3MF, GLB, glTF, PLY |
QEM decimation with the safety gate from the CLI verb (rejects collapses that would create new self-intersections; bow-tie vertex pre-split runs by default). Streams the decimated binary STL back as the response body.
| file | (required) STL, OBJ, 3MF, GLB, glTF, PLY |
| ratio | Keep this fraction of faces (0.0 – 1.0). Mutually exclusive with target_faces. |
| target_faces | Decimate to exactly N faces. |
200 with Content-Type: application/octet-stream.
The op envelope is in the X-Admeshio-Decimate
header (base64-encoded).
Run a recipe of repair / cleanup / boolean / shrinkage steps
in order. Recipe steps include repair,
fix_si, decimate, smooth,
orient, boolean_union /
boolean_subtract / boolean_intersect
(Wave I), shrinkage with
per-material catalog (Wave K), and more — see
RECIPE_REFERENCE for the full list.
| file | (required) STL, OBJ, 3MF, GLB, glTF, PLY |
| recipe | (required) Built-in recipe name OR raw recipe JSON inline. |
200 with the modified mesh as binary STL body and
the per-step envelope in X-Admeshio-Pipeline
(base64-encoded). Use /pipeline/stream for SSE
progress updates on long recipes.
MFEM linear-elastic FEM. Default scenario: gravity + thermal
shrinkage with bottom-fixed BC. Returns safety factor, peak
von Mises, mass / inertia, and thin-wall hotspots. The
extended CLI flags (--load-spec,
--body, --drop-height,
--g-load, --printer) are CLI-only
for now — call admeshio.exe via the Cloud CLI
if you need them from a server context.
| file | (required) STL, OBJ, 3MF, GLB, glTF, PLY |
| material | PLA / ABS / PETG / Resin / Nylon / PA12 (default PLA, case-insensitive) |
| fixed_z | Override the default 0.5 mm bottom-fix slab. |
| load_axial | N newtons applied along -Z to the load region. |
| load_region | z>X or z<X. Default: top 1 mm slab. |
200 with the JSON envelope (no output file — read-only analysis).
Wraps PrusaSlicer / OrcaSlicer / Bambu Studio CLI. Captures
the produced G-code and runs verify on it in the
same call so you get the GRI-I score in one round-trip.
| file | (required) STL / OBJ / 3MF |
| recipe | Built-in profile or recipe name (binds slicer + material + quality). |
200 with the G-code as response body and the
slice + verify envelope in X-Admeshio-Fdm-Slice
(base64-encoded).
Machine-readable capability spec. Fetch once per session, cache, use for LLM / agent verb discovery and verdict-mode → user-copy mapping.
The REST API is single-file per call. For folder-scale workloads use the CLI —
every verb auto-detects directory input and parallelizes the run. Replaces the legacy
bench verb and --batch flag in the single-file-per-call era.
audit and verify emit JSONL to stdout
— one envelope per line, parseable line-by-line. Each file's report is
written next to the source file.
Typed clients return AuditReport objects with the same shape
as the JSON output: verdict.gri_overall + per-axis scores +
flags[] with each finding's code and severity.
Folder input auto-detects and returns a list.
SDK exposes audit / verify /
diagnose / repair /
decimate / pipeline /
stress_check / diff /
units / thickness /
catalog.
Both SDKs work against the local binary or the hosted API — set ADMESHIO_BIN
for local, or pass a base_url to hit the HTTP service. Same typed return shape
either way.
Parse the JSONL output and decide your own policy — e.g. fail the build
only when verdict.gri_overall < 60 or when specific
flags[].code entries appear (SELF_INTERSECTION,
OPEN_BOUNDARY, etc.).
| Status | Meaning |
|---|---|
| 200 | Audit ran. Inspect flags[] + verdict.gri_* in the body. |
| 401 | Missing or invalid API key |
| 413 | File too large for your plan (see plan limits) |
| 415 | Unsupported file format (for /verify, extension not recognized) |
| 422 | Audit could not run on this file (empty mesh, fundamentally broken topology). Body still describes what was attempted. |
| 429 | Monthly quota exceeded AND no wallet credits. Buy credits or upgrade plan. |
| 500 | Internal error. Retry; if persistent, contact support with the request ID. |
Every metered response includes:
| X-Admeshio-Usage | Credits used this month |
| X-Admeshio-Limit | Monthly credit limit for your plan (or "unlimited") |
| X-Admeshio-Credits-Used | Credits billed for this request |
Run the engine on your own infrastructure. Single binary, zero dependencies, air-gapped OK. Enterprise tier includes updates, security patches, dedicated CSM, and SLA — see pricing.
Single binary, runs offline — no phone-home. Contact sales for evaluation and enterprise onboarding.