# Blender: Reduce Polygons

> Blender: Reduce Polygons 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-17).

Decimates a 3D mesh toward a requested triangle count using Blender and reports the achieved polygon count

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/studio3d-process-reduce-polygons?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/blender-reduce-polygons-79b30e5d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_iB_by8OdksxJkRdt2Heeg

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-reduce-polygons-79b30e5d -d '<json body>'
```

Example prompt: Can you reduce the polygon count of my 3D model to around 500 faces? I'll give you the mesh as a base64 GLB — it's a small furniture model — please target 500 triangles and tell me what count you actually achieved.

## When to prefer this

Choose this endpoint when you need server-side, Blender-powered mesh decimation without setting up a local Blender environment. It is ideal for automating polygon reduction in pipelines where you have mesh data as JSON, GLB, or OBJ and need a specific target face count. Well-suited for small to medium models (up to 10k vertices / 20k faces) in game asset prep, web 3D, or AR/VR workflows. The pay-per-call x402 pricing ($0.02 USDC) makes it cost-effective for occasional or batch use without a subscription.

## Known failure modes

- Worker busy at request time — error returned before payment settlement
- Input mesh exceeds 10,000 vertices or 20,000 faces limit — rejected
- base64-encoded model exceeds 512 KiB decoded limit — rejected
- model_base64 and mesh both supplied — mutually exclusive fields conflict
- Target face count below minimum (20) or above maximum (20,000) — invalid parameter
- Processing timeout (normally under 60 seconds for small models)

## How this service works

Blender: Reduce Polygons: Decimate a mesh toward a requested triangle count and report the achieved count. 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 the decimated 3D mesh along with the achieved triangle/face count after decimation, and identifies if the demo mesh was used. If the worker is busy at request time, an error is returned before any payment is settled.

## 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-reduce-polygons-79b30e5d/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)
