# Blender STL Converter

> Blender STL Converter is a paid API for AI agents from market.datapackvibe.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-13).

Converts mesh geometry (JSON, GLB, or OBJ) into triangulated STL format for fabrication workflows using Blender, running locally on a bounded worker.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/studio3d-process-convert-stl?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/blender-stl-converter-a4accacf
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_jArXp4D7QeWoWhLUC5wlw

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability blender-stl-converter-a4accacf -d '<json body>'
```

Example prompt: Convert my OBJ model to an STL file for fabrication — here's the base64-encoded OBJ geometry, and target around 500 faces in the output.

## When to prefer this

Choose this endpoint when you need a fast, pay-per-call STL export from mesh JSON, GLB, or OBJ inputs without standing up your own Blender environment. Ideal for agents automating fabrication pipelines that need triangulated STL output on demand for small-to-medium meshes (under 10k vertices). Prefer this over general-purpose 3D APIs when you specifically need STL output with controllable face count and Blender's triangulation quality.

## Known failure modes

- Busy worker returns an error before payment settlement if the node is under load
- Mesh exceeds 10,000 vertices or 20,000 faces — rejected with validation error
- base64 payload exceeds 512 KiB decoded limit
- model_base64 and mesh supplied simultaneously — mutually exclusive fields
- Processing exceeds 60-second time limit for complex meshes
- Invalid hex color format for color parameter
- Invalid face index references in mesh JSON

## How this service works

Blender: Convert Stl: Export triangulated STL geometry for downstream fabrication workflows; printability is not guaranteed. Accepts mesh JSON, small GLB or OBJ; without input uses an explicitly labelled demo mesh. Runs locally in Blender. Bounded small-model processing, normally under 60 seconds; a busy worker returns an error before payment settlement.

## Output

Returns a triangulated STL geometry file derived from the supplied mesh (or the built-in demo mesh if no input is provided). The response explicitly identifies when the demo mesh was used. Output is suitable for downstream fabrication workflows; printability is not guaranteed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mesh": {
   "type": "object",
   "required": [
    "vertices",
    "faces"
   ],
   "properties": {
    "faces": {
     "type": "array",
     "items": {
      "type": "array",
      "items": {
       "type": "integer",
       "minimum": 0
      },
      "maxItems": 16,
      "minItems": 3
     },
     "maxItems": 20000
    },
    "vertices": {
     "type": "array",
     "items": {
      "type": "array",
      "items": {
       "type": "number"
      },
      "maxItems": 3,
      "minItems": 3
     },
     "maxItems": 10000
    }
   },
   "description": "Optional mesh in Blender Z-up coordinates. Max 10,000 vertices and 20,000 faces; each face has 3..16 indices.",
   "additionalProperties": false
  },
  "seed": {
   "type": "integer",
   "default": 42,
   "maximum": 2147483647,
   "minimum": 0
  },
  "angle": {
   "type": "number",
   "default": 45,
   "maximum": 180,
   "minimum": -180
  },
  "color": {
   "type": "string",
   "default": "#6688bb",
   "pattern": "^#[0-9a-fA-F]{6}$"
  },
  "count": {
   "type": "integer",
   "default": 3,
   "maximum": 8,
   "minimum": 2
  },
  "amount": {
   "type": "number",
   "default": 0.05,
   "maximum": 0.5,
   "minimum": 0.001
  },
  "factor": {
   "type": "number",
   "default": 1,
   "maximum": 5,
   "minimum": 0.1
  },
  "sample": {
   "enum": [
    "demo"
   ],
   "type": "string",
   "default": "demo",
   "description": "If no model is supplied, process the included demonstration mesh; response identifies this explicitly."
  },
  "metallic": {
   "type": "number",
   "default": 0,
   "maximum": 1,
   "minimum": 0
  },
  "roughness": {
   "type": "number",
   "default": 0.5,
   "maximum": 1,
   "minimum": 0
  },
  "resolution": {
   "type": "integer",
   "default": 256,
   "maximum": 512,
   "minimum": 128
  },
  "model_base64": {
   "type": "string",
   "maxLength": 699052,
   "description": "Optional base64 GLB (geometry and PBR values, without images/animations) or OBJ geometry, at most 512 KiB decoded. Mutually exclusive with mesh. No URLs or local paths."
  },
  "model_format": {
   "enum": [
    "glb",
    "obj"
   ],
   "type": "string",
   "default": "glb"
  },
  "target_faces": {
   "type": "integer",
   "default": 500,
   "maximum": 20000,
   "minimum": 20
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/blender-stl-converter-a4accacf/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from market.datapackvibe.com](https://www.zero.xyz/host/market.datapackvibe.com/llms.txt)
