# Blender Topology Report

> Blender Topology Report 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-21).

Analyzes a 3D mesh to count boundary edges, non-manifold edges, and loose edges without attempting automatic repair

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/studio3d-process-topology-report?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/blender-topology-report-68c68c24
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_N7CwGFZZVgy6OFeLh8EGD

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-topology-report-68c68c24 -d '<json body>'
```

Example prompt: Can you run a topology report on my mesh? It has 500 vertices and 900 faces — I need to know how many boundary edges, non-manifold edges, and loose edges it has so I can fix issues before 3D printing.

## When to prefer this

Choose this endpoint when you need a read-only topology audit of a 3D mesh — specifically counts of boundary, non-manifold, and loose edges — without any repair or modification. It is ideal for pre-flight checks before 3D printing, game asset pipelines, or mesh validation workflows. Prefer it over general mesh processing tools when you specifically need edge-topology diagnostics run inside Blender's geometry kernel.

## Known failure modes

- Worker busy at time of request — returns error before payment is settled
- Mesh exceeds limits (>10,000 vertices or >20,000 faces) — rejected
- model_base64 exceeds 512 KiB decoded — rejected
- Both mesh and model_base64 provided — mutually exclusive fields error
- Invalid face indices referencing out-of-range vertices — processing error
- Processing exceeds 60-second time bound — worker returns error

## How this service works

Blender: Topology Report: Report boundary, non-manifold and loose edge counts; no automatic repair claim. 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

A structured report listing the count of boundary edges, non-manifold edges, and loose edges in the submitted mesh. If no mesh is supplied, the demo mesh is processed and the response explicitly identifies it as such. No automatic repair is performed — counts only.

## 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-topology-report-68c68c24/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)
