# Blender Separate Loose — Mesh Island Splitter

> Blender Separate Loose — Mesh Island Splitter 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).

Separates disconnected mesh islands in a GLB or OBJ scene into individual objects using Blender, returning the result as a processed 3D asset.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/studio3d-process-separate-loose?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-separate-loose-mesh-island-splitter-92016759
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xt6eI7_f9TUEYO7_25D67

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-separate-loose-mesh-island-splitter-92016759 -d '<json body>'
```

Example prompt: Take this GLB file (base64 encoded) and separate all the disconnected mesh islands into individual objects — run it through Blender's Separate Loose operation and give me the result.

## When to prefer this

Choose this endpoint when you need to programmatically run Blender's native Separate Loose operation on a 3D mesh — specifically to split disconnected mesh islands into individual objects without setting up a local Blender environment. Ideal for pipelines that process GLB or OBJ files and need per-island object separation as a paid micro-service step.

## Known failure modes

- Busy worker returns an error before payment settlement if processing queue is full
- Mesh exceeds 10,000 vertices or 20,000 faces — input rejected
- Base64 model exceeds 512 KiB decoded limit
- Invalid hex color string format for color parameter
- model_base64 and mesh supplied simultaneously — mutually exclusive inputs
- Processing exceeds 60-second time limit on complex models
- Invalid base64 encoding for model_base64 field

## How this service works

Blender: Separate Loose: Separate disconnected mesh islands into individual objects in a GLB scene. 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 processed 3D scene where previously disconnected mesh islands have been separated into individual named objects. The response identifies whether a demo mesh or the user-supplied mesh was processed, and includes the resulting geometry in the output format.

## 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-separate-loose-mesh-island-splitter-92016759/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)
